第1章 操作系统概述

第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)依次读取并执行这些作业
  • 减少了人工干预的时间,提高了计算机利用率

关键进展

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@不误正业

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值