linux系統主要通過以下步驟啟動:
讀取mbr的資訊,啟動boot manager
windows使用ntldr作為boot manager,如果您的系統中安裝多個版本的windows,您就需要在ntldr中選擇您要進入的系統。
linux通常使用功能強大,配置靈活的grub作為boot manager,我們將在啟動管理章節中向您介紹它的使用方式。
載入系統核心,啟動init程序
init程序是linux的根程序,所有的系統程序都是它的子程序。
init程序讀取 /etc/inittab 檔案中的資訊,並進入預設的執行級別,按順序執行該執行級別對應資料夾下的指令碼。指令碼通常以 start 引數啟動,並指向乙個系統中的程式。
通常情況下, /etc/rcs.d/ 目錄下的啟動指令碼首先被執行,然後是 /etc/rcn.d/ 目錄。例如您設定的執行級別為3,那麼它對應的啟動目錄為 /etc/rc3.d/ 。
根據 /etc/rcs.d/ 資料夾中對應的指令碼啟動xwindow伺服器 xorg
xwindow為linux下的圖形使用者介面系統。
啟動登入管理器,等待使用者登入
ubuntu系統預設使用gdm作為登入管理器,您在登入管理器介面中輸入使用者名稱和密碼後,便可以登入系統。(您可以在 /etc/rc3.d/ 資料夾中找到乙個名為 s13gdm 的鏈結)
更改執行級別
在 /etc/inittab 檔案中找到如下內容:
# the default runlevel.
id:2:initdefault:
這一行中的數字 2 ,為系統的執行級別,預設的執行級別涵義如下:
0 關機
1 單使用者維護模式
2~5 多使用者模式
6 重啟
服務管理
更改啟動服務
/etc/rcs.d/s35mountall.sh 掛載檔案系統
/etc/rcs.d/s40networking 啟用網路支援
/etc/rc2.d/s13gdm 啟動登入管理器
/etc/rc2.d/s20makedev 建立裝置檔案
/etc/rc2.d/s23xinetd 啟動超級程序
init程序將以 start 為引數,按檔名順序執行所有以 s## 起始的指令碼。指令碼名稱中的數字越小,它將被越早執行。例如在 /etc/rc2.d/ 資料夾中, s13gdm 檔名中的數字小於 s23xinetd , s13gdm 將比 s23xinetd 先執行。
/etc/rc2.d/k20powernowd 針對某種硬體的電源管理支援
如果您想禁止某一服務在啟動時自動執行,您可以將相應執行級別中的指令碼由 s##*** 重新命名為 k##*** 。
手動控**務
您也可以手動執行帶有以下引數的啟動指令碼,來控制系統服務。 - start 啟動 - stop 停止 - restart 重啟
例如:/etc/rc2.d/k20powernowd start
有時您並不清楚當前執行級別,該執行級別下未必有相應指令碼;而且此類指令碼的前三位字元並不固定,不便於記憶。這時,可以直接使用 /etc/init.d/ 資料夾中的啟動指令碼( /etc/rcx.d/ 中的啟動指令碼鏈結到 /etc/init.d/ 資料夾下相應指令碼),這也是推薦的方式。
例如:/etc/init.d/powernowd start
note:以上命令的位置並沒有包含在環境變數的搜尋路徑中,所以要輸入完整路徑。
linux啟動流程
bios basic input output system mbr main boot record kernel kernel自解壓 核心初始化 核心啟動 start kernel 自身為0 程序,建立1 程序執行,直接執行在物理記憶體空間上,沒有虛位址。1 程序裝入並執行程式 sbin ini...
Linux啟動流程
下面簡單介紹下啟動,詳細的後續再補。1.載入bios的硬體資訊並進行自我測試,並依據設定取得第乙個可以啟動的裝置 2.讀取並執行第乙個裝置內的mbr master boot record,硬碟的主引導記錄 的boot loader 即是grub,spfdisk等程式 3.依據boot loader的...
Linux啟動流程
1.載入bios的硬體資訊與進行自我測試,並依據設定取得第乙個可啟動的裝置。2.讀取並執行第乙個啟動裝置內mbr master boot record 的boot loader 即是grub,spfdisk等程式 3.依據bootload的設定載入kernal,kernal會開始檢測硬體與載入驅動程...