按下系統的電源開關,過一會就可以看到linux的登入介面了。
你是否曾經想過,從按下電源開關到登入介面出現,這後面到底發生了什麼?
下面就來介紹一下典型linux引導的六大步驟:
bios表示基本輸入輸入系統(basic input/output system)
完成一些系統的完整性檢查
搜尋、載入並且執行引導程式(boot loader)
它在軟盤,cd-rom或者硬碟上尋找引導程式。你可以在系統啟動時按下鍵盤(通常是f12或者f2,但是因系統而異)來修改啟動順序
一旦引導程式被檢測到並且載入到記憶體,bios會將控制權移交給它
因此,簡而言之,biso負責載入並且執行mbr引導程式
mbr表示主引導記錄(master boot record)
它位於啟動盤的第乙個扇區。通常是/dev/hda,或者/dev/sda
mbr大小為512位元組。包括三個部分:1)在第乙個446位元組中包含主引導程式(primary boot loader);2)後面64位元組包含乙個分割槽表;3)最後兩位元組是乙個校驗碼
它包含了grub(老系統中可能是lilo)資訊
因此,簡而言之,mbr負責載入並且執行了grub引導程式
grub是多重引導管理器(grand unified bootloader)
如果你的系統中安裝了多個核心,你可以選擇啟動哪乙個
grub顯示了乙個啟動畫面,等待幾秒鐘,如果你不輸入任何東西,它將載入在配置檔案中指定的預設核心
grub能夠了解檔案系統的資訊(老一代的lilo就沒有這個能力)
grub配置檔案是/boot/grub/grub.conf(/etc/grub.conf是它的乙個鏈結檔案)。這是centos系統中grub.conf的樣例
你可以注意到,這中間包含核心和initrd映像資訊#boot=/dev/sdadefault=0timeout=5splashimage=(hd0,0)/boot/grub/splash.xpm.gzhiddenmenutitle centos (2.6.18-194.el5pae)root (hd0,0)kernel /boot/vmlinuz-2.6.18-194.el5pae ro root=label=/initrd /boot/initrd-2.6.18-194.el5pae.img
因此,簡而言之,grub負責載入並且執行核心和initrd映像。
按照grub.conf中「root="配置來掛載根檔案系統
核心執行/sbin/init程式
既然這是被linux核心執行的第乙個程式,它的程序id(pid)當然就是1了。執行」ps -ef | grep init"來檢視一下pid。
initrd表示initial ram disk
initrd被核心用作臨時的根目錄,直到核心啟動完成並且真正的根目錄掛載成功。它也包括一些編譯好的必要的驅動程式,這些程式有助於它訪問硬碟和其他硬體。
檢視/etc/inittab檔案來決定linux的執行級別(run level)
接下來是所有支援的執行級別
init程式從/etc/initab來確定預設的初始化級別,然後用來載入相應級別的程式
在你的系統上執行"grep initdefault /etc/inittab"來檢視預設的執行級別
如果你想找點麻煩,可以將預設執行級別設為0或6試試。既然你已經知道0和6的意思,那估計你不會那麼做
通常,預設執行級別會設定為3或者5
當linux系統起來後,你能夠看到各種各樣的服務也起來了。比如說,它可能會顯示「starting sendmail....ok"。這就是執行級程式,它們根據你在不同執行級別中的定義來執行不同目錄中的程式
根據你在預設執行級別的設定,系統將從下面幾個目錄中選擇乙個來執行相應的程式:
請注意在/etc目錄下也有這些目錄的符號鏈結。因此,/etc/rc0.d被鏈結到/etc/rc.d/rc0.d
在/etc/rc.d/rc*.d目錄中,你能夠看到很多開頭是s或者k的程式
以s開頭的程式在系統啟動時被執行。s表示啟動
以k開頭的程式在系統關機時被執行。k表示殺死(kill)
在程式名的s或k後面緊跟著乙個數字,這是程式在啟動或者關機時的執行序號。
例如,s12syslog用於啟動syslog守護程序,它的執行序號是12。s80sendmail用於啟動sendmail守護程序,它的執行序號是80。因此,syslog會在sendmail之前被啟動
搞清楚了吧,這就是linux啟動過程中發生的事情。
掌控情緒的六個步驟!!
發表於 2007年11月21日 22時45分53秒 許可權 公開 閱讀 15 掌控情緒的六個步驟!第一步 確認你真正的感受 掌控的第一步是覺察,用心的去觀察自己到底處於一種怎樣的情緒狀態下。經常人們並不確切知道自己真正的感受,只是一頭載進那些負面情緒裡,承受不當的痛苦折磨。其實他們並不需要這麼苦待自...
JDBC程式設計的六個步驟
jdbc程式設計的六個步驟 準備工作中匯入ojdbc檔案,然後右鍵選中新增路徑 build path 到oracle安裝目錄裡新增oracle的ojdbc.jar包 1 註冊驅動 class.forname oracle.jdbc.oracledriver 2 連線資料庫 string url jd...
確定IP位址元件的六個步驟方法
在給出乙個特定位址和子網掩碼並詢問該位址是網路位址 主機位址還是定向廣播位址時,應該使用以下列6個步驟 1 需要乙個ip位址和乙個子網掩碼。2 檢查子網掩碼並找到感興趣的8位位組。在掩碼中感興趣的8位位組就是可以在其中找到網路界限和主機界限的那乙個8位位組。在8位位組中包括以下掩碼值 0 128 1...