hacking 4.4BSD-Lite2之启动顺序

类别:软件工程 点击:0 评论:0 推荐:
不记得是去年还是前年了,就已经买了那本《The Design and Implementation of the 4.4BSD Operating System》,可是一直没有认真地看过。最近想边hacking source codes,边看看,研究一下。
看了几天4.4BSD-Lite2的代码,但是总搞不清楚具体的启动顺序,今天花了点时间终于是研究出来了。
(由于没有找到HP300方面的资料所以就先看看I386的先吧:)
 +------+
 | BIOS |
 +------+
     |
     v
+-----------+
|wdbootblk.c|  其中,wdbootblk.c and bootxx.c应该是写在硬盘的启动表中的吧!?
|     or    |
|fdbootblk.c|  wdbootblk.c通过call _main来调用bootxx.c中的main(dev, unix, off)
+-----------+
     |
     V
 +--------+
 |bootxx.c|   bootxx.c最后读取文件/boot来进行执行的
 +--------+
     |
     v
 +--------+
 | srt0.c |   其中,srt0.c and boot.c就是bootxx.c读取的/boot
 +--------+   srt0通过call _main来调用boot.c中的main(howto, dev, off)
     |
     v
 +--------+
 | boot.c |   boot.c最后读取文件/vmunix(也就是真正的内核:)来进行执行的
 +--------+
     |
     v
 +--------+
 |locore.s|  locore.s内核的开始
 +--------+
     |
     v
+-----------+
|init_main.c|
|(process 0)|----------|
+-----------+          |
     |                 |
     v                 v
+------------+   +--------------+
|(process 1) |   |  (process 2) |
| /sbin/init |   |pageout daemon|
+------------+   +--------------+

本文地址:http://com.8s8s.com/it/it34824.htm