1.8.4 运行模型

在操作系统二进制代码链接完成后,计算机就可以重新启动,新的操作系统开始运行。一旦运行,系统会动态调入那些没有静态包括在二进制代码中的模块,诸如设备驱动和文件系统。在运行过程中,操作系统可能由若干段组成,有文本段(程序代码)、数据段和堆栈段。文本段通常是不可改变的,在运行过程中不可修改。数据段开始时有一定的大小,并用确定的值进行初始化,但是随后就被修改了,其大小随需要增长。堆栈段被初始化为空,但是随着对函数的调用和从函数返回,堆栈段时时刻刻在增长和缩小。通常文本段放置在接近内存底部的位置,数据段在其上面,这样可以向上增长。而堆栈段处在高位的虚拟地址,具有向下增长的能力,不过不同系统的工作方式各有差别。

在所有情形下,操作系统代码都是直接在硬件上执行的,不用解释器,也不是即时编译,如Java通常做的那样。