Linux啟動流程

這里主要分析使用BIOS的MBR分區(qū)的啟動流程
啟動流程概覽:

  • 加載BIOS的硬件信息,進行自檢查你雌,獲取第一個啟動設(shè)備(如:硬盤)
  • 讀取第一個啟動設(shè)備MBR的boot loader(grub)的啟動信息
  • 加載核心操作系統(tǒng)的核心信息故爵,核心開始解壓縮吁伺,并嘗試驅(qū)動所有的硬件設(shè)備涛目。
  • 核心執(zhí)行init程序,并獲取默認的運行信息(runlevel)
  • init程序執(zhí)行/etc/rc.d/rc.sysinit文件愧捕,準備操作系統(tǒng)環(huán)境(如網(wǎng)絡(luò),時區(qū)等信息)
  • 啟動核心的外掛模塊
  • init執(zhí)行獲取到的runlevel對應(yīng)的服務(wù)腳本
  • init執(zhí)行/etc/rc.d/rc.local
  • 執(zhí)行/bin/login程序申钩,等待用戶登錄
  • 登錄之后開始以Shell控制主機

1次绘、BIOS

BIOS是英文"Basic Input Output System"的縮寫,直譯過來后中文名稱就是"基本輸入輸出系統(tǒng)"。
其實邮偎,它是一組固化到計算機內(nèi)主板上一個ROM芯片上的程序管跺,它保存著計算機最重要的基本輸入輸出的程序、開機后自檢程序和系統(tǒng)自啟動程序禾进,它可從CMOS中讀寫系統(tǒng)設(shè)置的具體信息豁跑。 ——百度百科

POST:Power-On-Self-Test,加電自檢泻云,是BIOS功能的一個主要部分贩绕。負責完成對CPU、主板壶愤、內(nèi)存淑倾、硬盤子系統(tǒng)、顯示子系統(tǒng)征椒、 串并行接口娇哆、鍵盤、 CD-ROM光驅(qū)等硬件情況的檢測勃救。

這部分主要是硬件的啟動和檢測碍讨,就不細究了。

最關(guān)鍵的一部分是蒙秒,BIOS要獲取到第一個啟動設(shè)備勃黍。

2、引導程序和grub

當BIOS完成自檢并指定啟動設(shè)備后晕讲,就會將對系統(tǒng)的控制權(quán)過渡到引導程序(Boot Loader)覆获。

Linux用的引導程序用的是grub。

grub通常分為兩個階段瓢省,分別是第1階段和第2階段弄息。

  • 1階段
    包含在MBR(第一個啟動設(shè)備的0扇區(qū))中。由于受MBR的大小限制勤婚,第1階段所做的幾乎只是裝載GRUB的下一階段(存放在硬盤的其它位置)摹量。- - - 1.5階段
    包含在MBR后面的30千字節(jié)中,一般使用的文件名是/boot/initrd馒胆,它能夠通過Boot Loader加載到內(nèi)存當中缨称,然后在內(nèi)存中仿真成一個虛擬的一個根目錄。
  • 2階段
    通過1.5階段提供的虛擬文件系統(tǒng)祝迂,kernel就能夠加載需要的驅(qū)動程序睦尽,最終釋放虛擬文件系統(tǒng),并掛載實際的根目錄文件系統(tǒng)液兽。

3骂删、runlevel

當內(nèi)核加載完整后掌动,系統(tǒng)就會執(zhí)行第一個進程init。

init進程首先通過/etc/inittab獲取到系統(tǒng)默認的runlevel宁玫。

  • runlevel等級

    • 0 -halt 關(guān)機
    • 1 -single user mode 單用戶模式
    • 2 -multi-user,without NFS 沒有NFS的多用戶模式
    • 3 -Full Multi-user mode 多用戶模式
    • 4 -unsed 保留
    • 5 -X11 桌面模式
    • 6 -reboot 重啟
  • /etc/inittab文件在Cenos6后基本上只保留了定義默認runlevel這個功能粗恢。其格式如下:

[root@CentOS6 boot]#vim /etc/inittab
# Default runlevel. The runlevels used are:
#   0 - halt (Do NOT set initdefault to this)
#   1 - Single user mode
#   2 - Multiuser, without NFS (The same as 3, if you do not have networking)
#   3 - Full multiuser mode
#   4 - unused
#   5 - X11
#   6 - reboot (Do NOT set initdefault to this)
# 設(shè)置默認runlevel為5模式
id:5:initdefault:

4、執(zhí)行/etc/rc.d/rc.sysinit

/etc/rc.d/rc.sysinit腳本執(zhí)行一系列的命令欧瘪,去配置整個系統(tǒng)環(huán)境:
1眷射、網(wǎng)絡(luò)環(huán)境、主機名
2佛掖、掛載內(nèi)存妖碉、usb設(shè)備等等
3、設(shè)置終端字體
...

5芥被、執(zhí)行/etc/rc.d/rc$runlevel.d

根據(jù)之前獲取的runlevel欧宜,執(zhí)行對應(yīng)的運行級別的服務(wù)

init.d  rc  rc0.d  rc1.d  rc2.d  rc3.d  rc4.d  rc5.d  rc6.d  rc.local  rc.sysinit
[root@CentOS6 rc.d]#[root@CentOS6 boot]#cd /etc/rc.d/
-bash: [root@CentOS6: command not found
[root@CentOS6 rc.d]#[root@CentOS6 rc.d]#ls
-bash: [root@CentOS6: command not found
[root@CentOS6 rc.d]#init.d  rc  rc0.d  rc1.d  rc2.d  rc3.d  rc4.d  rc5.d  rc6.d  rc.local  rc.sysinit^C
[root@CentOS6 rc.d]#ls rc3.d
K01smartd          K60nfs             K88sssd          S10network      S24rpcgssd           S80postfix
K02oddjobd         K61nfs-rdma        K89netconsole    S11auditd       S25blk-availability  S82abrt-ccpp
K05wdaemon         K69rpcsvcgssd      K89rdisc         S11portreserve  S25cups              S82abrtd
K10psacct          K73winbind         K92pppoe-server  S12rsyslog      S25netfs             S90crond
K10saslauthd       K74ntpd            K95firstboot     S13cpuspeed     S26acpid             S95atd
K15htcacheclean    K75ntpdate         K95rdma          S13irqbalance   S26haldaemon         S99certmonger
K15httpd           K75quota_nld       K99rngd          S13rpcbind      S26udev-post         S99local
K30spice-vdagentd  K76ypbind          S01sysstat       S15mdmonitor    S27pcscd
K36mysqld          K84NetworkManager  S02lvm2-monitor  S22messagebus   S28autofs
K50dnsmasq         K84wpa_supplicant  S08ip6tables     S24nfslock      S50bluetooth
K50kdump           K87restorecond     S08iptables      S24openct       S55sshd

例如/etc/rc.d/rc3.d目錄下有很多K或者S開頭的文件,這些文件會被一一執(zhí)行拴魄。其中K表示殺死對應(yīng)服務(wù)冗茸,S表示啟動對應(yīng)復位。后面的數(shù)字字符串表示執(zhí)行順序匹中。先執(zhí)行K夏漱,后執(zhí)行S。

6顶捷、執(zhí)行/bin/login程序挂绰,等待用戶登錄

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市服赎,隨后出現(xiàn)的幾起案子葵蒂,更是在濱河造成了極大的恐慌,老刑警劉巖专肪,帶你破解...
    沈念sama閱讀 211,194評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件刹勃,死亡現(xiàn)場離奇詭異,居然都是意外死亡嚎尤,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評論 2 385
  • 文/潘曉璐 我一進店門伍宦,熙熙樓的掌柜王于貴愁眉苦臉地迎上來芽死,“玉大人,你說我怎么就攤上這事次洼」毓螅” “怎么了?”我有些...
    開封第一講書人閱讀 156,780評論 0 346
  • 文/不壞的土叔 我叫張陵卖毁,是天一觀的道長揖曾。 經(jīng)常有香客問我落萎,道長,這世上最難降的妖魔是什么炭剪? 我笑而不...
    開封第一講書人閱讀 56,388評論 1 283
  • 正文 為了忘掉前任练链,我火速辦了婚禮,結(jié)果婚禮上奴拦,老公的妹妹穿的比我還像新娘媒鼓。我一直安慰自己,他們只是感情好错妖,可當我...
    茶點故事閱讀 65,430評論 5 384
  • 文/花漫 我一把揭開白布绿鸣。 她就那樣靜靜地躺著,像睡著了一般暂氯。 火紅的嫁衣襯著肌膚如雪潮模。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,764評論 1 290
  • 那天痴施,我揣著相機與錄音再登,去河邊找鬼。 笑死晾剖,一個胖子當著我的面吹牛锉矢,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播齿尽,決...
    沈念sama閱讀 38,907評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼沽损,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了循头?” 一聲冷哼從身側(cè)響起绵估,我...
    開封第一講書人閱讀 37,679評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎卡骂,沒想到半個月后国裳,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,122評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡全跨,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,459評論 2 325
  • 正文 我和宋清朗相戀三年缝左,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片浓若。...
    茶點故事閱讀 38,605評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡渺杉,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出挪钓,到底是詐尸還是另有隱情是越,我是刑警寧澤,帶...
    沈念sama閱讀 34,270評論 4 329
  • 正文 年R本政府宣布碌上,位于F島的核電站倚评,受9級特大地震影響浦徊,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜天梧,卻給世界環(huán)境...
    茶點故事閱讀 39,867評論 3 312
  • 文/蒙蒙 一盔性、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧腿倚,春花似錦纯出、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至硬贯,卻和暖如春焕襟,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背饭豹。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評論 1 265
  • 我被黑心中介騙來泰國打工鸵赖, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人拄衰。 一個月前我還...
    沈念sama閱讀 46,297評論 2 360
  • 正文 我出身青樓它褪,卻偏偏與公主長得像,于是被迫代替她去往敵國和親翘悉。 傳聞我的和親對象是個殘疾皇子茫打,可洞房花燭夜當晚...
    茶點故事閱讀 43,472評論 2 348

推薦閱讀更多精彩內(nèi)容

  • 系統(tǒng)啟動是一項非常復雜的程序制市,因為內(nèi)核得先檢測硬件并加載適當?shù)尿?qū)動程序后抬旺,接下來則必須要調(diào)用程序來準備好系統(tǒng)運行的...
    Zhang21閱讀 11,504評論 3 10
  • 一:簡述 Linux-Ceentos系統(tǒng)開機啟動流程簡述如下,后續(xù)小節(jié)會對重要節(jié)點做詳細描述 1:加電自檢 --...
    mapipi閱讀 371評論 0 1
  • 經(jīng)過對Linux系統(tǒng)有了一定了解和熟悉后祥楣,想對其更深層次的東西做進一步探究开财。這當中就包括系統(tǒng)的啟動流程、文件系統(tǒng)的...
    大福技術(shù)閱讀 1,760評論 0 13
  • Linux的啟動流程如下: 1.計算機加載BISO荣堰,它其中一項很重要的功能是對自身的健康進行檢查床未,只有在硬件沒有問...
    瘋狂的老鳥閱讀 170評論 0 0
  • 我們都知道,由于linux的穩(wěn)定性振坚,通常被作為服務(wù)器系統(tǒng),要想稱為一個PHP的高手斋扰,linux是必修之課渡八。那么li...
    李勁輝閱讀 99評論 0 0