首先載入BIOS的硬體資訊,眾所周知BIOS即Basic Input/Output Setup的意思,每次你按下開機鍵,電腦首先就會載入BIOS的資訊,開機時按del鍵可以進入BIOS進行設定,比如最常用的就是設定從硬碟啟動還是從光碟機啟動或其他,相信裝過作業系統的人都知道這個。當然BIOS裡面還有相當多的資訊,比如硬碟大小,電壓等。
如果BIOS是設定從硬碟啟動的話,那麼讀完BIOS後會先去讀取第一個開機硬碟的頭一個扇區,就是MBR,估計有人聽過,即master boot record.引導程式如grub,lilo都裝在這裡。為什麼要讀取這些資訊呢?想想你機器裡裝的多系統,如果沒有引導程式,機器就不知道他該啟動哪個系統,引導程式的作用正是提供幾個作業系統的選項,然後各個選項都指向了作業系統的啟動地址。
機器從引導程式找到了linux核心後,就要開始載入linux核心了,linux系統的核心基本上安裝在/boot下,引導程式就會找到boot下的核心,並載入。
載入完畢後,核心執行/sbin/init程式,而這個程式會根據/etc/inittab檔案裡的資訊選擇登入模式,一共有7種模式,分別以0——6數字表示。基本上我們用的linux裝有圖形介面的是用模式5.
知道了登入模式後,就要開始讀取主機資訊了,linux首先讀取/etc/rc.d/rc.sysinit,其中包括PATH路徑和一些LINUX作業系統最基本的資訊。
接下來就要開始載入各個模組了,系統從/etc/modules.conf讀入模組相關資訊
/sbin/init程式開始執行run-level中的各個指令碼了,剛開始已經選擇了等如模式0——6,則就會執行/etc/rc.d/rc*.d裡的指令碼了。進入/etc/rc.d/rc5.d檔案夾,ls -l查看,會發現這裡都是指向rc.d/init.d裡面指令碼的連結。由於各個登入模式都有不同的指令碼啟動,而所有啟動的指令碼都是來自於init.d裡。rc*.d裡的指令碼名要麼是K開頭,要麼是S開頭,K表示kill,S表示start,S和K後面的數字代表啟動的優先順序,越小越優先。
到這裡差不多已經完成了開機的大部分任務,接著/sbin/init就要開始執行執行linux的個人化設定。這些個設定都儲存在/etc/rc.d/rc.local裡。