自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

詳解Linux開(kāi)機(jī)流程:BIOS->MBR->GRUB->Kernel

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

[[356023]]

概述

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

下面簡(jiǎn)單記錄一下Linux系統(tǒng)從開(kāi)機(jī)到能使用的整個(gè)過(guò)程,以作備忘!

LINUX啟動(dòng)流程

先通過(guò)一張圖來(lái)簡(jiǎn)單了解下整個(gè)系統(tǒng)啟動(dòng)的流程,整個(gè)過(guò)程基本可以分為POST-->BIOS-->MBR(GRUB)-->Kernel-->Init-->Runlevel。下面會(huì)詳細(xì)說(shuō)明每個(gè)過(guò)程的作用。

 

詳解Linux開(kāi)機(jī)流程:BIOS->MBR->GRUB->Kernel->Init->Runlevel

BIOS

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

MBR

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

 

詳解Linux開(kāi)機(jī)流程:BIOS->MBR->GRUB->Kernel->Init->Runlevel

GRUB

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

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

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

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

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

grub.conf:

#boot=/dev/sda

default=0 #設(shè)定默認(rèn)啟動(dòng)的title的編號(hào),從0開(kāi)始

timeout=5 #等待用戶選擇的超時(shí)時(shí)間

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

hiddenmenu #隱藏菜單

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

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

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)最主要的程序,實(shí)際上,Kernel的文件很小,只保留了最基本的模塊,并以壓縮的文件形式存儲(chǔ)在硬盤中,當(dāng)GRUB將Kernel讀進(jìn)內(nèi)存,內(nèi)存開(kāi)始解壓縮內(nèi)核文件。講內(nèi)核啟動(dòng),應(yīng)該先講下initrd這個(gè)文件,

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

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

Init

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

1、激活udev和selinux;

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

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

4、裝載硬盤映射;

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

6、設(shè)置主機(jī)名;

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

8、激活RAID和LVM設(shè)備;

9、啟用磁盤配額;

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

11、清理過(guò)期的鎖和PID文件

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

Runlevel

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

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

1:?jiǎn)我挥脩裟J?直接以管理員身份進(jìn)入)

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

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

4:保留

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

6:重啟

在不同的運(yùn)行級(jí)別下,/etc/rc.d/rc這個(gè)腳本會(huì)分別執(zhí)行不同目錄下的腳本

  • Run level 0 – /etc/rc.d/rc0.d/
  • Run level 1 – /etc/rc.d/rc1.d/
  • Run level 2 – /etc/rc.d/rc2.d/
  • Run level 3 – /etc/rc.d/rc3.d/
  • Run level 4 – /etc/rc.d/rc4.d/
  • Run level 5 – /etc/rc.d/rc5.d/
  • Run level 6 – /etc/rc.d/rc6.d/

這些目錄下的腳本只有K*和S*開(kāi)頭的文件,K開(kāi)頭的文件為開(kāi)機(jī)需要執(zhí)行關(guān)閉的服務(wù),S開(kāi)頭的文件為開(kāi)機(jī)需要執(zhí)行開(kāi)啟的服務(wù)。

 

詳解Linux開(kāi)機(jī)流程:BIOS->MBR->GRUB->Kernel->Init->Runlevel

 

 

責(zé)任編輯:武曉燕 來(lái)源: 今日頭條
相關(guān)推薦

2010-06-13 16:23:28

Linux Grub命

2009-08-28 10:45:57

2010-06-17 10:41:24

開(kāi)機(jī)進(jìn)入Grub

2016-11-02 08:54:37

grubrescue開(kāi)機(jī)

2010-05-26 09:21:12

啟動(dòng)SVN

2010-06-13 15:58:20

GRUB啟動(dòng)命令

2010-06-17 10:32:13

開(kāi)機(jī)顯示Grub

2010-01-26 09:07:50

2010-01-19 09:23:50

2010-06-13 16:32:19

Linux Grub命

2009-04-28 18:19:25

2017-08-24 11:54:43

Linux日志定時(shí)輪循機(jī)制

2010-01-06 14:56:07

Linux操作系統(tǒng)

2009-12-09 11:41:51

Linux Kerne

2013-11-14 11:38:20

Linux Kerne編譯

2011-06-28 13:38:15

Arm linux QT

2009-08-21 15:40:26

Linux KerneLinux開(kāi)發(fā)加速

2010-06-17 16:23:32

Grub2 配置

2010-06-13 12:59:15

Ubuntu xp G

2023-05-18 09:01:11

MBRGPT分區(qū)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)