久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

怎樣理解Linux開機流程

169次閱讀
沒有評論

共計 2872 個字符,預計需要花費 8 分鐘才能閱讀完成。

這期內(nèi)容當中丸趣 TV 小編將會給大家?guī)碛嘘P怎樣理解 Linux 開機流程,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

概述

Linux 是一種自由和開放源代碼的類 UNIX 操作系統(tǒng)。該操作系統(tǒng)的內(nèi)核由林納斯 middot; 托瓦茲在 1991 年 10 月 5 日首次發(fā)布。在加上用戶空間的應用程序之后,成為 Linux 操作系統(tǒng)。Linux 是自由軟件和開放源代碼軟件發(fā)展中最著名的例子。

下面簡單記錄一下 Linux 系統(tǒng)從開機到能使用的整個過程,以作備忘!

LINUX 啟動流程

先通過一張圖來簡單了解下整個系統(tǒng)啟動的流程,整個過程基本可以分為 POST– BIOS– MBR(GRUB)– Kernel– Init– Runlevel。下面會詳細說明每個過程的作用。

BIOS

BIOS(Basic Input/Output  System),基本輸入輸出系統(tǒng),該系統(tǒng)存儲于主板的 ROM 芯片上,計算機在開機時,會最先讀取該系統(tǒng),然后會有一個加電自檢過程,這個過程其實就是檢查 CPU 和內(nèi)存,計算機最基本的組成單元 (控制器、運算器和存儲器),還會檢查其他硬件,若沒有異常就開始加載 BIOS 程序到內(nèi)存當中。詳細的 BIOS 功能,這邊就不說了,BIOS 主要的一個功能就是存儲了磁盤的啟動順序,BIOS 會按照啟動順序去查找第一個磁盤頭的 MBR 信息,并加載和執(zhí)行 MBR 中的 Bootloader 程序,若第一個磁盤不存在 MBR,則會繼續(xù)查找第二個磁盤 (PS:啟動順序可以在 BIOS 的界面中進行設置),一旦 BootLoader 程序被檢測并加載內(nèi)存中,BIOS 就將控制權交接給了 BootLoader 程序。

MBR

MBR(Master Boot  Record),主引導記錄,MBR 存儲于磁盤的頭部,大小為 512bytes,其中,446bytes 用于存儲 BootLoader 程序,64bytes 用于存儲分區(qū)表信息,最后 2bytes 用于 MBR 的有效性檢查。

GRUB

GRUB(Grand Unified Bootloader),多系統(tǒng)啟動程序,其執(zhí)行過程可分為三個步驟:

Stage1:這個其實就是 MBR,它的主要工作就是查找并加載第二段 Bootloader 程序 (stage2),但系統(tǒng)在沒啟動時,MBR 根本找不到文件系統(tǒng),也就找不到 stage2 所存放的位置,因此,就有了 stage1_5

Stage1_5:該步驟就是為了識別文件系統(tǒng)

Stage2:GRUB 程序會根據(jù) /boot/grub/grub.conf 文件查找 Kernel 的信息,然后開始加載 Kernel 程序,當 Kernel 程序被檢測并在加載到內(nèi)存中,GRUB 就將控制權交接給了 Kernel 程序。

PS:實際上這個步驟 /boot 還沒被掛載,GRUB 直接識別 grub 所在磁盤的文件系統(tǒng),所以實際上應該是 /grub/grub.conf 文件,該配置文件的信息如下:

grub.conf:

#boot=/dev/sda

default=0 #設定默認啟動的 title 的編號,從 0 開始

timeout=5 #等待用戶選擇的超時時間

splashimage=(hd0,0)/boot/grub/splash.xpm.gz #GRUB 的背景圖片

hiddenmenu #隱藏菜單

title CentOS (2.6.18-194.el5PAE) #內(nèi)核標題

root (hd0,0) #內(nèi)核文件所在的設備

kernel /vmlinuz-2.6.18-194.el5PAE ro root=LABEL=/ #內(nèi)核文件路徑以及傳遞給內(nèi)核的參數(shù)

initrd /initrd-2.6.18-194.el5PAE.img #ramdisk 文件路徑

Kernel

Kernel,內(nèi)核,Kernel 是 Linux 系統(tǒng)最主要的程序,實際上,Kernel 的文件很小,只保留了最基本的模塊,并以壓縮的文件形式存儲在硬盤中,當 GRUB 將 Kernel 讀進內(nèi)存,內(nèi)存開始解壓縮內(nèi)核文件。講內(nèi)核啟動,應該先講下 initrd 這個文件,

initrd(Initial RAM  Disk),它在 stage2 這個步驟就被拷貝到了內(nèi)存中,這個文件是在安裝系統(tǒng)時產(chǎn)生的,是一個臨時的根文件系統(tǒng) (rootfs)。因為 Kernel 為了精簡,只保留了最基本的模塊,因此,Kernel 上并沒有各種硬件的驅(qū)動程序,也就無法識 rootfs 所在的設備,故產(chǎn)生了 initrd 這個文件,該文件裝載了必要的驅(qū)動模塊,當 Kernel 啟動時,可以從 initrd 文件中裝載驅(qū)動模塊,直到掛載真正的 rootfs,然后將 initrd 從內(nèi)存中移除。

Kernel 會以只讀方式掛載根文件系統(tǒng),當根文件系統(tǒng)被掛載后,開始裝載第一個進程 (用戶空間的進程),執(zhí)行 /sbin/init,之后就將控制權交接給了 init 程序。

Init

init,初始化,顧名思義,該程序就是進行 OS 初始化操作,實際上是根據(jù) /etc/inittab(定義了系統(tǒng)默認運行級別) 設定的動作進行腳本的執(zhí)行,第一個被執(zhí)行的腳本為 /etc/rc.d/rc.sysinit,這個是真正的 OS 初始化腳本,簡單講下這個腳本的任務 (可以去看看實際腳本,看看都做了什么):

1、激活 udev 和 selinux;

2、根據(jù) /etc/sysctl.conf 文件,來設定內(nèi)核參數(shù);

3、設定系統(tǒng)時鐘;

4、裝載硬盤映射;

5、啟用交換分區(qū);

6、設置主機名;

7、根文件系統(tǒng)檢測,并以讀寫方式重新掛載根文件系統(tǒng);

8、激活 RAID 和 LVM 設備;

9、啟用磁盤配額;

10、根據(jù) /etc/fstab,檢查并掛載其他文件系統(tǒng);

11、清理過期的鎖和 PID 文件

執(zhí)行完后,根據(jù)配置的啟動級別,執(zhí)行對應目錄底下的腳本,最后執(zhí)行 /etc/rc.d/rc.local 這個腳本,至此,系統(tǒng)啟動完成。

Runlevel

runlevel,運行級別,不同的級別會啟動的服務不一樣,init 會根據(jù)定義的級別去執(zhí)行相應目錄下的腳本,Linux 的啟動級別分為以下幾種

0:關機模式

1:單一用戶模式 (直接以管理員身份進入)

2:多用戶模式 (無網(wǎng)絡)

3:多用戶模式 (命令行)

4:保留

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

6:重啟

在不同的運行級別下,/etc/rc.d/rc 這個腳本會分別執(zhí)行不同目錄下的腳本

Run level 0 ndash; /etc/rc.d/rc0.d/

Run level 1 ndash; /etc/rc.d/rc1.d/

Run level 2 ndash; /etc/rc.d/rc2.d/

Run level 3 ndash; /etc/rc.d/rc3.d/

Run level 4 ndash; /etc/rc.d/rc4.d/

Run level 5 ndash; /etc/rc.d/rc5.d/

Run level 6 ndash; /etc/rc.d/rc6.d/

這些目錄下的腳本只有 K * 和 S * 開頭的文件,K 開頭的文件為開機需要執(zhí)行關閉的服務,S 開頭的文件為開機需要執(zhí)行開啟的服務。

上述就是丸趣 TV 小編為大家分享的怎樣理解 Linux 開機流程了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注丸趣 TV 行業(yè)資訊頻道。

正文完
 
丸趣
版權聲明:本站原創(chuàng)文章,由 丸趣 2023-08-25發(fā)表,共計2872字。
轉(zhuǎn)載說明:除特殊說明外本站除技術相關以外文章皆由網(wǎng)絡搜集發(fā)布,轉(zhuǎn)載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 星座| 建昌县| 塔河县| 扎鲁特旗| 山西省| 呼玛县| 鄂州市| 玉屏| 宁陵县| 铅山县| 大洼县| 措美县| 合阳县| 申扎县| 台山市| 西丰县| 清镇市| 朝阳县| 齐齐哈尔市| 云南省| 大英县| 抚顺县| 万州区| 凉山| 简阳市| 广汉市| 兰考县| 孝义市| 沿河| 张家口市| 华池县| 施甸县| 福泉市| 定结县| 日照市| 砀山县| 凤山市| 新昌县| 娄底市| 荥经县| 禹州市|