POST --> Boot Sequence(BIOS) --> Boot Loader (MBR) --> Kernel(ramdisk) --> rootfs --> switchroot --> /sbin/init
創(chuàng)新互聯(lián)是一家專業(yè)提供鐵山企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站設(shè)計、成都網(wǎng)站設(shè)計、H5頁面制作、小程序制作等業(yè)務(wù)。10年已為鐵山眾多企業(yè)、政府機構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站制作公司優(yōu)惠進行中。/sbin/init [/etc/inittab或/etc/init/*.conf]--> /etc/rc.d/rc.sysinit --> /etc/rc.d/rc0-9.d --> /etc/rc.local
設(shè)置默認運行級別 --> 運行系統(tǒng)初始化腳本,完成系統(tǒng)初始化 --> 關(guān)閉對應(yīng)級別下需要停止的服務(wù),啟動對應(yīng)級別下需要開啟的服務(wù) --> 設(shè)置登錄終端 --> 啟動圖形終端
一:post加電自檢,將BIOS映射進CPU可以查找的線性地址空間,使得cpu可以讀取主板上rom設(shè)備中的BIOS程序,通過rom加載內(nèi)存(ram)并檢查當(dāng)前設(shè)備硬件是否存在
二:BootSequence按次序查找各引導(dǎo)設(shè)備,根據(jù)BIOS中設(shè)置的啟動次序去加載對應(yīng)設(shè)備的MBR
三:bootloader根據(jù)MBR的分區(qū)表,查找操作系統(tǒng)所在的分區(qū),并通過grub加載操作系統(tǒng)的內(nèi)核,此時將內(nèi)核裝載入內(nèi)存,在內(nèi)存中解壓縮
四:kernel進行自身初始化,探測可識別的硬件設(shè)備,并借助ramdisk加載boot目錄下的initrd或initramfs文件中裝載驅(qū)動模塊(ramdisk中包含著initrd或initramfs)
五:以只讀方式掛載根文件系統(tǒng)
六:運行/etc/inittab中的程序設(shè)定默認運行級別
七:運行/etc/rc.d/rc.sysinit系統(tǒng)初始化腳本
八:運行/etc/rc.d/rc0-9.d 關(guān)閉或啟動對應(yīng)級別下的服務(wù)
九:運行/etc/rc.local系統(tǒng)初始化完成以后,程序自動加載的最后一個腳本
一:POST加電自檢將BIOS映射進CPU可以查找的線性地址空間,使得cpu可以讀取主板上rom設(shè)備中的程序BIOS,通過rom加載內(nèi)存(ram)并檢查當(dāng)前設(shè)備硬件是否存在
二:BootSequence按次序查找各引導(dǎo)設(shè)備,根據(jù)BIOS中設(shè)置的啟動次序去加載對應(yīng)設(shè)備的MBR
MBR:Master Boot Record (512bytes)
446bytes:存放bootloader
64bytes:存放分區(qū)表
2byte:判斷MBR是否有效的標識55AA為有效
三: bootloader:引導(dǎo)加載器,程序
提供一個菜單,允許用戶選擇要啟動的系統(tǒng)或不同的內(nèi)核版本; 把用戶選定的內(nèi)核裝載到RAM中的特定空間中,解壓、展開,而后把系統(tǒng)控制權(quán)移交給內(nèi)核;
(1)Windows上引導(dǎo)加載器:ntloader
(2)Linux上引導(dǎo)加載器:
LILO:古老的linux加載器,1024柱面之后無法加載,繼而被grub所取代,現(xiàn)在多用于安卓手機啟動
grub:提供一個菜單,允許用戶選擇要啟動的系統(tǒng)或不同的內(nèi)核版本, 把用戶選定的內(nèi)核裝載到RAM中的特定空間中,解壓、展開,而后把系統(tǒng)控制權(quán)移交給內(nèi)核;
stage1:grub第一階段存在MBR中,用于引導(dǎo)stage2
stage1_5:在MBR之后的扇區(qū)中,識別常見的不同的文件系統(tǒng)的
stage2:位于/boot/grub目錄下,配置文件是/etc/grub.conf,功用:向上看
四:內(nèi)核初始化:
當(dāng)stage2被載入系統(tǒng)執(zhí)行時,它首先會去解析grub的配置文件/boot/grub/grub.conf,然后加載內(nèi)核鏡像到內(nèi)存中,并將控制權(quán)轉(zhuǎn)交給內(nèi)核,內(nèi)核會立即初始化系統(tǒng)中各設(shè)備并做相關(guān)的配置工作,其中包括CPU、I/O、存儲設(shè)備等,并且以讀寫的方式掛載根文件系統(tǒng),此時涉及到一個"先有雞還是先有蛋的問題"
要想訪問根文件系統(tǒng)(rootfs),首先就得加載根文件系統(tǒng)中的驅(qū)動程序,而加載驅(qū)動程序需要先掛載根文件系統(tǒng)。為了解決這個問題:Linux設(shè)備驅(qū)動程序的加載,有一部分驅(qū)動程序直接被編譯進內(nèi)核鏡像中,另一部分則是以模塊的形式存放在initrd(ramdisk)中。內(nèi)核啟動被分成了兩個階段,第一階段先執(zhí)行initrd文件系統(tǒng)中的init,完成加載驅(qū)動模塊等任務(wù),第二階段才會執(zhí)行真正的根文件系統(tǒng)中的/sbin/init進程
五:/etc/inittab:設(shè)定默認運行級別
init程序在不同CentOS版本上的類型:
CentOS-5 SysV init 配置文件:/etc/inittab
CentOS-6 Upstart 配置文件:/etc/inittab /etc/init/*.conf
CentOS-7 Systemd 配置文件:/usr/lib/systemd/system, /etc/systemd/system/
六:運行系統(tǒng)初始化腳本,完成系統(tǒng)初始化
運行/etc/rc.d/rc.sysinit
(1) 設(shè)置主機名;
(2) 設(shè)置歡迎信息;
(3) 激活udev和selinux;
(4) 掛載/etc/fstab文件中定義的所有文件系統(tǒng);
(5) 檢測根文件系統(tǒng),并以讀寫方式重新掛載根文件系統(tǒng);
(6) 設(shè)置系統(tǒng)時鐘;
(7) 根據(jù)/etc/sysctl.conf文件來設(shè)置內(nèi)核參數(shù);
(8) 激活lvm及軟raid設(shè)備;
(9) 激活swap設(shè)備;
(10) 加載額外設(shè)備的驅(qū)動程序;
(11) 清理操作;
七:關(guān)閉或啟動對應(yīng)級別下的服務(wù)/etc/rc.d/rc#.d
0-6:共7個級別;
0:關(guān)機, shutdown
1:單用戶模式(single user),root用戶,無須認證;維護模式;
2:多用戶模式(multi user),會啟動網(wǎng)絡(luò)功能,但不會啟動NFS;維護模式;
3:多用戶模式(mutli user),完全功能模式;文本界面;
4:預(yù)留級別:目前無特別使用目的,但習(xí)慣以同3級別功能使用;
5:多用戶模式(multi user), 完全功能模式,圖形界面;
6:重啟,reboot
1) 默認級別:3, 5
2) 級別切換:init #
3) 級別查看命令:who -r ; runlevel
八:運行/etc/rc.local系統(tǒng)初始化完成以后,程序自動加載的腳本
系統(tǒng)啟動最后執(zhí)行的一個腳本
九:啟動終端
tty1:2345:respawn:/usr/sbin/mingetty tty1
... ...
tty6:2345:respawn:/usr/sbin/mingetty tty6
(1)mingetty會調(diào)用login程序;
(2)打開虛擬終端的程序除了mingetty之外,還有諸如getty等;
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。