现代操作系统-第一章-引论
操作系统的任务,是为用户程序提供了一个更好、更简单、更清晰的计算机模型,并管理刚才提到的所有设备,如主存,磁盘,打印机,键盘,鼠标。显示器,网络接口以及其他各种输入/输出的设备等。
从图中可以用看出操作系统是建立在硬件上的内核态,之上是用户态,用户态的最底层是用户接口程序(shell和GUI,graphical user interface),其上是各种用户程序。
1.1 什么是操作系统
很难给出操作系统的准确定义。操作系统是一组运行在内核态中的软件。部分原因是因为操作系统执行两个以上的基本任务。一是为程序员提供一个资源集的清晰抽象,二是管理这些硬件资源(而不是硬件本身)。
1.1.1 作为扩展机器的操作系统
程序员并不想去设计具体硬件的具体细节。 抽象是管理复杂性的关键,好的抽象可以把一个不可能管理的任务划分成两个可管理的部分。第一部分是有关抽象的定义和实现,第二部分是随时用这些抽象解决问题。e.g.文件就是一种很成功的抽象
硬件是丑陋的。
1.1.2 作为资源管理者的操作系统
自顶向下的观念:把操作系统看作是应用程序提供最基本的抽象 自底向上的观念:操作系统则用来管理一个复杂系统的各个部分
操作系统的任务是在相互竞争的程序之间有序控制对处理器,存储器以及其他IO设备的分配
两种不同方式实现对资源的多路复用:
- 时间上,不同程序和用户轮流使用
- 空间上,每个用户取得一部分,取代了时间上的排队。
1.2 操作系统的历史
第一代 真空管和穿孔卡片
第二代 晶体管和批处理系统
第三代 集成电路芯片和多道程序设计
- 多道程序设计: 针对了IO密集型情况
- 同时的外部联机操作: simultaneous peripheral operation online
- 分时系统 一个伟大的创意-MULTICS
- 小型机的崛起,PDP系列
- UNIX:
- 一位参与MULTICS研制的贝尔实验室计算机科学家Ken Thompson找到一台无人使用的PDP-7,开发了简单的单用户版的MULTICS,导致了后来UNIX的诞生。
- UNIX主要有两个版本,一个是AT&T的System V,以及源自UCB的BSD(Berkley Software Distribution).
- 为了能使编写的程序能够在所有的UNIX上运行,IEEE发布了POSIX,定义了一个凡是UNIX系统都必须支持的小型系统调用接口。
- 本书作者编写了MINIX用于教学目的,完全免费。
- 对UNIX版本免费产品的愿望,导致Linus Torvalds编写了Linux。这个系统直接受到了MINIX的启示。
第四代 个人计算机