前言 自从20世纪40年代第一台电子计算机发明与应用以来,计算机器与装备逐步从原先的国家重器进入寻常百姓家。伴随着个人智能手机和穿戴设备的进一步普及,计算机器与装备已经无处不在。它们之所以能够广泛应用,一方面得益于硬件技术的发展,尤其是摩尔定律所表达的CPU性能的快速增长;另一方面也归功于软件技术的飞跃,尤其是操作系统的不断演化。 纵观操作系统的发展历史,不难发现,操作系统的发展是在人与计算机的矛盾中产生的,究其本质,操作系统是计算机器与装备嵌入现实世界的一个界面。从进入太空的人造卫星和太空探索飞船到口袋中的智能手机,从适用于大型机器的作业批处理到适用于个人桌面终端的办公娱乐,从安装在千家万户的电表和水表到上千万分子化合物的模拟,操作系统部署、应用和服务与计算机器一道星罗棋布般地分布在世界的每一个角落,出现在人类社会生活的方方面面。 现代操作系统的一个标志是进程的创建,它为丰富软件与应用生态的繁荣奠定了最关键的基础。抽象出进程的概念和实体,是操作系统领域最重要的发明之一。通过进程,操作系统可以实现统一的程序管理。试想一下,如果没有进程,每个程序其实都是五花八门的,要管理这些程序是很复杂的,甚至是不可能的。基于进程,每个在运行时的程序都有基本的进程状态信息和一个规范的生存周期(从创建到终止),并且都服从统一的调度。 基于进程的概念,现代操作系统将计算机运行时完全映射为一个进程“王国”。读者可以将手边一台正在运行的笔记本电脑想象成一个忙碌的世界,里面同时(并发)运行着成百上千个进程,这些进程共享同样的物理CPU和内存。不难想象,如此众多的进程共处同一个“世界”中,那就一定存在需要相互协调的问题,这些问题即为进程间通信。 操作系统最基础性的功能是对计算机资源的管理,而处理器、内存、设备与文件是计算机中最核心的几类软硬件资源。 处理器管理的本质是时间管理,可以把它转化为围绕进程的处理器时间的调度问题,即在某个时刻应该调度哪个进程运行(占用处理器)。需要强调的一点是,这里提到的“时刻”与我们日常语言中的时刻的内涵有所区别,这里的时刻是以CPU的时钟周期作为最小的计算单位。何时调度,如何调度?这些在具体的实现中,针对不同的侧重点有不同的策略。另外,在处理器调度过程中,进程间无缝和透明地切换是一个技术性要求很高的操作,这可以说是操作系统这个魔法师变的一个戏法。 内存管理的本质是空间(地址)管理。其目标是将一个连续的地址空间合理且有效地划分给多个进程同时使用,一方面要保障内存空间的充分利用,另一方面要确保进程间不会出现相互干扰。朴素的内存管理,无论是分段、分页,或者是段页式内存管理,通常是通过映射将地址空间从一维转换为二维或三维(多维),从而更有效、更精准地管理内存空间。此外,更进一步,为缓解物理内存空间不足的问题,现代操作系统通过虚拟手段,将部分辅助存储空间从逻辑上扩充为内存空间的一部分。当然,这个存储虚拟化过程实现起来技术性也极强,这可以说是操作系统变的第二个戏法。 操作系统领域素来有微内核和单内核的路线之争。如果采用微内核,那么在内核中主要涉及的部分就是处理器管理和内存管理的部分功能。如果采用单内核,那么在内核中还要再包含设备管理和文件管理的内容。 设备管理的关键是如何统一管理类型繁杂、特性各异的设备。设备的类型是非常复杂的,有高速设备,也有低速设备;有块设备,也有字节设备;有共享设备,也有独占设备。操作系统创新地抽象出设备独立软件这一个软件层次,将设备通用与设备特性相关进行分离。与设备特性无关的通用操作包装到这个设备独立软件层次中,而与设备特性相关的操作放到设备驱动模块中,交由设备厂商来处理。设备管理要处理的一个核心问题还包括如何协调高速CPU与低速设备之间的矛盾,这个矛盾一直伴随着计算机的发展,可以说是操作系统面临的主要矛盾之一。事实上,从某种意义上而言,现代操作系统的另一个标志是CPU与设备之间在关系上发生的一场“哥白尼式”的革命。 文件管理的关键是一种透明映射,是将适用于人(用户)的目录和文件管理方式映射到计算机存储设备所擅长处理的串行0与1的码。文件管理主要涉及文件的逻辑结构和物理组织两个大的方面: 逻辑结构是从数据组织的角度讨论文件逻辑组织的方式;物理组织是从物理存储的角度讨论如何将文件存储到存储设备中。此外,一般的文件管理还涉及目录管理与文件命名等问题。 抛开具体的技术细节,操作系统在设计和架构方面的关键是并发、虚拟、抽象与映射。其中,抽象在操作系统中是极其普遍的,包括从进程的抽象到设备的抽象,抽象是操作系统能够处理复杂多变的软件生态的关键;虚拟是操作系统的核心特征之一,将内存从物理内存推动到虚拟内存,还将计算机操作系统的多道程序推动到多操作系统范式(云计算);并发对于操作系统至关重要,它是现代操作系统的标志性特征;映射是操作系统最重要的逻辑,虚拟地址到物理地址需要通过映射,设备操作也是从抽象设备到物理设备的映射。 编者2021年1月