日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux系统开机自启流程

發(fā)布時(shí)間:2023/12/9 linux 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux系统开机自启流程 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.


第一步:POST(Power?On?Safe?Test)加電自檢

?? 當(dāng)按下電源鍵以后,CPU因?yàn)橛须娏魍ㄟ^便開始對(duì)自身、I/O設(shè)備、內(nèi)存等硬件進(jìn)行檢驗(yàn)。那么CPU如何得知這些自檢指令?我們知道指令存在于內(nèi)存當(dāng)中,尋找內(nèi)存也需要指令。這看起來似乎是一個(gè)“死結(jié)”。如何解決呢?在CPU生廠商生產(chǎn)CPU的時(shí)候會(huì)給CPU內(nèi)置一系列指令,讓CPU通電以后就在固定的內(nèi)存(ROM)中尋找自檢指令,進(jìn)行自檢。所以,內(nèi)存不僅僅只有我們可見的RAM,還有我們不可見,CPU可見ROM

第二步:BIOS(Basic?Input?Output?System)

?? BIOS是一組固化在主板上ROM芯片上的程序,該程序的主要功能是完成系統(tǒng)的加電自檢、系統(tǒng)的自啟動(dòng)程序。

由于一臺(tái)計(jì)算機(jī)中可能會(huì)存在很多磁盤,每個(gè)磁盤都可以裝載一個(gè)操作系統(tǒng),此時(shí)BIOS中的Boot?Sequence模塊會(huì)決定啟動(dòng)那個(gè)磁盤中的操作系統(tǒng)。

第三步:MBR(Master?Boot?Recorder)引導(dǎo)將內(nèi)核加載到內(nèi)存中

在完成自檢以及選擇好裝載哪個(gè)操作系統(tǒng)之后,BIOS會(huì)將選定磁盤的0號(hào)扇區(qū)上的MBR加載進(jìn)內(nèi)存引導(dǎo)其加載內(nèi)核模塊。

MBR512B=?Boot?Loader446B+?Partition?information16B*4+?Reserve2B

為了方便的訪問內(nèi)核所在的磁盤,MBR中的Boot?Loader會(huì)將內(nèi)核所在的分區(qū)暫時(shí)指定為“根文件分區(qū)”,然后通過該種路徑訪問內(nèi)核,并將其加載進(jìn)內(nèi)存中。內(nèi)核加載完畢以后,會(huì)指定非本分區(qū)的一個(gè)分區(qū)為真實(shí)的根分區(qū),并將內(nèi)核所在的分區(qū)掛載到真實(shí)根分區(qū)的/boot目錄下,此時(shí)用戶可以通過/boot/對(duì)內(nèi)核文件進(jìn)行訪問。

加載的內(nèi)核文件由兩部分組成:壓縮的內(nèi)核文件和進(jìn)行內(nèi)核解壓的程序。內(nèi)核的真實(shí)文件非常大,為了減小加載過程中IO的消耗,將內(nèi)核文件壓縮后再加載進(jìn)內(nèi)存,然后由內(nèi)核解壓模塊對(duì)壓縮程序進(jìn)行解壓。

當(dāng)前常用的Boot?Loader就是GRUB。其分為三個(gè)階段(查看/boot/grub):

?1st?stage:位于MBR中,用于引導(dǎo)2nd?stage

?1.5?stage:位于boot基本磁盤分區(qū)當(dāng)中,為了識(shí)別內(nèi)核文件所在的文件系統(tǒng)提供文件系統(tǒng)識(shí)別擴(kuò)展。

?2nd?stage:位于boot基本磁盤分區(qū)當(dāng)中,GRUB的引導(dǎo)程序。

問題:boot分區(qū)和內(nèi)核分區(qū)可以是存在于一個(gè)分區(qū)內(nèi)嗎?

?答:為了方便boot分區(qū)支持更多的分區(qū)類型,如LVMraid等中。boot分區(qū)最好不要和內(nèi)核分區(qū)位于同一分區(qū)當(dāng)中,因?yàn)閮?nèi)核分區(qū)只支持基本分區(qū)類型,若boot非基本分區(qū)類型,則MBRBoot?Loader中的1st?stage不能識(shí)別2nd?stage

第四步:操作系統(tǒng)的安裝

當(dāng)內(nèi)核被加載進(jìn)內(nèi)存以后,內(nèi)核的解壓程序會(huì)將壓縮的內(nèi)核模塊解壓在內(nèi)存中,此時(shí)內(nèi)核便會(huì)啟動(dòng)第一個(gè)進(jìn)程(0號(hào)進(jìn)行)。由于啟動(dòng)改進(jìn)程需要執(zhí)行/sbin/init,此時(shí)內(nèi)核并不一定存在識(shí)別‘/’文件系統(tǒng)的功能。因?yàn)闆]有加載相應(yīng)硬件的驅(qū)動(dòng)程序。為了適應(yīng)不同的硬件平臺(tái),內(nèi)核被設(shè)計(jì)成一個(gè)多模塊程序,在不同的硬件平臺(tái)下加載不同的驅(qū)動(dòng)程序。

那如何得知需要加載哪些驅(qū)動(dòng)程序呢?在Boot?Loader將內(nèi)核加載到內(nèi)存之后,Boot?Loader還會(huì)加載一個(gè)能夠識(shí)別各種硬件驅(qū)動(dòng)的程序,也就是initrdinit?ram?disk)。該程序會(huì)檢測內(nèi)核運(yùn)行的硬件平臺(tái),得知需要加載哪些驅(qū)動(dòng)程序以后,將這些應(yīng)用程序打包加載進(jìn)內(nèi)存當(dāng)中。

此時(shí)由于真實(shí)的根文件系統(tǒng)并沒有掛載,所以initrd被內(nèi)核當(dāng)做根文件系統(tǒng)進(jìn)行訪問,啟動(dòng)各種驅(qū)動(dòng)程序。initrd會(huì)掛載新的根分區(qū),并生成一個(gè)init0號(hào)進(jìn)程)進(jìn)行管理有initrd啟動(dòng)起來的進(jìn)程,同時(shí)將自身識(shí)別的各種硬件文件一并復(fù)制但真實(shí)的根分區(qū)之后就自行退出了。

第五步:初始化工作(/sbin/init)

操作系統(tǒng)安裝完畢之后,會(huì)執(zhí)行一系列初始化動(dòng)作,這些動(dòng)作被定義在/etc/inittab,該文件中定義的init都要完成的任務(wù)有:

1、設(shè)置默認(rèn)運(yùn)行級(jí)別。

??? 運(yùn)行級(jí)別:

0:關(guān)機(jī)

1:單用戶模式,直接以root身份進(jìn)入系統(tǒng),常用不密碼修改。

2:多用戶模式,支持網(wǎng)絡(luò),不支持NFSNetwork?File?System)。

3:多用戶模式,字符界面,支持網(wǎng)絡(luò)和NFS。(常用)

4:預(yù)留模式。

5:多用戶模式,圖形界面。(常用)

6:重啟系統(tǒng)。

? ? 運(yùn)行級(jí)別的相關(guān)命令:

? ?? #?init??[0-6]?:切換運(yùn)行級(jí)別

??? #?runlevel?/?who??-r?:查看當(dāng)前的運(yùn)新級(jí)別。

2、指定用戶初始化腳本(/etc/rc.sysinit)。

3、啟動(dòng)指定級(jí)別下要(啟動(dòng)|關(guān)閉)系統(tǒng)服務(wù)。

??? 查看系統(tǒng)服務(wù)命令:

#?chkconfig??--list

??? 系統(tǒng)如何得知該啟動(dòng)或關(guān)閉哪些服務(wù)呢?在/etc/rc.d/文件夾中存在每個(gè)運(yùn)行級(jí)別對(duì)應(yīng)的文件夾,如rc0.drc3.drc5.d等,每個(gè)文件夾中的文件如下:

[root@anna-laptop?case_and_function]#?ll?/etc/rc.d/rc3.d/ K10saslauthd?????????K87named?????????????S10network???????????S25blk-availability??S90crond K15htcacheclean??????K87restorecond???????S11auditd????????????S25netfs?????????????S95atd K15httpd?????????????K89rdisc?????????????S11portreserve???????S26haldaemon?????????S97rhnsd K15svnserve??????????S02lvm2-monitor??????S12rsyslog???????????S26udev-post?????????S97rhsmcertd K50netconsole????????S08ip6tables?????????S15mdmonitor?????????S55sshd??????????????S99libvirt-guests K75ntpdate???????????S08iptables??????????S22messagebus????????S80postfix???????????S99local

??? 上述的文件的命名都以[K|S][num][server_name]命名:

???? * 以S開頭的是要啟動(dòng)的服務(wù)。

???? * 以K開頭的是要關(guān)閉的服務(wù)。

???? * num表示該服務(wù)啟動(dòng)或者關(guān)閉的次序。

?? 系統(tǒng)啟動(dòng)服務(wù)的時(shí)候就會(huì)讀取在對(duì)應(yīng)運(yùn)行級(jí)別下的該文件,然后以num的大小對(duì)服務(wù)進(jìn)行遍歷,對(duì)于以S開頭的文件執(zhí)行“/etc/rc.d/rc#.d/S#server_name?start”命令。以K開頭的文件執(zhí)行“/etc/rc.d/rc#.d/K#server_name?stop”命令。

?4、定義“Ctrl+Alt+Delete”的操作。

?5、初始化字符終端,啟動(dòng)login服務(wù),并顯示/etc/issue文件中的內(nèi)容。

?6、如果需要啟動(dòng)圖形界面,會(huì)啟動(dòng)圖形終端。


轉(zhuǎn)載于:https://blog.51cto.com/11229885/1754905

總結(jié)

以上是生活随笔為你收集整理的Linux系统开机自启流程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。