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