前言
操作系统负责确保系统既易于使用又正确高效地运行。
一、程序运行时在做什么?
一个正在运行的程序会做一件非常简单的事情:执行指令。处理器从内存中获取(fetch)
一条指令,对其进行解码(decode)(弄清楚这是哪条指令),然后执行(execute)它(做它
应该做的事情,如两个数相加、访问内存、检查条件、跳转到函数等)。完成这条指令后,
处理器继续执行下一条指令,依此类推,直到程序最终完成。
二、操作系统能为程序带来什么?
操作系统负责让程序运行变得容易(甚至允许你同时运行多个程序),允许程序共享内存,让程序能够与设备交互,以及其他类似的有趣的工作。负责确保系统既易于使用又正确高效地运行。
三、怎么让系统易于使用?
要做到这一点,操作系统主要利用一种通用的技术,我们称之为虚拟化(virtualization)。
也就是说,操作系统将物理(physical)资源(如处理器、内存或磁盘)转换为更通用、更
强大且更易于使用的虚拟形式。因此,我们有时将操作系统称为虚拟机(virtual machine)。
四、用户如何使用操作系统?
为了让用户可以告诉操作系统做什么,从而利用虚拟机的功能(如运行程序、分配内存或访问文件),操作系统还提供了一些接口(API),供你调用。实际上,典型的操作系统会提供几百个系统调用(system call),让应用程序调用。由于操作系统提供这些调用来运行程序、访问内存和设备,甚进行其他相关操作,我们有时也会说操作系统为应用程序提供了一个标准库(standard library)。
总结
因为虚拟化让许多程序运行(从而共享 CPU),让许多程序可以同时访问自己的指令和数据(从而共享内存),让许多程序访问设备(从而共享磁盘等),所以操作系统有时被称为资源操理器(resource manager)。每个 CPU、内存和磁盘都是系统的资源(resource),因此操作系统扮演的主要角色就是管理(manage)这些资源,以做到高效或公平。