现代操作系统-第一章-引论

操作系统的任务,是为用户程序提供了一个更好、更简单、更清晰的计算机模型,并管理刚才提到的所有设备,如主存,磁盘,打印机,键盘,鼠标。显示器,网络接口以及其他各种输入/输出的设备等。

从图中可以用看出操作系统是建立在硬件上的内核态,之上是用户态,用户态的最底层是用户接口程序(shell和GUI,graphical user interface),其上是各种用户程序。

1.1 什么是操作系统

很难给出操作系统的准确定义。操作系统是一组运行在内核态中的软件。部分原因是因为操作系统执行两个以上的基本任务。一是为程序员提供一个资源集的清晰抽象,二是管理这些硬件资源(而不是硬件本身)。

1.1.1 作为扩展机器的操作系统

程序员并不想去设计具体硬件的具体细节。 抽象是管理复杂性的关键,好的抽象可以把一个不可能管理的任务划分成两个可管理的部分。第一部分是有关抽象的定义和实现,第二部分是随时用这些抽象解决问题。e.g.文件就是一种很成功的抽象

硬件是丑陋的。

1.1.2 作为资源管理者的操作系统

自顶向下的观念:把操作系统看作是应用程序提供最基本的抽象 自底向上的观念:操作系统则用来管理一个复杂系统的各个部分

操作系统的任务是在相互竞争的程序之间有序控制对处理器,存储器以及其他IO设备的分配

两种不同方式实现对资源的多路复用:

  1. 时间上,不同程序和用户轮流使用
  2. 空间上,每个用户取得一部分,取代了时间上的排队。

1.2 操作系统的历史

第一代 真空管和穿孔卡片

第二代 晶体管和批处理系统

第三代 集成电路芯片和多道程序设计

  1. 多道程序设计: 针对了IO密集型情况
  2. 同时的外部联机操作: simultaneous peripheral operation online
  3. 分时系统 一个伟大的创意-MULTICS
  4. 小型机的崛起,PDP系列
  5. 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的启示。

      第四代 个人计算机

1.3 计算机硬件介绍

Table of Contents