操作系统的基本要求:虚拟化,并发与持久性。
虚拟化:取得CPU,内存和磁盘这样的物理资源,并试图抽象他们为更通用的形式。为了完成这个目标,操作系统本身有时会被称为虚拟机。虚拟机向高层的应用提供接口,这样,相对于高层的应用而言,操作系统又可以被认为向应用提供了标准库。同时,在虚拟化中,操作系统不可避免地调度应用对物理资源的使用的行为,让操作系统又可以被称为资源管理器。
并发:在解决问题的时候,解决方案——也就是操作系统——让其看上去像是同时处理并解决一些问题:这是基于实际的调度方案来解释的。而从问题本身的角度而言,我们也的确是要解决一些同时发生的问题,例如同时向一个文件写入。
持久性:对于一些数据,操作系统需要保证哪怕发生致命性故障——例如断电和崩溃——数据也能被稳定地储存,尤其是在数据通过磁盘在各大进程中交互的时候。这需要操作系统中的文件系统来保证。
由基本要求引申出来的一些实际要求:
执行虚拟化的时候,抽象必不可少,但同时要求高性能。这就要求我们做好trade-off。老实说图形学也有这个要求,特别是实时渲染,总得扔掉一些东西以满足严苛的性能要求。
保护进程和操作系统,是在实现并发的时候产生的一些伴生要求。为了给并发的进程和操作系统提供保护,隔离是一种很好的手段和方法。
大部分,甚至全部的服务器大型机的操作系统要求不间断地运行,这就对操作系统的持久性提出了很大的考验:操作系统得可靠。
现在,还有一些新的目标被提了出来,例如高效地利用能源,对用户而言安全的使用应用——本质上还是要求保护——以及在不同尺度上,操作系统的移动性……