操作系统概述

张开发
2026/4/17 12:14:45 15 分钟阅读

分享文章

操作系统概述
第1章 操作系统概述本章目标:建立操作系统的基本认知,理解操作系统的核心概念、架构模式与发展脉络,为后续深入理解开源鸿蒙打下基础。1.1 什么是操作系统当你拿起手机刷视频、打开电脑写文档、在智能手表上查看步数时,你可能很少会意识到,在所有这些应用和硬件之间,有一个沉默的"管理者"在协调一切——这就是操作系统。1.1.1 操作系统的定义操作系统(Operating System,OS)是管理计算机硬件与软件资源的系统软件,它是应用程序与硬件之间的中间层,也是整个计算机系统的基石。这个定义看似简单,但包含了几个关键信息:第一,操作系统是"软件",不是硬件。它运行在硬件之上,由一组程序和数据构成,存储在磁盘或固件中,开机时加载到内存运行。第二,操作系统是"系统软件",不是应用软件。应用软件(如微信、浏览器、Word)是为了完成特定用户任务而存在的,而操作系统是为了管理整个计算机系统而存在的。没有操作系统,应用软件无法运行;但没有应用软件,操作系统本身也能启动和运行。第三,操作系统的核心职责是"管理资源"。一个计算机系统中有CPU、内存、磁盘、网卡、显示屏等多种硬件资源,还有文件、进程、网络连接等软件资源。操作系统负责分配、调度、回收这些资源,确保多个程序能公平、高效地共享它们。第四,操作系统是"中间层"。它向上为应用程序提供接口(API),向下控制硬件设备。这种分层设计使得应用程序不需要直接操作硬件——你写代码时调用open()打开文件,不需要知道硬盘的磁道和扇号;调用send()发送网络数据,不需要知道网卡的寄存器地址。一个恰当的类比:如果把计算机系统比作一家公司,那么:硬件是公司的办公资源:办公桌、会议室、打印机、网络应用程序是公司的员工:产品经理在写文档,工程师在写代码,销售在打电话操作系统是公司的管理者:决定谁用哪个会议室,分配办公桌,管理打印队列,确保大家不互相干扰没有管理者,员工们会为了争夺资源而混乱;没有硬件,管理者也无从管理。1.1.2 操作系统的核心功能从资源管理的视角出发,操作系统的核心功能可以归纳为以下五个方面:(1)进程管理进程是正在运行的程序的实例。在一个现代操作系统中,同时可能运行着数百个进程。进程管理负责:进程创建与终止:当你双击一个程序图标,操作系统为它创建一个新进程;当你关闭程序,操作系统回收它占用的资源进程调度:决定哪个进程在什么时候使用CPU。因为CPU数量远少于进程数量,操作系统需要通过调度算法公平高效地分配CPU时间进程间通信:不同进程之间需要交换数据,操作系统提供管道、消息队列、共享内存等通信机制进程同步:协调多个进程的执行顺序,避免竞争条件(race condition)(2)内存管理内存是计算机中最关键的资源之一,所有正在运行的程序都需要内存来存放代码和数据。内存管理负责:内存分配与回收:为进程分配所需的内存空间,进程结束后回收内存虚拟内存:为每个进程提供独立的、连续的虚拟地址空间,使进程感觉拥有整个内存内存保护:防止一个进程访问或修改另一个进程的内存分页与交换:当物理内存不足时,将不常用的内存页换出到磁盘,需要时再换入(3)文件系统文件系统负责数据的持久化存储和组织:文件管理:创建、删除、读、写文件,维护文件的元数据(大小、权限、创建时间等)目录管理:以树状结构组织文件,提供目录的创建、删除和遍历存储空间管理:管理磁盘空间的分配和回收文件保护:通过权限控制(读、写、执行)保护文件安全(4)设备管理计算机系统中有各种I/O设备:键盘、鼠标、显示器、磁盘、网卡、打印机等。设备管理负责:设备驱动:通过设备驱动程序屏蔽不同设备的硬件差异,为上层提供统一接口设备分配:管理设备的分配和回收,处理多个进程对同一设备的竞争I/O调度:优化I/O操作的性能,例如磁盘的电梯调度算法缓冲与缓存:通过缓冲区减少I/O操作的次数,提高性能(5)用户接口操作系统需要为用户提供与系统交互的方式:命令行界面(CLI):如Linux的bash、Windows的PowerShell,通过输入命令与系统交互图形用户界面(GUI):通过窗口、图标、菜单等可视化元素与系统交互系统调用接口(API):为应用程序提供的编程接口,是应用程序请求操作系统服务的标准方式1.1.3 操作系统的分类操作系统可以根据不同的标准进行分类。从应用场景来看,主要分为以下几类:类型特点代表系统批处理系统无交互,作业成批提交处理IBM OS/360分时系统多用户同时交互,时间片轮转Unix、Linux实时系统响应时间有严格保证VxWorks、QNX、FreeRTOS嵌入式系统资源受限,面向特定应用LiteOS、FreeRTOS、Zephyr移动操作系统面向移动设备,支持触控Android、iOS桌面操作系统面向个人电脑Windows、macOS、Linux桌面服务器操作系统面向服务器,高可靠性Linux Server、Windows Server分布式操作系统多台计算机协同工作分布式文件系统、云OS需要特别指出的是,这些分类并非互斥。例如,Linux既可以作为桌面操作系统,也可以作为服务器操作系统;Android基于Linux内核,但它是移动操作系统;开源鸿蒙的设计目标则是覆盖从嵌入式设备到移动终端的多种场景。在本书中,我们最关注的是嵌入式操作系统和移动操作系统这两个类别,因为开源鸿蒙正是横跨这两个领域的操作系统。1.2 操作系统的发展历程理解操作系统的发展历史,有助于我们理解开源鸿蒙为何采用当前的设计,以及它试图解决什么问题。1.2.1 无操作系统的时代(1940年代)最早的计算机(如ENIAC、Colossus)没有操作系统。程序员通过物理方式操作计算机:用开关设置二进制指令通过插线板连接不同的硬件单元一次只能运行一个程序程序员需要了解所有硬件细节这个时代的"操作系统"就是程序员本人。程序运行效率极低,硬件资源浪费严重。1.2.2 批处理系统时代(1950年代)1950年代,随着计算机造价降低,人们开始追求更高的利用率。批处理系统应运而生:操作员将多个作业(程序+数据)打在卡片上批处理监控程序(resident monitor)依次读取并执行这些作业减少了人工干预的时间,提高了计算机利用率关键进展:

更多文章