日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

LINUX引導(dǎo)過程

LINUX引導(dǎo)過程
首先說明一下,這里講的是LINUX引導(dǎo)經(jīng)過的步驟,而不涉及KERNEL引導(dǎo)過程的內(nèi)部
細(xì)節(jié) 。希望本文能對(duì)初學(xué)LINUX的朋友有所幫助 。

一、從BIOS到KERNEL
計(jì)算機(jī)在接通電源之后首先由BIOS進(jìn)行自檢,即進(jìn)行所謂的POST(Power;On;Self;
Test),然后依據(jù)BIOS內(nèi)設(shè)置的引導(dǎo)順序從硬盤、軟盤或CDROM中讀入“引導(dǎo)塊” 。
如通常BIOS中設(shè)的引導(dǎo)順序?yàn)镃在最前面,那么就把C盤(第一個(gè)IDE硬盤)的第0柱面
,第0頭的第1個(gè)扇區(qū)讀入內(nèi)存,然后跳到那里開始執(zhí)行 。這個(gè)扇區(qū)有一個(gè)大家熟悉的
名字——MBR(Main;Boot;Record) 。換句話說,MBR里面存放的是一小段程序以及分
區(qū)表的數(shù)據(jù) 。在使用WIN9X和DOS時(shí),這里面放的代碼就把分區(qū)表里標(biāo)記為Active的分
區(qū)的第一個(gè)扇區(qū)(一般存放著操作系統(tǒng)的引導(dǎo)代碼)讀入內(nèi)存并跳轉(zhuǎn)到那里開始執(zhí)行 。

而在用LILO引導(dǎo)LINUX時(shí),有兩種選擇:
(1);把LILO安裝在MBR 。這時(shí)就由BIOS直接把LILO代碼調(diào)入內(nèi)存,然后跳轉(zhuǎn)執(zhí)行
LILO 。即
BIOS——>LILO(在MBR中)——>KERNEL
(2);把LILO安裝在LINUX分區(qū),并把LINUX分區(qū)設(shè)為Active 。這時(shí),BIOS調(diào)入的是
WIN9X/DOS下的MBR代碼,然后由這段代碼來調(diào)入LILO的代碼(位于活動(dòng)分區(qū)的第一個(gè)
扇區(qū)) 。即
BIOS——>MBR——>LILO(在活動(dòng)分區(qū)的第一個(gè)扇區(qū))——>KERNEL
因?yàn)樵谧x入及執(zhí)行MBR時(shí),操作系統(tǒng)還沒有起來,所以只能用BIOS提供的INT13來進(jìn)
行磁盤操作,而INT13只能讀寫硬盤1024柱面之前的數(shù)據(jù),由此可知任何操作系統(tǒng)的引
導(dǎo)代碼必須在1024柱面之前 。對(duì)于LINUX來說,不管你使用方式(1)還是方式(2)啟動(dòng),
都要保證KERNEL放在1024柱面之前 。只有在KERNEL起來以后,才有讀/寫1024柱面以后
數(shù)據(jù)的能力 。因?yàn)長(zhǎng)INUX不使用INT13來進(jìn)行硬盤操作 。從上面我們也可以看到,不存在
什么“WIN95可以,而LINUX不可以”的問題,作為操作系統(tǒng)要能被正確引導(dǎo),在現(xiàn)有
的BIOS下,它們的引導(dǎo)部分都必須在1024柱面之前 。如果操作系統(tǒng)本身還是基于INT13
來進(jìn)行磁盤操作的話,那么它也只能讀/寫1024柱面之前的數(shù)據(jù) 。


二、從KERNEL到login;prompt
在KERNEL起來之后,將生成第一個(gè)進(jìn)程——init,實(shí)際上是執(zhí)行了/sbin/init 。ini
t的工作是根據(jù)/etc/inittab來執(zhí)行相應(yīng)的腳本進(jìn)行系統(tǒng)初始化,如設(shè)置鍵盤、字體,
裝載模塊,設(shè)置網(wǎng)絡(luò),等等 。

/etc/inittab文件的每一行包括四個(gè)域:
id:runlevels:action:process
runlevel是運(yùn)行模式,通常為0-6 。模式0是halt,模式6是reboot,模式1是單用戶,
模式2/3是多用戶,模式5是運(yùn)行xdm以圖形界面方式登錄 。id為標(biāo)識(shí)符,通常為兩個(gè)
字母 。process為需要執(zhí)行的程序或腳本 。action包括有:
(1);defaultinit;——;指定缺省的運(yùn)行模式(runlevel)
(2);sysinit;——;指定運(yùn)行的第一個(gè)程序/腳本,此時(shí)runlevels域不起作用 。
(3);boot;——;在sysinit之后執(zhí)行,runlevels域不起作用
(4);bootwait;——;同boot,但init會(huì)等待該命令結(jié)束
(5);once;——;在進(jìn)入有runlevels指定的運(yùn)行模式時(shí)運(yùn)行
(6);wait;——;同上,但init會(huì)等待該命令結(jié)束
(7);respawn;——;在進(jìn)入相應(yīng)runlevel時(shí)執(zhí)行,并且若該進(jìn)程結(jié)束,init會(huì)再起
一個(gè)進(jìn)程執(zhí)行同樣的命令
(8);ctrlaltdel;——;指定在用戶按下Ctrl-Alt-Del時(shí)執(zhí)行的命令

對(duì)于Redhat來說,執(zhí)行的順序?yàn)椋?
/etc/rc.d/rc.sysinit;;;;#;由init執(zhí)行的第一個(gè)腳本
/etc/rc.d/rc;$RUNLEVEL;;#;$RUNLEVEL為缺省的運(yùn)行模式
/sbin/mingetty;;#;等待用戶登錄

三、/etc/rc.d/rc.sysinit及/etc/rc.d/rc
在Redhat中,/etc/rc.d/rc.sysinit主要做在各個(gè)運(yùn)行模式中相同的初始化工作,包括:

推薦閱讀