真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Centos7系統(tǒng)怎么啟動(dòng)?

這篇文章給大家分享的是Centos7系統(tǒng)啟動(dòng)流程,相信大部分人都還沒學(xué)會(huì)這個(gè)技能,為了讓大家學(xué)會(huì),給大家總結(jié)了以下內(nèi)容,話不多說,一起往下看吧。

成都創(chuàng)新互聯(lián)公司服務(wù)項(xiàng)目包括雨花臺(tái)網(wǎng)站建設(shè)、雨花臺(tái)網(wǎng)站制作、雨花臺(tái)網(wǎng)頁制作以及雨花臺(tái)網(wǎng)絡(luò)營(yíng)銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,雨花臺(tái)網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到雨花臺(tái)省份的部分城市,未來相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

熟悉系統(tǒng)啟動(dòng)流程對(duì)于我們學(xué)習(xí)Linux系統(tǒng)是非常有幫助的,雖然基礎(chǔ),但能幫助我們更加理解Linux系統(tǒng)的工作機(jī)制。以下將以CentOS發(fā)行版為例來介紹Linux系統(tǒng)的啟動(dòng)流程,因?yàn)樵贑entOS 5、CentOS 6以及CentOS 7使用的初始化程序init各不相同,雖然CentOS 6和CentOS 7都有向后兼容,但在工作機(jī)制上仍有一些差異,因此以下主要介紹CentOS 5/6系統(tǒng)啟動(dòng)流程。

CentOS的啟動(dòng)流程總體順序如下(以CentOS 6為例):

POST --> Boot Sequence --> bootloader(MBR) --> Kernel --> 加載rootfs --> switchroot --> /sbin/init --> (配置文件:/etc/inittab, /etc/init/*.conf) --> 根據(jù)init配置文件設(shè)置默認(rèn)運(yùn)行級(jí)別 --> 運(yùn)行系統(tǒng)初始化腳本/etc/rc.d/rc.sysinit,完成系統(tǒng)初始化 --> 開啟或關(guān)閉用戶選定的對(duì)應(yīng)運(yùn)行級(jí)別下所對(duì)應(yīng)的服務(wù) --> 啟動(dòng)終端,打印登錄提示符。

注意:紅色部分代表內(nèi)核空間的系統(tǒng)啟動(dòng)流程,紫色部分代表用戶空間的系統(tǒng)啟動(dòng)流程。

接下來逐一詳解:

第一步:POST加電自檢

    主要實(shí)現(xiàn)的功能是檢測(cè)各個(gè)外圍硬件設(shè)備是否存在而且能夠正常運(yùn)行起來,實(shí)現(xiàn)這一自檢功能的是固化在主板上的ROM(主要代表為CMOS)芯片上的BIOS(Basic Input/Output System)程序;例如BIOS會(huì)檢測(cè)CPU、Memory以及I/O設(shè)備是否能夠正常運(yùn)行,如果是個(gè)人計(jì)算機(jī)的話可能還會(huì)檢測(cè)一下顯示器。只要一通電,CPU就會(huì)自動(dòng)去加載ROM芯片上的BIOS程序,是這樣來實(shí)現(xiàn)的。而檢測(cè)完成之后就進(jìn)行硬件設(shè)備的初始化。

第二步:Boot Sequence(選擇啟動(dòng)設(shè)備以加載MBR)

    主要實(shí)現(xiàn)的功能是選擇要啟動(dòng)的硬件設(shè)備,選擇了之后就可以讀取這個(gè)設(shè)備上位于MBR里頭的bootloader了。這一步的實(shí)現(xiàn)是這樣的:根據(jù)BIOS中對(duì)啟動(dòng)順序的設(shè)定,BIOS自己會(huì)依次掃描各個(gè)引導(dǎo)設(shè)備,然后第一個(gè)被掃描到具有引導(dǎo)程序(bootloader)的設(shè)備就被作為要啟動(dòng)的引導(dǎo)設(shè)備。

第三步:加載bootloader(MBR)

    這一步實(shí)現(xiàn)起來的步驟比較多,前面的BIOS通過讀取并執(zhí)行啟動(dòng)設(shè)備的MBR中的bootloader,而bootloader要實(shí)現(xiàn)的功能就是提供一個(gè)菜單給用戶,讓用戶去選擇要啟動(dòng)的系統(tǒng)或不同的內(nèi)核版本,然后把用戶選擇的內(nèi)核版本加載至RAM中的特定空間,接著在RAM中解壓、展開,而后把系統(tǒng)控制權(quán)移交給內(nèi)核。

    grub是bootloader中的一種,就grub來說,為了打破在MBR中只有446Bytes用于存放bootloader這一限制,所以這一步的實(shí)現(xiàn)是這樣的:grub是通過分成三個(gè)階段來實(shí)現(xiàn)加載內(nèi)核這一功能的,這三個(gè)階段分別是:stage1, stage1.5以及stage2。其中:

    stage1:存放于MBR的前446Bytes,用于加載stage1.5階段,目的是為了識(shí)別并驅(qū)動(dòng)stage2(或者/boot)所在分區(qū)的文件系統(tǒng);

    stage1.5:存放于MBR之后的扇區(qū),加載stage2所在分區(qū)的文件系統(tǒng)驅(qū)動(dòng),讓stage1中的bootloader能識(shí)別stage2所在分區(qū)的文件系統(tǒng);

    stage2:存放于磁盤分區(qū)之上,具體存放于/boot/grub目錄之下,主要用于加載內(nèi)核文件(vmlinuz-VERSION-RELEASE)以及ramdisk這個(gè)臨時(shí)根文件系統(tǒng)(initrd-VERSION-RELEASE.img或initramfs-VERSION-RELEASE.img)。

    概述:假如要啟動(dòng)的是硬盤設(shè)備,首先我們的硬件平臺(tái)主板BIOS必須能夠識(shí)別硬盤,然后BIOS才能加載硬盤中的bootloader,而bootloader自身加載后就能夠直接識(shí)別當(dāng)前主機(jī)上的硬盤設(shè)備了;不過,能夠識(shí)別硬盤設(shè)備不代表能夠識(shí)別硬盤設(shè)備中的文件系統(tǒng),因?yàn)槲募到y(tǒng)是額外附加的一層軟件組織的文件結(jié)構(gòu),所以要對(duì)接一種文件系統(tǒng),就必須要有對(duì)應(yīng)的能夠識(shí)別和理解這種文件系統(tǒng)的驅(qū)動(dòng),這種驅(qū)動(dòng)就稱為文件系統(tǒng)驅(qū)動(dòng)。而stage1.5就是向grub提供文件系統(tǒng)驅(qū)動(dòng)的,這樣stage1就能訪問stage2及內(nèi)核所在的分區(qū)(/boot)了。

注意:kernel和initramfs的文件路徑均以grub的"根"作為起始目錄,且存放于stage2所在分區(qū)上;

    需要注意的是,stage2、內(nèi)核以及ramdisk文件通常放置于一個(gè)基本磁盤分區(qū)之上,因?yàn)間rub無法驅(qū)動(dòng)lvm、高級(jí)軟raid等復(fù)雜邏輯設(shè)備,除非提供一個(gè)復(fù)雜的驅(qū)動(dòng)接口,否則如果stage2及內(nèi)核等文件都存放在lvm等復(fù)雜邏輯設(shè)備上將無法被stage1所識(shí)別,更別說加載了!

第四步:Kernel自身初始化

    Kerenl在得到系統(tǒng)控制權(quán)之后,首先要進(jìn)行自身初始化,而初始化的主要作用是:

    (1)探測(cè)可識(shí)別到的所有硬件設(shè)備;

        bootloader將系統(tǒng)控制權(quán)移交給內(nèi)核就好比如后朝推翻前朝,統(tǒng)治者(內(nèi)核)當(dāng)權(quán)之后,首先要檢查一下有哪些是前朝所留下的,例如有哪些領(lǐng)土、人力、財(cái)力、兵力可用等等。

    (2)加載硬件驅(qū)動(dòng)程序,即加載真正的根文件系統(tǒng)所在設(shè)備的驅(qū)動(dòng)程序(有可能會(huì)借助于ramdisk加載驅(qū)動(dòng));

        這就像統(tǒng)治者(內(nèi)核)在得知底下存在的人力、財(cái)力之后,開始將可以“為我所用”的人力納入麾下,聽自己使喚,而不聽使喚的殺掉;

    (3)以只讀方式掛載根文件系統(tǒng);

        如果有借助于ramdisk這個(gè)臨時(shí)文件系統(tǒng)(虛根),則在這一步之后會(huì)執(zhí)行根切換;否則不執(zhí)行根切換。

    (4)運(yùn)行用戶空間的第一個(gè)應(yīng)用程序:/sbin/init.

        到這里內(nèi)核空間的啟動(dòng)流程就結(jié)束了,而接下來是用戶空間完成后續(xù)的系統(tǒng)啟動(dòng)流程。

注意:

    ramdisk和內(nèi)核是由bootloader一同加載到內(nèi)存當(dāng)中的,ramdisk是用于實(shí)現(xiàn)系統(tǒng)初始化的、基于內(nèi)存的磁盤設(shè)備,即加載至內(nèi)存(的某一段空間)后把內(nèi)存當(dāng)磁盤使用,并在內(nèi)存中作為臨時(shí)根文件系統(tǒng)提供給內(nèi)核使用,幫助內(nèi)核掛載真正的根文件系統(tǒng)。而之所以能夠幫助內(nèi)核掛載根文件系統(tǒng)是因?yàn)樵趓amdisk這個(gè)臨時(shí)文件系統(tǒng)的/lib/modules目錄下有真正的根文件系統(tǒng)所在設(shè)備的驅(qū)動(dòng)程序;除此之外,這個(gè)臨時(shí)文件系統(tǒng)也遵循FHS,例如有這些固定目錄結(jié)構(gòu):/bin, /sbin, /lib, /lib64, /etc, /mnt, /media, ...

    因?yàn)長(zhǎng)inux內(nèi)核有一個(gè)特性就是通過使用緩沖/緩存來達(dá)到加速對(duì)磁盤上文件的訪問的目的,而ramdisk是加載到內(nèi)存并模擬成磁盤來使用的,所以Linux就會(huì)為內(nèi)存中的“磁盤”再使用一層緩沖/緩存,但是我們的ramdisk本來就是內(nèi)存,它只不過被當(dāng)成硬盤來使用罷了,這就造成雙緩沖/緩存了,而且不會(huì)起到提速效果,甚至影響了訪問性能;CentOS 5系列以及之前版本的ramdisk文件為initrd-VERSION-RELEASE.img,就會(huì)出現(xiàn)上述所說到的問題;而為了解決一問題,CentOS 6/7系列版本就將其改為initramfs-VERSION-RELEASE.img,使用文件系統(tǒng)的方式就可以避免雙緩沖/緩存了,我們可以說這是一種提速機(jī)制。

    需要注意的是,系統(tǒng)發(fā)行商為了適應(yīng)于各個(gè)不同的硬件接口,因此將各個(gè)不同的硬件接口的驅(qū)動(dòng)組裝打包起來,例如在用戶第一次使用光盤安裝完系統(tǒng)之后,會(huì)動(dòng)態(tài)探測(cè)當(dāng)前主機(jī)上的硬件設(shè)備并調(diào)用與之對(duì)應(yīng)的設(shè)備驅(qū)動(dòng)再做成ramdisk文件的。所以,ramdisk文件并非必須的,如果只是為了將Linux安裝于特定硬件平臺(tái)上,就可以直接把對(duì)應(yīng)的驅(qū)動(dòng)編譯進(jìn)內(nèi)核即可,而不需要去使用ramdisk文件了。

第五步:init管理用戶空間服務(wù)進(jìn)程

    init可以理解成是內(nèi)核派來管理用戶空間的使者,就好像天使代表上帝來訪問人間一樣。init這個(gè)初始化程序會(huì)根據(jù)其配置文件執(zhí)行一系列操作。雖然CentOS 5、CentOS 6以及CentOS 7的init配置 文件各不相同,但總體的啟動(dòng)流程是不變的。

    這一步的流程是:/sbin/init --> 根據(jù)init配置文件設(shè)置默認(rèn)運(yùn)行級(jí)別 --> 運(yùn)行系統(tǒng)初始化腳本/etc/rc.d/rc.sysinit,完成系統(tǒng)初始化 --> 關(guān)閉或啟動(dòng)用戶選定的默認(rèn)運(yùn)行級(jí)別所對(duì)應(yīng)的服務(wù) --> 啟動(dòng)終端,打印登錄提示符

(1)根據(jù)init配置文件設(shè)置默認(rèn)運(yùn)行級(jí)別

    對(duì)于CentOS 5來說,初始化程序init是SysV init,其配置文件為:/etc/inittab;

    對(duì)于CentOS 6來說,初始化程序init是upstart,其配置文件為:/etc/inittab, /etc/init/*.conf,也就是upstart將配置文件拆分成多個(gè),在/etc/init/目錄下以conf結(jié)尾的都是upstart風(fēng)格的配置文件,而/etc/inittab僅用于設(shè)置默認(rèn)運(yùn)行級(jí)別;

    對(duì)于CentOS 7來說,初始化程序init是systemd,其配置文件為:/usr/lib/system/systemd/*, /etc/systemd/system/*;

    看完上述內(nèi)容,你們掌握Centos7系統(tǒng)啟動(dòng)的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!


新聞名稱:Centos7系統(tǒng)怎么啟動(dòng)?
文章位置:http://weahome.cn/article/ggpopj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部