Linux操作系統(tǒng)啟動流程圖文詳解
理解Linux操作系統(tǒng)啟動流程,能有助于后期在企業(yè)中更好的維護(hù)Linux服務(wù)器,能快速定位系統(tǒng)問題,進(jìn)而解決問題。
上圖為Linux操作系統(tǒng)啟動流程
1.加載BIOS
計算機(jī)電源加電質(zhì)檢,首先加載基本輸入輸出系統(tǒng)(Basic Input Output System,BIOS),BIOS中包含硬件CPU、內(nèi)存、硬盤等相關(guān)信息,包含設(shè)備啟動順序信息、硬盤信息、內(nèi)存信息、時鐘信息、即插即用(Plug-and-Play,PNP)特性等。加載完BIOS信息,計算機(jī)將根據(jù)順序進(jìn)行啟動。
2.讀取MBR
讀取完BIOS信息,計算機(jī)將會查找BIOS所指定的硬盤MBR引導(dǎo)扇區(qū),將其內(nèi)容復(fù)制到0x7c00地址所在的物理內(nèi)存中。被復(fù)制到物理內(nèi)存的內(nèi)容是Boot Loader,然后進(jìn)行引導(dǎo)。
3.GRUB引導(dǎo)
GRUB啟動引導(dǎo)器是計算機(jī)啟動過程中運(yùn)行的第一個軟件程序,當(dāng)計算機(jī)讀取內(nèi)存中的GRUB配置信息后,會根據(jù)其配置信息來啟動硬盤中不同的操作系統(tǒng)。
4.加載Kernel
計算機(jī)讀取內(nèi)存映像,并進(jìn)行解壓縮操作,屏幕一般會輸出“Uncompressing Linux”的提示,當(dāng)解壓縮內(nèi)核完成后,屏幕輸出“OK, booting the kernel”。系統(tǒng)將解壓后的內(nèi)核放置在內(nèi)存之中,并調(diào)用start_kernel()函數(shù)來啟動一系列的初始化函數(shù)并初始化各種設(shè)備,完成Linux核心環(huán)境的建立。
5.設(shè)定Inittab運(yùn)行等級
內(nèi)核加載完畢,會啟動Linux操作系統(tǒng)第一個守護(hù)進(jìn)程init,然后通過該進(jìn)程讀取/etc/inittab文件,/etc/inittab文件的作用是設(shè)定Linux的運(yùn)行等級,Linux常見運(yùn)行級別如下:
•0:關(guān)機(jī)模式
•1:單用戶模式
•2:無網(wǎng)絡(luò)支持的多用戶模式
•3:字符界面多用戶模式
•4:保留,未使用模式
•5:圖像界面多用戶模式
•6:重新引導(dǎo)系統(tǒng),重啟模式
6.加載rc.sysinit
讀取完運(yùn)行級別,Linux系統(tǒng)執(zhí)行的第一個用戶層文件/etc/rc.d/rc.sysinit,該文件功能包括:設(shè)定PATH運(yùn)行變量、設(shè)定網(wǎng)絡(luò)配置、啟動swap分區(qū)、設(shè)定/proc、系統(tǒng)函數(shù)、配置Selinux等。
7.加載內(nèi)核模塊
讀取/etc/modules.conf文件及/etc/modules.d目錄下的文件來加載系統(tǒng)內(nèi)核模塊。該模塊文件,可以后期添加或者修改及刪除。
8.啟動運(yùn)行級別程序
根據(jù)之前讀取的運(yùn)行級別,操作系統(tǒng)會運(yùn)行rc0.d到rc6.d中的相應(yīng)的腳本程序,來完成相應(yīng)的初始化工作和啟動相應(yīng)的服務(wù)。其中以S開頭表示系統(tǒng)即將啟動的程序,如果以K開頭,則代表停止該服務(wù)。S和K后緊跟的數(shù)字為啟動順序編號。
上圖為運(yùn)行級別服務(wù)
9.讀取rc.local文件
操作系統(tǒng)啟動完相應(yīng)服務(wù)之后,會讀取執(zhí)行/etc/rc.d/rc.local文件,可以將需要開機(jī)啟動的任務(wù)加入到該文件末尾,系統(tǒng)會逐行去執(zhí)行并啟動相應(yīng)命令。
開機(jī)運(yùn)行加載文件
10.執(zhí)行/bin/login程序
執(zhí)行/bin/login程序,啟動到系統(tǒng)登錄界面,操作系統(tǒng)等待用戶輸入用戶名和密碼,即可登錄到Shell終端,如圖3-7所示,輸入用戶名、密碼即可登錄Linux操作系統(tǒng),至此Linux操作系統(tǒng)完整流程啟動完畢。
系統(tǒng)登陸界面
總結(jié)
以上所述是小編給大家介紹的Linux操作系統(tǒng)啟動流程圖文詳解,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!
相關(guān)文章
Linux 環(huán)境下編譯安裝MySQL5.6的筆記記錄
這篇文章主要介紹了Linux 環(huán)境下編譯安裝MySQL5.6的筆記記錄,需要的朋友可以參考下2017-07-07在Linux(Ubuntu)下搭建PHP環(huán)境的操作步驟
ubuntu中文名叫烏班圖,ubuntu系統(tǒng)是一個以桌面應(yīng)用為主的linux操作系統(tǒng),今天給大家演示如何在Linux(Ubuntu)下搭建PHP環(huán)境,有需要的可以參考學(xué)習(xí)。2016-08-08查看Linux系統(tǒng)是32位還是64位的方法總結(jié)
這篇文章主要介紹了查看Linux系統(tǒng)是32位還是64位的方法總結(jié),非常不錯,具有參考借鑒價值,需要的朋友可以參考下2018-03-03深入數(shù)據(jù)驅(qū)動編程之表驅(qū)動法的詳解
本篇文章是對表驅(qū)動法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05Centos系統(tǒng)中徹底刪除Mysql數(shù)據(jù)庫步驟
這篇文章主要介紹了Centos系統(tǒng)中徹底刪除Mysql數(shù)據(jù)庫步驟的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2017-07-07