下载
当U N I X 重新启动,也就是在一台空闲机器上装入和初启时将发生一系列事件,本章的目
的就是考虑这一系列事件的序列。
对初启过程本身的研究是非常有趣的,但更重要的是它能将系统的很多重要特征以有序
的方式展现出来。
在系统崩溃之后可能需要重新启动操作系统。由于某些非常普通、操作上的原因,例如
过夜之前的关机,也要频繁地重新启动操作系统。如果我们考虑后一种情况,那么可以认为
所有磁盘文件都是完好无损的,没有什么特殊情况需要识别和处理。
我们尤其可以设想在根目录中有一个称为“ / u n i x”的文件,它是U N I X操作系统的目标代
码。
该文件起始于一组我们正在研究学习的源文件。将这些源文件分别编译,然后连接到一
起构成了一个单一目标文件,然后存放在根目录下的 u n i x文件中。
6.1 操作员的动作
重新启动要求操作员在处理机控制台上执行下列操作:
• 将“e n a b l e / h a l t ”(启动/停机)开关设置到“h a l t”位置,这样就停止了处理机。
• 将硬件引导装入程序的地址设置到开关寄存器。
• 按下,然后释放“装入地址”开关。
• 将“e n a b l e / h a l t ”开关设置到“e n a b l e ”位置。
• 按下,然后释放“ s t a r t ”(启动)开关。这样就激活了常驻在处理机中 R O M 里的引导程
序。
引导装入程序装入一更大的装入程序 (从系统盘的#0块 ),该程序查找并将称为“ / u n i x ”
的文件装入到内存的低地址部分。然后,它将控制转移到已装入#0地址的指令。
地址0单元中是一条转移指令 ( 0 5 0 8行),它转移到0 0 0 0 4 0 单元,其中包含一条跳转 ( j u m p )
指令( 0 5 2 2 行),它跳转到标号为“s t a r t ”的指令,该指令在文件“ m 4 0 . s”中( 0 6 1 2行)。
6.2 start(0612)
0 6 1 3 :测试存储管理状态寄存器的“启动”位 S R 0 。若该位设置,则处理机将一直执行两
条指令的循环。在启动系统之前,当操作员触发在控制台上的“清除” (“c l e a r ”)按钮时,该
寄存器通常被清除。
对于这一循环的必要性已提出了很多理由。最主要的一条是:在双总线超时错情况下,
处理机将转移到#0单元,在这种情况下不应当允许程序向前执行。
评论0