操作系统的实质是一层软件,它为用户程序提供一个更好、更简单、更清晰的计算机模型,并管理设备。
用户与系统交互的程序,基于文本的通常称为shell,基于图标的称为图形用户界面(GUI)。它们实际上并不是操作系统的一部分。
1、现代计算机系统的组成
一个或多个处理器、主存、磁盘、打印机、键盘、鼠标、显示器、网络接口以及各种其他输入/输出设备。它是一个复杂的系统。
1)硬件:包括芯片、电路板、磁盘、键盘、显示器以及类似的设备。它位于计算机底层。
2)软件:包括操作系统、用户接口程序、web浏览器等用户软件
操作系统是软件中最基础的部分,它运行在内核态(管态、核心态),具有对所有硬件的完全访问权,可以执行机器能够运行的任何指令。软件的其余部分运行在用户态下。在用户态下,只使用机器指令中的一个子集,用户态中的程序禁止影响机器的控制或可进行I/O操作的指令。用户接口程序,shell或GUI,处于用户态程序中的最低层次,允许用户运行其他程序。
2、操作系统的(模糊)概念
操作系统是运行在内核态的软件。它执行两个基本上独立的任务,为应用程序员提供一个资源集的清晰抽象,并管理这些硬件资源,而不仅仅是一堆硬件。
2.1 作为扩展机器的操作系统
抽象是管理复杂性的一个关键。文件是一种有效的信息片段。
2.2 作为资源管理者的操作系统
自顶向下:把操作系统看作是向应用程序提供基本抽象的概念;
自底向上:操作系统是用来管理一个复杂系统的各个部分。操作系统的任务是在相互竞争的程序之间有序地控制对处理器、存储器以及其他I/O接口设备的分配,它允许同时运行多道程序。
资源管理实现多路复用(共享)资源的方式:
1、时间上:当一个资源在时间上复用时,不同的程序或用户轮流使用它。
2、空间上:分配磁盘空间并记录谁正在使用哪个磁盘块,是操作系统资源管理的典型任务。
3、操作系统的历史
第一代(1945-1955):真空管和穿孔卡片
第二代(1955-1965):晶体管和批处理系统
第三代(1965-1980):集成电路芯片和多道程序设计
第四代(1980-至今):个人计算机