CentOS系統(tǒng)的啟動流程:
堅守“ 做人真誠 · 做事靠譜 · 口碑至上 · 高效敬業(yè) ”的價值觀,專業(yè)網(wǎng)站建設(shè)服務(wù)10余年為成都門窗定制小微創(chuàng)業(yè)公司專業(yè)提供成都企業(yè)網(wǎng)站定制營銷網(wǎng)站建設(shè)商城網(wǎng)站建設(shè)手機(jī)網(wǎng)站建設(shè)小程序網(wǎng)站建設(shè)網(wǎng)站改版,從內(nèi)容策劃、視覺設(shè)計、底層架構(gòu)、網(wǎng)頁布局、功能開發(fā)迭代于一體的高端網(wǎng)站建設(shè)服務(wù)。啟動分為:內(nèi)核空間、用戶空間
一、內(nèi)核級別啟動:
1、 POST:Power on system test
加電自檢:ROM:CMOS;BIOS;ROM+RAM
自檢的功能需要一個軟件程序來實(shí)現(xiàn),即BIOS(Basic Input Output System)基本輸入輸出系統(tǒng);它被裝載在一個硬件芯片CMOS之上,加電過程即給CMOS通電,然后啟動其上的BIOS程序,BIOS程序會根據(jù)CMOS上的一些配置信息去讀取硬件設(shè)備信息并檢測其是否存在并能正常運(yùn)行,之后進(jìn)行硬件設(shè)備的初始化。
2、 Bootsequence:(BIOS) 按次序?qū)ふ腋饕龑?dǎo)設(shè)備,第一個有引導(dǎo)程序的設(shè)備即為本次啟動要用到的設(shè)備。
3、 Bootloader:(MBR) 引導(dǎo)加載器
功能:提供一個菜單,允許用戶選擇要啟動的系統(tǒng)或不同的內(nèi)核版本;
用戶選定的內(nèi)核裝至RAM的特定空間中,解壓,展開,而后把系統(tǒng)控制權(quán)移交給內(nèi)核。
所在位置: MBR,Master Boot Record 主引導(dǎo)記錄,一共512bytes
446bytes:bootloader
64bytes:磁盤分區(qū)表DPT:Disk Partition Table
2bytes:55AA,結(jié)束標(biāo)志
GRUB是目前使用最多最廣泛的Linux啟動管理程序,還有一種比較古老的啟動管理程序Lilo
GRUB:
bootloader: 1stage:運(yùn)行Bootloader主程序,這個程序必須被安裝在啟動區(qū),即MBR中。因?yàn)镸BR空間有限,因此在MBR中僅安裝Bootloader的最小主程序,并沒有安裝相關(guān)配置文件。
partition:filesystem driver,1.5stage:在MBR隨后的扇區(qū)中存放,主要用于與stage2所在分區(qū)的文件系統(tǒng)進(jìn)行交互。
partition:/boot/grub,2stage:通過Bootloader加載所有配置文件及相關(guān)的環(huán)境參數(shù)信息,這些配置文件及相關(guān)的環(huán)境參數(shù)都存放于磁盤分區(qū)上的/boot/grub目錄下。
4、 Kernel:加載系統(tǒng)內(nèi)核kernel,執(zhí)行系統(tǒng)初始化信息
自身初始化:
探測可識別到的所有硬件設(shè)備
加載硬件驅(qū)動程序;(有可能會借助于ramdisk加載驅(qū)動)
以只讀方式掛在根文件系統(tǒng)
運(yùn)行用戶空間的第一個應(yīng)用程序:/sbin/init
在此處需要借助一個虛擬文件系統(tǒng):RAMdisk:位于/boot目錄下,以initrd開頭的文件。
Linux內(nèi)核的特性之一:使用緩沖和緩存來加速對磁盤上的文件訪問;
ramdisk --> rootfs:
CentOS 5: initrd 工具程序:mkinitrd
CentOS 6,7: initramfs 工具程序:dracut, mkinitrd
在虛擬根文件系統(tǒng)上加載合適的驅(qū)動程序,加載硬盤等設(shè)備,之后釋放虛擬的根文件系統(tǒng),并以只讀方式掛載磁盤上真正的根文件系統(tǒng),之后就開始正常的啟動過程。
5、 啟動用戶空間的第一個執(zhí)行程序:/sbin/init
init程序的類型
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)初始化流程(內(nèi)核級別):
POST --> BootSequence(BIOS) --> BootLoader(MBR)--> Kernel(ramdisk)--> rootfs(readonly)--> /sbin/init ()
二、用戶空間啟動:
CentOS 5
1、 /sbin/init
2、 設(shè)置默認(rèn)運(yùn)行級別
運(yùn)行級別:為了系統(tǒng)的運(yùn)行或維護(hù)等目的而設(shè)定的機(jī)制;
0-6:7個級別;
0:關(guān)機(jī), shutdown
1:單用戶模式(single user),root用戶,無須認(rèn)證;維護(hù)模式;
2、多用戶模式(multi user),會啟動網(wǎng)絡(luò)功能,但不會啟動NFS;維護(hù)模式;
3、多用戶模式(mutli user),完全功能模式;文本界面;
4、預(yù)留級別:目前無特別使用目的,但習(xí)慣以同3級別功能使用;
5、多用戶模式(multi user), 完全功能模式,圖形界面;
6、重啟,reboot
默認(rèn)級別:3, 5
級別切換:init #
級別查看:who -r runlevel
配置文件:/etc/inittab
每行定義一種action以及與之對應(yīng)的process
id:runlevels:action:process
id:一個任務(wù)的標(biāo)識符;
runlevels:在哪些級別啟動此任務(wù);#,###,也可以為空,表示所有級別;
action:在什么條件下啟動此任務(wù);
process:任務(wù);
action:
wait:等待切換至此任務(wù)所在的級別時執(zhí)行一次;
respawn:一旦此任務(wù)終止,就自動重新啟動之;
initdefault:設(shè)定默認(rèn)運(yùn)行級別;此時,process省略;
sysinit:設(shè)定系統(tǒng)初始化方式,此處一般為指定/etc/rc.d/rc.sysinit腳本;
3、 運(yùn)行系統(tǒng)初始化腳本,完成系統(tǒng)初始化
系統(tǒng)初始化腳本:/etc/rc.d/rc.sysinit
(1) 設(shè)置主機(jī)名;
(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) 清理操作;
4、 關(guān)閉對應(yīng)級別下需要停止的服務(wù),啟動對應(yīng)級別下需要開啟的服務(wù)
啟動或關(guān)閉/etc/rc.d/rc#.d/目錄下的服務(wù)腳本所控制服務(wù);
K*:要停止的服務(wù);K##*,優(yōu)先級,數(shù)字越小,越是優(yōu)先關(guān)閉;依賴的服務(wù)先關(guān)閉,而后關(guān)閉被依賴的;
S*:要啟動的服務(wù);S##*,優(yōu)先級,數(shù)字越小,越是優(yōu)先啟動;被依賴的服務(wù)先啟動,而依賴的服務(wù)后啟動;
5、 啟動終端
CentOS6
init程序:upstart,但依然為/sbin/init,其配置文件:
/etc/init/*.conf, /etc/inittab(僅用于定義默認(rèn)運(yùn)行級別)
注意:*.conf為upstart風(fēng)格的配置文件;
CentOS7
init程序:systemd,配置文件:/usr/lib/systemd/system/*,
/etc/systemd/system/*
全兼容SysV腳本機(jī)制;因此,service命令依然可用;不過,建議使用systemctl命令來控制服務(wù);
# systemctl {start|stop|restart|status} name[.service]
總結(jié)(用戶空間的啟動流程): /sbin/init (/etc/inittab)
設(shè)置默認(rèn)運(yùn)行級別 --> 運(yùn)行系統(tǒng)初始化腳本,完成系統(tǒng)初始化 --> 關(guān)閉對應(yīng)級別下需要停止的服務(wù),啟動對應(yīng)級別下需要開啟的服務(wù)--> 設(shè)置登錄終端 [--> 啟動圖形終端]
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。