理解Linux操做系統啓動流程,能有助於後期在企業中更好的維護Linux服務器,能快速定位系統問題,進而解決問題。linux
上圖爲Linux操做系統啓動流程服務器
計算機電源加電質檢,首先加載基本輸入輸出系統(Basic Input Output System,BIOS),BIOS中包含硬件CPU、內存、硬盤等相關信息,包含設備啓動順序信息、硬盤信息、內存信息、時鐘信息、即插即用(Plug-and-Play,PNP)特性等。加載完BIOS信息,計算機將根據順序進行啓動。網絡
2.讀取MBR函數
讀取完BIOS信息,計算機將會查找BIOS所指定的硬盤MBR引導扇區,將其內容複製到0x7c00地址所在的物理內存中。被複制到物理內存的內容是Boot Loader,而後進行引導。spa
3.GRUB引導操作系統
GRUB啓動引導器是計算機啓動過程當中運行的第一個軟件程序,當計算機讀取內存中的GRUB配置信息後,會根據其配置信息來啓動硬盤中不一樣的操做系統。blog
4.加載Kernel進程
計算機讀取內存映像,並進行解壓縮操做,屏幕通常會輸出「Uncompressing Linux」的提示,當解壓縮內核完成後,屏幕輸出「OK, booting the kernel」。系統將解壓後的內核放置在內存之中,並調用start_kernel()函數來啓動一系列的初始化函數並初始化各類設備,完成Linux核心環境的創建。內存
5.設定Inittab運行等級it
內核加載完畢,會啓動Linux操做系統第一個守護進程init,而後經過該進程讀取/etc/inittab文件,/etc/inittab文件的做用是設定Linux的運行等級,Linux常見運行級別以下:
6.加載rc.sysinit
讀取完運行級別,Linux系統執行的第一個用戶層文件/etc/rc.d/rc.sysinit,該文件功能包括:設定PATH運行變量、設定網絡配置、啓動swap分區、設定/proc、系統函數、配置Selinux等。
7.加載內核模塊
讀取/etc/modules.conf文件及/etc/modules.d目錄下的文件來加載系統內核模塊。該模塊文件,能夠後期添加或者修改及刪除。
8.啓動運行級別程序
根據以前讀取的運行級別,操做系統會運行rc0.d到rc6.d中的相應的腳本程序,來完成相應的初始化工做和啓動相應的服務。其中以S開頭表示系統即將啓動的程序,若是以K開頭,則表明中止該服務。S和K後緊跟的數字爲啓動順序編號。
上圖爲運行級別服務
9.讀取rc.local文件
操做系統啓動完相應服務以後,會讀取執行/etc/rc.d/rc.local文件,能夠將須要開機啓動的任務加入到該文件末尾,系統會逐行去執行並啓動相應命令。
開機運行加載文件
10.執行/bin/login程序
執行/bin/login程序,啓動到系統登陸界面,操做系統等待用戶輸入用戶名和密碼,便可登陸到Shell終端,如圖3-7所示,輸入用戶名、密碼便可登陸Linux操做系統,至此Linux操做系統完整流程啓動完畢。
系統登錄界面