centos 系統的啟動流程:
簡介:
(核心級別)
(使用者空間的啟動流程): /sbin/init (讀取/etc/inittab) 【centos5,6,7在此略有區別】
設定預設執行級別(1) --> 執行系統初始化指令碼,完成系統初始化(2) -->關閉對應級別下需要停止的服務,啟動對應級別下需要開啟的服務(3)--> 設定登入終端(4) [--> 啟**形終端](5並非必須的)
細說核心級別的系統啟動:
引導載入器的功能:提供乙個選單,允許使用者選擇要啟動的系統或不同的核心版本; 把使用者選定的核心裝載到ram中的特定空間中,解壓、展開,而後把系統控制權移交給核心;
附加介紹mbr:master boot record(主引導記錄)
注:核心init啟動之後,後面的任務就交給init,核心就不管了(除了有特權操作)
init程式的型別:
注:centos啟動,核心執行使用者空間的第乙個應用程式init,之後後面的一切任務都交由使用者空間的應用來管理了。
linux核心的特性之一:使用緩衝和快取來加速對磁碟上的檔案訪問;
系統初始化流程(核心級別):
post -讀取-> bootsequence(在bios中) --> bootloader(在mbr中)--> kernel(借助ramdisk完成根檔案系統的載入)--> rootfs(readonly)--> /sbin/init (使用者空間的第乙個程式)
注:bootloader**量很小,為了簡化簡潔期間2,bootloader本身無法驅動邏輯卷,那麼很顯然他就沒辦法訪問邏輯卷上的檔案,因此我們把核心檔案放在邏輯卷上bootloader是無法載入的,所以,此時的kernal只能放在基本磁碟上
上面為centos核心級別的啟動
下面介紹/sbin/init:在各系統上有所差異,所以分別介紹
也即使用者空間的系統啟動流程
centos 5: sysv init
配置檔案:/etc/inittab
示例:/etc/rc.d/rc 3
意味著去啟動或關閉 /etc/rc.d/rc3.d目錄下的服務指令碼所控**務,解釋如下:
# /etc/init.d/srv_script
# service srv_script
eg:[root@bucktan init.d]# /etc/init.d/network restart
shutting down inte***ce eth0: [ ok ]
shutting down loopback inte***ce: [ ok ]
bringing up loopback inte***ce: [ ok ]
bringing up inte***ce eth0: determining if ip address 172.18.26.6 is
chkconfig命令:管控/etc/init.d/每個服務指令碼在各級別下的啟動或關閉狀態;
注意:正常級別下,最後啟動的乙個服務s99local沒有鏈結至/etc/init.d下的某指令碼,而是鏈結至了/etc/rc.d/rc.local (/etc/rc.local)指令碼;因此,不便或不需寫為服務指令碼的程式期望能開機自動執行時,直接放置於此指令碼檔案中即可。
其他示例: tty1:2345:respawn:/usr/sbin/mingetty tty1
系統初始化指令碼:/etc/rc.d/rc.sysinit是做什麼,它的功能
(10) 載入額外裝置的驅動程式;
總結(使用者空間的啟動流程): /sbin/init (讀取/etc/inittab)
設定預設執行級別(1) --> 執行系統初始化指令碼,完成系統初始化(2) -->關閉對應級別下需要停止的服務,啟動對應級別下需要開啟的服務(3)--> 設定登入終端(4) [--> 啟**形終端](5並非必須的)
注:centos6,7與5的區別在下面介紹
centos 6:
init程式:upstart,但依然為/sbin/init,其配置檔案:
centos 7:
init程式:systemd,配置檔案:/usr/lib/systemd/system/*, /etc/systemd/system/*
# systemctl name[.service]
CentOS系統啟動流程
centos 6啟動流程 post boot sequence bios boot loader mbr kernel ramdisk rootfs readonly switchroot sbin init etc inittab,etc init conf 設定預設執行級別 執行系統初始化指令碼...
CentOS系統啟動流程
centos6 post開機自檢 執行cmos中的bios程式,載入第乙個啟動磁碟的mbr中的bootloader 由bootloader讀取kernel 通過掛載臨時根目錄initramfs載入核心模組 驅動程式 然後解除安裝臨時根目錄,掛載真正的根目錄。啟動init程式 指定 etc initt...
CentOS系統啟動流程
雖然知識很基礎,但是對於我們理解linux的工作機制是有幫助的。因為在centos 5 centos 6以及centos 7使用的初始化程式init各不相同,雖然centos 6和centos 7也都有向後相容,但在工作機制上還是存在一些差異,所以以下主要介紹centos 5 6系統啟動流程。啟動流...