1.1 操作系统的目标和作用
L01
学习目标
操作系统配置在硬件第一层,追求方便性、有效性、可扩充性、开放性四个目标;同时充当用户与硬件的接口、资源管理者、硬件抽象三种角色,并受资源利用率、用户需求、器件更新换代、体系结构发展、新应用需求五方面动力推动。
- OS 的四个目标:方便性——用命令和程序而非机器语言操作计算机;有效性——提高资源利用率和系统吞吐量;可扩充性——模块化和层次化结构便于增改功能;开放性——遵循国际标准实现软硬件兼容。
- OS 的三个作用:作为用户与硬件系统之间的接口(命令、系统调用、图形界面);作为计算机资源的管理者(处理机、存储器、I/O 设备、文件);实现对硬件的抽象(在裸机上叠加 I/O 软件等,形成扩充机器/虚拟机)。
- 推动 OS 发展的五个动力:不断提高资源利用率、方便用户、器件更新换代、计算机体系结构发展、新的应用需求。
- OS 的目标随应用环境不同而各有侧重,但四个基本目标共同构成设计追求;可通过分层动画对照「应用→系统调用→内核→驱动→硬件」理解 OS 在系统中的位置。
原理 · 深入理解
1.1 操作系统的目标和作用
操作系统要达到的目标取决于计算机的应用环境:交互式系统要求使用方便,实时系统要求在截止时间内响应,但方便性是共同的基本要求。本节先阐述操作系统的目标,再说明操作系统在系统中所处的层次。
1.1.1 操作系统的主要目标
操作系统的目标可归纳为四点。方便性是指用户可通过编译程序和操作系统命令使用计算机,而不必直接操作硬件;有效性是指提高系统资源利用率和吞吐量;可扩充性是指采用模块化和层次化结构,便于增加和修改功能;开放性是指遵循国际标准,使软硬件兼容互联。
有效性包含两个层面:一是提高资源利用率,二是提高系统吞吐量。两者相关但不等同——利用率高也可能存在反复操作,吞吐量才是单位时间内实际完成的工作量。
用高级语言和操作系统提供的命令就能操纵计算机。
提高资源利用率,同时提高系统吞吐量。
便于增加或修改功能。微内核一类结构比较容易做到这一点,但不是唯一做法。
遵循开放系统互连等国际标准,软硬件才能彼此兼容、互联。
1.1.2 操作系统的作用
作为用户与硬件的接口
第一层作用:操作系统是用户和计算机硬件之间的接口。用户并不直接操作 CPU 和设备,而是通过命令、系统调用或图形界面,请操作系统去驱使硬件。
可以把它看成夹在用户与裸机中间的一层:向上承接用户的意图,向下把意图翻译成对硬件的操作。下图就是这个位置。
作为资源的管理者
第二层作用:操作系统是资源的管理者。处理机、存储器、I/O 设备和文件,都要由它分配、回收、防止冲突。没有这一层,多道程序会立刻竞争资源。
实现对计算机硬件的抽象
第三层作用:操作系统把硬件细节藏起来,露出一层更好用的虚拟机。I/O 软件先挡住寄存器级的操作,文件软件再挡住磁盘块,窗口环境再挡住命令细节。用户看见的是一层层更友好的接口,而不是芯片本身。下图从硬件往上叠了这几层。
1.1.3 推动操作系统发展的主要动力
操作系统持续发展,其动力包括:提高资源利用率、方便用户使用、器件更新换代、计算机体系结构发展、新的应用需求。后续各章均可从这些角度理解操作系统不断演进的原因。
- 不断提高计算机资源的利用率
- 方便用户
- 器件更新换代
- 计算机体系结构发展
- 新的应用需求
做 · 交互动画
- 根据「学习目标」列出 3 个关键词,对照原理段落解释给自己听。
操作系统的目标和作用
用控件单步操作;日志区记下每一步发生了什么。
总结与提升
- 能画出分层,并指出本课将亲自实现哪些层。
- 能用自己的话复述学习目标,并指出概念与板上实验的对应。
延伸思考
- 嵌入式「库式 OS」与桌面 OS 目标侧重点有何不同?
- 如果把本节机制拿到 Linux 或完整 OpenHarmony 上,会多出哪些硬件假设?