九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
linux 啟動過程分析
Linux系統(tǒng)啟動過程分析
主要內(nèi)容:
1. 啟動過程幾個(gè)主要文件簡介
2. 開機(jī)過程詳細(xì)說明
3. 開機(jī)過程詳圖
啟動過程中的幾個(gè)主要文件及其作用:
文件名稱
(按照加載次序列出)
作用
/etc/inittab
定義在進(jìn)入或切換各個(gè)級別時(shí)系統(tǒng)需要執(zhí)行的動作
init在初始化系統(tǒng)時(shí)需要讀取其中配置
/etc/rc.d/rc.sysinit
由init進(jìn)程調(diào)用執(zhí)行
完成下面的初始化工作:
1. 獲取網(wǎng)絡(luò)環(huán)境及主機(jī)類型
2. 測試與載入內(nèi)存設(shè)備/proc及USB設(shè)備/sys
3. 決定是否啟動SELinux
4. 接口設(shè)備的檢測與即插即用(PNP)參數(shù)的測試
5. 用戶自定義模塊的加載
6. 加載核心的相關(guān)設(shè)置
7. 設(shè)置系統(tǒng)時(shí)間
8. 設(shè)置中斷控制臺(console)的字形
9. 設(shè)置RAID與LVM等硬盤功能
10. 以fsak檢驗(yàn)磁盤文件系統(tǒng)
11. 進(jìn)行磁盤配額quota的轉(zhuǎn)換(非必要)
12. 重新以可讀取模式載入系統(tǒng)磁盤
13. 啟動quota的功能
14. 啟動隨機(jī)數(shù)設(shè)備
15. 清除啟動過程中生成的臨時(shí)文件
16. 將啟動相關(guān)信息加載到/var/log/message文件中
/ettc/rc.d/rc
由init進(jìn)程調(diào)用執(zhí)行
根據(jù)制定的運(yùn)行級別,加載或終止相應(yīng)的系統(tǒng)服務(wù)
/etc/rc.local
由rc腳本調(diào)用執(zhí)行
保存用戶定義的徐開機(jī)后自動執(zhí)行的命令
inittab文件說明:
格式:  id:runlevels:action :process
id
用于在inittab文件中唯一標(biāo)識一條記錄,沒有特別的意義
runlevels
用于指定記錄能在哪些級別下運(yùn)行(可以有多個(gè),表示在相應(yīng)的運(yùn)行級均需要運(yùn)行;也可以為空,為空時(shí)表示0~6都要運(yùn)行)
action
用于指定記錄將執(zhí)行的動作類型
process
用于設(shè)置啟動進(jìn)程所執(zhí)行的動作命令
(字段中進(jìn)程可以是任意的守候進(jìn)程、可執(zhí)行腳本或程序)
inittab文件中每一記錄都從新的一行開始,所以每個(gè)記錄項(xiàng)最多可有512個(gè)字符;
運(yùn)行級(runlevels)就是操作系統(tǒng)當(dāng)前正在運(yùn)行的功能級別。這個(gè)級別從1到6;
當(dāng)運(yùn)行級別改變,并且正在運(yùn)行的程序并沒有在新的運(yùn)行級別中指定需要運(yùn)行,那么init會先發(fā)送一個(gè)SIGTERM 信號終止,然后是SIGKILL. 運(yùn)行級別發(fā)生變化時(shí),init就會從/etc/inittab運(yùn)行相應(yīng)的命令
文件中有效的action值:
有效的action值
respawn:如果process字段指定的進(jìn)程不存在,則啟動該進(jìn)程,init不等待處理結(jié)束,而是繼續(xù)掃描inittab文件中的后續(xù)進(jìn)程,當(dāng)這樣的進(jìn)程終止時(shí),init會重新啟動它,如果這樣的進(jìn)程已存在,則什么也不做。
wait:啟動process字段指定的進(jìn)程,必須等到執(zhí)行結(jié)束才去處理inittab中的下一記錄項(xiàng)。
once: 啟動process字段指定的進(jìn)程,不等待處理結(jié)束就去處理下一記錄項(xiàng)。當(dāng)這樣的進(jìn)程終止時(shí),也不再重新啟動它,在進(jìn)入新的運(yùn)行級別時(shí),如果這樣的進(jìn)程仍在運(yùn)行,init也不重新啟動它。
boot:只有在系統(tǒng)啟動時(shí),init才處理這樣的記錄項(xiàng),啟動相應(yīng)進(jìn)程,并不等待處理結(jié)束就去處理下一個(gè)記錄項(xiàng)。當(dāng)這樣的進(jìn)程終止時(shí),系統(tǒng)也不重啟它。
bootwait:系統(tǒng)啟動后,當(dāng)?shù)谝淮螐膯斡脩裟J竭M(jìn)入多用戶模式時(shí)處理這樣的記錄項(xiàng),init啟動這樣的進(jìn)程,并且等待它的處理結(jié)束,然后再進(jìn)行下一個(gè)記錄項(xiàng)的處理,當(dāng)這樣的進(jìn)程終止時(shí),系統(tǒng)也不重啟它
off:如果指定的進(jìn)程正在運(yùn)行,init就給它發(fā)SIGTERM警告信號,在向它發(fā)出信號SIGKILL強(qiáng)制其結(jié)束之前等待5秒,如果這樣的進(jìn)程不存在,則忽略這一項(xiàng)。
powerfail:當(dāng)init接到斷電的信號(SIGPWR)時(shí),處理指定的進(jìn)程。當(dāng)然前提是有U P S和監(jiān)視UPS并通知init電源已被切斷的軟件。RHlinux默認(rèn)沒有列出該選項(xiàng)。
powerwait 當(dāng)init接到斷電的信號(SIGPWR)時(shí),處理指定的進(jìn)程,但init不會等待正在運(yùn)行的進(jìn)程結(jié)束,并且等到處理結(jié)束才去檢查其他的記錄項(xiàng)。
sysinit: 指定的進(jìn)程在訪問控制臺之前執(zhí)行,這樣的記錄項(xiàng)僅用于對某些設(shè)備的初始化,目的是為了使init在這樣的設(shè)備上向用戶提問有關(guān)運(yùn)行級別的問題,init需要等待進(jìn)程運(yùn)行結(jié)束后才繼續(xù)。
initdefault: 指定一個(gè)默認(rèn)的運(yùn)行級別,只有當(dāng)init一開始被調(diào)用時(shí)才掃描這一項(xiàng),如果runlevel字段指定了多個(gè)運(yùn)行級別,其中最大的數(shù)字 是默認(rèn)的運(yùn)行級別,如果runlevel字段是空的,init認(rèn)為字段是0123456,于是進(jìn)入級別6,這樣便陷入了一個(gè)循環(huán),如果inittab文件中沒 有包含initdefault的記錄項(xiàng),則在系統(tǒng)啟動時(shí)請求用戶為它指定一個(gè)初始運(yùn)行級別
ctrlaltdel:允許init在用戶于控制臺鍵盤上按下Ctrl+Alt+Del組合鍵時(shí),重新啟動系統(tǒng)。注意,如果該系統(tǒng)放在一個(gè)公共場所,系統(tǒng)管理員可將Ctrl+Alt+Del組合鍵配置為別的行為,比如忽略等。我是設(shè)置成打印一句警告的話了(防止其他人惡意重啟系統(tǒng)):監(jiān)視到特定的鍵盤組合鍵被按下時(shí)采取的動作,現(xiàn)在還不完善。
開機(jī)過程詳細(xì)說明:
示意圖:
過程說明:
1.  BIOS:系統(tǒng)首先由POST(PowerOnSelfTest,上電自檢)程序來對內(nèi)部各個(gè)設(shè)備進(jìn)行檢查;自檢后,就首先按照系統(tǒng)CMOS設(shè)置中保存的啟動順序搜尋軟硬盤驅(qū)動器及CD—ROM、網(wǎng)絡(luò)服務(wù)器等有效地啟動驅(qū)動器,讀入操作系統(tǒng)引導(dǎo)記錄,然后將系統(tǒng)控制權(quán)交給引導(dǎo)記錄,并由引導(dǎo)記錄來完成系統(tǒng)的順利啟動。
注:
硬盤主引導(dǎo)記錄MBR(Master Boot Record):位于硬盤0磁道0柱面1扇區(qū),該扇區(qū)共512bytes,其中MBR占446bytes ;MBR所做的唯一的事情就是裝載第二引導(dǎo)裝載程序。
分區(qū)表DPT(Disk Partition Table)占64bytes;
硬盤有效標(biāo)志(Magic Number)占2bytes;
2.  引導(dǎo)扇區(qū)的前446字節(jié),其中定義如何啟動本硬盤上的系統(tǒng)(根據(jù)分區(qū)表找到對應(yīng)分區(qū)上的內(nèi)核);而對于Linux,一般多用Grub引導(dǎo),由于grub相對較大,所以分為兩段式的進(jìn)行引導(dǎo),第一段存儲于硬盤MBR中,第二段放置于操作系統(tǒng)內(nèi)核所在的分區(qū)上。Grub根據(jù)MBR中第一段找到第二段,繼續(xù)引導(dǎo),第二段中放置的有GRUB菜單等信息,可以讓用戶選擇需要繼續(xù)引導(dǎo)啟動的系統(tǒng);并且菜單中指定的有內(nèi)核及RamDisk信息;
3.  根據(jù)用戶選擇將對應(yīng)的內(nèi)核讀到內(nèi)存,解壓展開;然后內(nèi)核開始初始化;初始化完成后需要讀取根分區(qū)(根是一切的起點(diǎn)),這時(shí)候如果系統(tǒng)不是普通磁盤,是scsi或是raid形式時(shí),就需要先加載相關(guān)的文件系統(tǒng)驅(qū)動來驅(qū)動該磁盤設(shè)備,從而讀取根分區(qū)(雞和蛋問題);這時(shí)候給內(nèi)核提供了一個(gè)minilinux,即initrd,其中含有內(nèi)核所需的一些基本模塊驅(qū)動,該linux只在內(nèi)存中運(yùn)行。內(nèi)核啟動時(shí)展開該initrd來加載相應(yīng)的驅(qū)動,在該驅(qū)動的補(bǔ)充之下從而掛載上根分區(qū);
4.  然后運(yùn)行根分區(qū)腳本/sbin/init 來初始化系統(tǒng);這個(gè)客戶自行程序運(yùn)行會讀取初始化配置文件inittab:在其中順序定義并運(yùn)行的有1.默認(rèn)的運(yùn)行級別 2.默認(rèn)的系統(tǒng)服務(wù)初始化腳本sysinit位置 3.各種運(yùn)行級別;系統(tǒng)會根據(jù)默認(rèn)的運(yùn)行級別,來對應(yīng)執(zhí)行相應(yīng)級別下的腳本,該處腳本是鏈接文件,鏈接到init.d中相對應(yīng)的文件,真正運(yùn)行的是init.d里的腳本)。
注:
rc N;表示用rc腳本去運(yùn)行rc N.d目錄下的腳本;rc腳本就是去執(zhí)行所需級別腳本的功能腳本;
目錄下的文件均為腳本鏈接文件,指向/etc/rc.d/rcN.d/目錄,并且命名時(shí)以S或K開頭,后面跟上0-99的數(shù)字;S代表啟動時(shí)執(zhí)行;K代表關(guān)閉時(shí)執(zhí)行;01-99代表啟動或關(guān)閉的級別(數(shù)字越小越優(yōu)先)
5.  初始化結(jié)束前執(zhí)行最后一個(gè)文件:/etc/rc.d/rc.local,系統(tǒng)會讀取該腳本中的所有命令并執(zhí)行一遍;但是該腳本只在啟動時(shí)執(zhí)行一次,系統(tǒng)關(guān)閉時(shí)不能執(zhí)行,所以不要為了實(shí)現(xiàn)開機(jī)啟動而將某些服務(wù)寫入這個(gè)腳本,那樣會造成服務(wù)關(guān)機(jī)時(shí)的非正常關(guān)閉;
注:
內(nèi)核:模塊化設(shè)計(jì),大部分設(shè)備模塊是在需要時(shí)加載驅(qū)動,并且大部分模塊的驅(qū)動放置于根分區(qū)上。
開機(jī)詳細(xì)流程圖:
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
AIX啟動過程分析
剖析linux系統(tǒng)啟動過程
linux中inittab文件詳解
Ubuntu啟動過程
busybox的Init
Linux啟動init流程
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服