簡(jiǎn)析linux內(nèi)核的內(nèi)核執(zhí)行流程_第1頁(yè)
簡(jiǎn)析linux內(nèi)核的內(nèi)核執(zhí)行流程_第2頁(yè)
簡(jiǎn)析linux內(nèi)核的內(nèi)核執(zhí)行流程_第3頁(yè)
簡(jiǎn)析linux內(nèi)核的內(nèi)核執(zhí)行流程_第4頁(yè)
簡(jiǎn)析linux內(nèi)核的內(nèi)核執(zhí)行流程_第5頁(yè)
已閱讀5頁(yè),還剩15頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、簡(jiǎn)析linux內(nèi)核的執(zhí)行流程從bootsect.s到main.c(內(nèi)核版本0.11)Linux啟動(dòng)的第一階段(從開(kāi)機(jī)到main.c)3個(gè)任務(wù):A、啟動(dòng)BBIOSS,準(zhǔn)備備實(shí)模式式下的中中斷向量量表和中中斷服務(wù)務(wù)程序。B、從啟動(dòng)動(dòng)盤(pán)加載載操作系系統(tǒng)程序序到內(nèi)存存。C、為執(zhí)行行32的的maiin函數(shù)數(shù)做過(guò)渡渡準(zhǔn)備。內(nèi)存變化如如下:、0 xFEE0000到0 xxFFFFFF是是BIOOS啟動(dòng)動(dòng)塊,其其中上電電后第一一條指令令在0 xxFFFFF0。、而后0 xx000000到到0 x0003FFF總共共1KBB存放中中斷向量量表,而而接下去去的地址址到0 xx0044FF共共2566B存放放BIO

2、OS數(shù)據(jù)據(jù),從00 x0EE05BB開(kāi)始的的約8KKB的內(nèi)內(nèi)存中存存放中斷斷服務(wù)程程序。、利用BIIOS中中斷0 xx19hh把硬盤(pán)盤(pán)的第一一扇區(qū)bboottsecct.ss的代碼碼加載到到內(nèi)存中中,即00 x077c000處,后后轉(zhuǎn)到該該處執(zhí)行行。、將boootseect.s的代代碼復(fù)制制到0 xx900000處處。、利用中斷斷0 x113h將將settup.s程序序加載到到內(nèi)存00 x9002000處。、再將剩余余的約2240個(gè)個(gè)扇區(qū)的的內(nèi)容加加載到00 x10000000 xx2EFFFF處處。、開(kāi)始轉(zhuǎn)到到settup.s處執(zhí)執(zhí)行,第第一件事事就利用用BIOOS提供供的中斷斷服務(wù)程程序從

3、設(shè)設(shè)備上獲獲取內(nèi)核核運(yùn)行的的所需系系統(tǒng)數(shù)據(jù)據(jù)并存在在0 x9900000的地地址處,這這時(shí)將原原來(lái)boootssectt.s的的代碼覆覆蓋得只只剩2BBytee的空間間。、關(guān)中斷并并將系統(tǒng)統(tǒng)代碼復(fù)復(fù)制到00 x0000000處,將將原來(lái)放放在這里里的中斷斷向量表表與BIIOS數(shù)數(shù)據(jù)區(qū)覆覆蓋掉,地地址范圍圍是0 xx0000000 x11EFFFF。同同時(shí)制作作兩表與與兩寄存存器。開(kāi)地址線AA20,尋尋址空間間達(dá)到44GB,后后對(duì)82259重重新編程程,改變變中斷號(hào)號(hào)。、轉(zhuǎn)到heead.s(大大小是225K+1844B)執(zhí)執(zhí)行,執(zhí)執(zhí)行該程程序完后后是這樣樣的:0 x0000000 x004FFF

4、F:頁(yè)頁(yè)目錄與與4個(gè)頁(yè)頁(yè)表,每每一項(xiàng)是是4KBB,共220KBB;0 x0500000 x0054000:共共1KBB的空間間是軟盤(pán)盤(pán)緩沖區(qū)區(qū);0 x0544010 x0054bb8:共共1844B沒(méi)用用;0 x0544b90 x005cbb8:共共2KBB的空間間存中斷斷描述符符表;0 x05ccb90 x0064bb8:共共2KBB的空間間存全局局描述符符表;之后就是mmainn函數(shù)的的代碼了了!第二階段、從從maiin.cc函數(shù)到到系統(tǒng)準(zhǔn)準(zhǔn)備完畢畢階段。第一步:創(chuàng)創(chuàng)建進(jìn)程程0,并并讓進(jìn)程程0具備備在322位保護(hù)護(hù)模式下下載主機(jī)機(jī)中的運(yùn)運(yùn)算能力力。流程程是:復(fù)制根設(shè)備備和硬盤(pán)盤(pán)參數(shù)表表 (

5、mmainn.c中中的1002、1110、1111行行) 物理內(nèi)存規(guī)規(guī)劃格局局(maain.c的1112行行1226行,其其中有 rrd_iinitt函數(shù)定定義在kkernnel/rammdissk.cc中,此此函數(shù)用用于虛擬盤(pán)盤(pán)初始化化;而mmem_iniit函數(shù)數(shù)是用于于內(nèi)存管管理結(jié)構(gòu)構(gòu)初始化化,定義義在meem/mmemoory.c中,該該函數(shù)頁(yè)頁(yè)面使用用 虛擬盤(pán)設(shè)置置與初始始化次數(shù)均均設(shè)置成成1000,然后后再依據(jù)據(jù)主內(nèi)存存的起始位位置和終終止位置置將處于于主內(nèi)存存的所有有頁(yè)面的的使用次數(shù)數(shù)全部清清零,系系統(tǒng)以后后把使用用次數(shù)為為0的頁(yè)頁(yè)面視為空空閑頁(yè)面面。)內(nèi)存管理結(jié)結(jié)構(gòu)meem_m

6、map初初始化 異常處理類類中斷服服務(wù)程序序掛接(在maain.c的1127行行,trrap()函數(shù)數(shù)定義 keerneel/ttrapp.c,目目的是將將各種中中斷與中中斷描述述符表掛掛接。)初始化塊設(shè)設(shè)備與字字符設(shè)備備請(qǐng)求項(xiàng)項(xiàng)結(jié)構(gòu)(在在maiin.cc的1228、1129行行,blkk_deev_iinitt()定義在在kerrnell/bllk_ddev/ll_rw_blkk.c,chr_ddev_iniit()定義在在kerrnell/chhr_ddev/ttyy_ioo.c)將串口與顯顯示器外外設(shè)的中中斷服務(wù)務(wù)程序掛掛接(在在maiin.cc的1330行, ttyy_innit()定

7、義義在keerneel/cchr_devv/ttty_iio.cc)開(kāi)啟時(shí)間設(shè)設(shè)置(在在maiin.cc的1331行,ttimee_innit()定義義于maain.c函數(shù)數(shù) 76行行staartuup_ttimee)系統(tǒng)開(kāi)始激激活進(jìn)程程0(在maain.c的1131行行,scchedd_innit()定義義在keerneel/ schhed.c函數(shù)數(shù)中,該該函數(shù)實(shí)實(shí)現(xiàn)進(jìn)程程相關(guān)事事務(wù)設(shè)置置依據(jù)時(shí)鐘中中斷設(shè)置置,系統(tǒng)統(tǒng)調(diào)用服服務(wù)程序序掛接。系系統(tǒng)調(diào)用用函數(shù)是是對(duì)用戶戶程序的的最基本本支持,利利用的是是進(jìn)程相關(guān)事事務(wù)初始始化設(shè)置置系統(tǒng)調(diào)調(diào)用軟中中斷,詳詳細(xì)見(jiàn)下下面講 的。)時(shí)鐘中斷設(shè)設(shè)置系統(tǒng)調(diào)用

8、服服務(wù)程序序掛接 初始化緩沖沖區(qū)管理理結(jié)構(gòu)(在在maiin.cc中1333行, buffer_init(buffer_memory_end)定義fs/buffer.c) 初始化硬、軟軟盤(pán)(mmainn.c中中1344、1335行,hhd_iinitt與fllopppy_iinitt定義于keerneel/bblk_drvv/hdd.c和和kerrnell/bllk_ddrv/flooppyy.c)開(kāi)中斷(maain.c中1136行行,stti()第二步:以以進(jìn)程00為母本本創(chuàng)建進(jìn)進(jìn)程1,使使進(jìn)程11不僅僅僅具備進(jìn)進(jìn)程0所所擁有的的能力,而而且還能能以文件件的形式式與外設(shè)設(shè)進(jìn)行數(shù)數(shù)據(jù)交互互。流程

9、程是:操作系統(tǒng)為為進(jìn)程00創(chuàng)建進(jìn)進(jìn)程1做做準(zhǔn)備 maain.c中1137行行,moove_to_user_modde()定義在在inccludde/aasm/sysstemm.h,實(shí)實(shí)現(xiàn)從內(nèi)核態(tài)到用用戶態(tài)。進(jìn)進(jìn)程0正正式開(kāi)始始執(zhí)行,而而后執(zhí)行maiin.cc的1338行的的“if(!foork()”,開(kāi)始始創(chuàng)建在進(jìn)程槽中中為進(jìn)程程1申請(qǐng)請(qǐng)一個(gè)空空閑位置置并獲取取進(jìn)程號(hào)號(hào)進(jìn)程1,此此時(shí)將執(zhí)執(zhí)行unnistted.h中的的sysscalll0宏宏函數(shù),得到一個(gè)個(gè)編號(hào),對(duì)對(duì)于foork函函數(shù),其其值是22,具體體在這個(gè)程序序中的第第62行行有定義義,然后后執(zhí)行軟軟中斷復(fù)制進(jìn)程00的信息息之前,先先將

10、一些些數(shù)據(jù)壓壓棧 ,進(jìn)入入系統(tǒng)調(diào)調(diào)用階段段,跳到到內(nèi)核態(tài)態(tài),執(zhí)行行kerrnell/syysteem_ccalll.s中中的代碼碼,將一一些寄存存器的值壓棧棧后,通通過(guò)剛才才在unnistted.h中給給eaxx賦值初步設(shè)置進(jìn)進(jìn)程1管管理結(jié)構(gòu)構(gòu)的2偏偏移值在在系統(tǒng)調(diào)調(diào)用syys_ccalll_taablee中找到到syss_foork函函數(shù),跳跳到該函函數(shù)執(zhí)行行。進(jìn)入后首首先申請(qǐng)請(qǐng)一個(gè)空空閑位置置并獲取取進(jìn)程號(hào)號(hào)。這同樣在ssysttem_calll.ss函數(shù)中中的syys_fforkk進(jìn)程0創(chuàng)建建進(jìn)程11的過(guò)程程中發(fā)生生時(shí)鐘中中斷中的_ffindd_coopy_ proocesss,再再跳到

11、該該函數(shù)的的定義處處kerrnell/fork.c中,后后返回到到syss_foork中中,在從中斷返回回復(fù)制進(jìn)進(jìn)程信息息前,再再將一些些數(shù)據(jù)壓壓棧, 此時(shí)有有一個(gè)寄寄存器的的值和前前面的不不一樣,那就是eaax,此此時(shí)是11,它從從tassk664中中得到的。之之后執(zhí)行行coppy_pproccesss,跳到到調(diào)整進(jìn)程11的管理理結(jié)構(gòu)定義處處kerrnell/foork.c中,設(shè)設(shè)置進(jìn)程程1的 管理結(jié)結(jié)構(gòu)。假假如此時(shí)時(shí)發(fā)生時(shí)時(shí)鐘中斷斷,系統(tǒng)統(tǒng)會(huì)響應(yīng)并執(zhí)執(zhí)行keerneel/ssysttem_calll.ss函數(shù)中的timmer_intterrruptt定義處處,先壓壓棧后設(shè)置進(jìn)程11的線性性

12、地址空空間及物物理頁(yè)面面進(jìn)入kkernnel/schhed.c的do_ttimeer函數(shù)數(shù),別忘忘了此時(shí)時(shí)仍在進(jìn)進(jìn)程0執(zhí)行,然然后便發(fā)發(fā)現(xiàn)時(shí)間間片還沒(méi)沒(méi)完,所所以跳出,并返返回到rret_froom_ssys_calll。這這是繼續(xù)調(diào)整進(jìn)進(jìn)程1的的管理結(jié)結(jié)構(gòu)在keerneel/ssysttem_calll.ss中定義義的,接著直接將將剛才的的壓棧數(shù)數(shù)據(jù)出棧棧,繼續(xù)續(xù)完成剛才創(chuàng)建進(jìn)進(jìn)程1的的任務(wù),即即在foork.c中繼繼續(xù)調(diào)整進(jìn)程11的管理理結(jié)構(gòu),同同時(shí)設(shè)置置進(jìn)程進(jìn)程0準(zhǔn)備備切換到到進(jìn)程111的線線性地址址空間及及物理頁(yè)頁(yè)面,直直到執(zhí)行到這條條語(yǔ)句“p-staate=TASSK_RUNNIIN

13、G;retturnn laast_pidd;”,標(biāo)志志著系統(tǒng)切換到到進(jìn)程11執(zhí)行進(jìn)程11創(chuàng)建完完成。后后跳出ccopyy_prroceess.c函數(shù),返回回到syysteem_ccalll.s,將將壓棧的的進(jìn)程1開(kāi)始始執(zhí)行的寄存存器值出出棧,此此時(shí)eaax是11。后中中斷返回回 ,進(jìn)程程由從內(nèi)內(nèi)核態(tài)變變?yōu)橛脩魬魬B(tài),即即到了uniisteed.hh的“if(_rees=0)”這條指指令中,_res的的值就是是eaxx的值,一一判斷成成立,就就返進(jìn)程1開(kāi)始始以數(shù)據(jù)據(jù)塊的形形式操作作硬盤(pán)回該值值。最后后回到了了maiin.cc 的“if(!foork()”中,一一判斷不不成立,跳跳出執(zhí)行下一一條指令

14、令“forr(;)paausee();”,同理理Pausee函數(shù)也也和foork函函數(shù)一樣樣,這里里就不將找到的緩緩沖塊與與請(qǐng)求項(xiàng)項(xiàng)掛接講了,進(jìn)進(jìn)入syys_ppausse()后將進(jìn)進(jìn)程0置為可中斷斷等待狀狀態(tài),并并調(diào)用在在kerrnell/scheed.cc定義的的schheduule()函數(shù)數(shù)切換進(jìn)進(jìn)程。進(jìn)程切換中中斷返回回后執(zhí)行行了第一一條語(yǔ)句句將請(qǐng)求項(xiàng)與與硬盤(pán)處處理函數(shù)數(shù)掛接是“if(_rees=0)”,一判判斷, 剛存的的eaxx值為00,返回回到“if(!foork()”判斷為真,執(zhí)執(zhí)行innit()函函數(shù),這這在maain.c定義。進(jìn)入入iniit.cc后其程程序執(zhí)行行流程見(jiàn)見(jiàn)附

15、錄,進(jìn)行硬盤(pán)讀讀盤(pán)前的的工作準(zhǔn)準(zhǔn)備各個(gè)程程序執(zhí)行行目的正正如左邊邊寫(xiě)的一一樣。給硬盤(pán)下達(dá)達(dá)讀盤(pán)命命令進(jìn)程1由于于等待讀讀盤(pán)操作作掛起系統(tǒng)切換到到進(jìn)程00執(zhí)行進(jìn)程0執(zhí)行行過(guò)程中中發(fā)生硬硬盤(pán)中斷斷 硬盤(pán)中斷斷服務(wù)程程序響應(yīng)應(yīng)后,進(jìn)進(jìn)程0繼繼續(xù)執(zhí)行行再次響應(yīng)硬硬盤(pán)中斷斷,并喚喚醒進(jìn)程程1 讀盤(pán)操作作完成后后進(jìn)程11繼續(xù)執(zhí)執(zhí)行 進(jìn)程1繼繼續(xù)設(shè)置置硬盤(pán)管管理結(jié)構(gòu)構(gòu) 進(jìn)程1獲獲取軟盤(pán)盤(pán)超級(jí)塊塊,為加加載根文文件系統(tǒng)統(tǒng)做準(zhǔn)備備 進(jìn)程1備備份超級(jí)級(jí)塊數(shù)據(jù)據(jù) 進(jìn)程1將將根文件件系統(tǒng)從從軟盤(pán)拷拷貝到虛虛擬盤(pán)進(jìn)程1開(kāi)始始加載根根文件系系統(tǒng)進(jìn)程1準(zhǔn)備備加載根根文件系系統(tǒng)超級(jí)級(jí)塊進(jìn)程1繼續(xù)續(xù)加載根根文件系系統(tǒng)進(jìn)程1準(zhǔn)備

16、備獲取根根目錄節(jié)節(jié)點(diǎn)進(jìn)程1加載載根目錄錄節(jié)點(diǎn)進(jìn)程1結(jié)束束加載根根文件系系統(tǒng)的過(guò)過(guò)程進(jìn)程1與內(nèi)內(nèi)核文件件表掛接接,為打打開(kāi)文件件做準(zhǔn)備備確定打開(kāi)操操作的起起點(diǎn)獲取枝梢ii節(jié)點(diǎn)ddev目目錄文件件的i節(jié)節(jié)點(diǎn)確定devv的目錄錄文件ii節(jié)點(diǎn)為為枝梢節(jié)節(jié)點(diǎn)繼續(xù)返回枝枝梢i節(jié)節(jié)點(diǎn)查找ttyy0文件件的i節(jié)節(jié)點(diǎn)將tty00設(shè)備文文件的ii節(jié)點(diǎn),返返回給ssys_opeen系統(tǒng)統(tǒng)調(diào)用分析ttyy0文件件i節(jié)點(diǎn)點(diǎn)設(shè)置文件管管理結(jié)構(gòu)構(gòu)并返回回給用戶戶進(jìn)程進(jìn)程復(fù)制ttty00文件句句柄進(jìn)程1繼續(xù)續(xù)復(fù)制ttty00文件句句柄第三步:以以進(jìn)程11為母本本創(chuàng)建進(jìn)進(jìn)程2,使使進(jìn)程22在全面面具備進(jìn)進(jìn)程1所所擁有的的能力和

17、和環(huán)境的的基礎(chǔ)上上,進(jìn)一一步具備備支持”人機(jī)交交互“的能力力,最終終實(shí)現(xiàn)準(zhǔn)準(zhǔn)備階段段完成。流流程如下下:進(jìn)程1準(zhǔn)備備創(chuàng)建進(jìn)進(jìn)程2 與進(jìn)進(jìn)程0創(chuàng)創(chuàng)建進(jìn)程程1一樣樣,創(chuàng)建建進(jìn)程22,復(fù) 制進(jìn)進(jìn)程1的的管理結(jié)結(jié)構(gòu),復(fù)復(fù)制頁(yè)表表、頁(yè)目目錄 項(xiàng)等等,創(chuàng)建建進(jìn)程22后即執(zhí)執(zhí)行到iinitt/maain.c中復(fù)制進(jìn)程22的管理理結(jié)構(gòu)并并進(jìn)行調(diào)調(diào)整 1766行與1186行行,分別別是:iif(!(piid =fforkk()中子進(jìn)進(jìn)程即進(jìn)進(jìn)程2執(zhí)執(zhí)行,而而父進(jìn)程程( 進(jìn)程程1)執(zhí)執(zhí)行1886行的的if(pidd0),父父進(jìn)程調(diào)整進(jìn)程22管理結(jié)結(jié)構(gòu)中與與文件有有關(guān)的內(nèi)內(nèi)容 進(jìn)入入waiit函數(shù)數(shù),等待待! 進(jìn)入

18、入waiit函數(shù)數(shù)后還做做了一些些動(dòng)作:首先 查找找自己的的子進(jìn)程程,確定定是進(jìn)程程2后,判判斷進(jìn)程1執(zhí)行行過(guò)程中中發(fā)生時(shí)時(shí)鐘中斷斷 進(jìn)程程2是否否處于終終止?fàn)顟B(tài)態(tài)或是 僵死死狀態(tài),一一判斷不不是,就就將進(jìn)程程1設(shè)置置為 可中中斷等待待狀態(tài),繼繼而調(diào)用用schheduule()函數(shù)數(shù)進(jìn)程1從時(shí)時(shí)鐘中斷斷返回 準(zhǔn)準(zhǔn)備切換換到進(jìn)程程2執(zhí)行行 切換到到進(jìn)程22。 進(jìn)進(jìn)入進(jìn)程程2后開(kāi)開(kāi)始加載載sheell程程序。首首先執(zhí) 行iinitt/maain.c中1180行行的“cloose(0);”,就是是進(jìn)程1查找找它自己己的子進(jìn)進(jìn)程 解除ffilpp200與ffilee_taablee644的第第一項(xiàng) 關(guān)

19、系,這這是從進(jìn)進(jìn)程1繼繼承過(guò)來(lái)來(lái)的。然然后 是是“if(opeen(etcc/rcc,OO_RDDONLLY,00))”,對(duì)進(jìn)程2的的狀態(tài)進(jìn)進(jìn)行處理理 其中是是將進(jìn)程程2的管管理結(jié)構(gòu)構(gòu)指針表表fillp 20的第一一項(xiàng)與ffilee_taablee644的第第一項(xiàng)建建立 一一個(gè)關(guān)于于資源配配置的文文件,而而后再執(zhí)執(zhí)行切換到進(jìn)程程2執(zhí)行行 eexeccve函函數(shù),并并映射到到syss_exxecvve系統(tǒng)統(tǒng)調(diào)用。 再再調(diào)用ddo_eexeccve函函數(shù),目目的便是是將參數(shù)數(shù) 與與環(huán)境變變量加載載到主內(nèi)內(nèi)存的頁(yè)頁(yè)面中去去,中斷斷為打開(kāi)/eetc/rc文文件做準(zhǔn)準(zhǔn)備 返回,但但此時(shí)在在該函數(shù)數(shù)里已經(jīng)

20、經(jīng)將EIIP的 值指指向了sshelll程序序的入口口地址,所所以返回回后 執(zhí)行行的是sshelll的第第一條指指令,但但這時(shí)卻卻發(fā)現(xiàn)進(jìn)程2打開(kāi)開(kāi)”/ettc/rrc“配置文文件 內(nèi)存中中沒(méi)有這這一條指指令的映映射, 所以以發(fā)生“缺頁(yè)中中斷”,然后后調(diào)用ppagee_faaultt 函數(shù)中中的doo_noo_paage。通過(guò)壓棧為為加載sshelll文件件做準(zhǔn)備備為參數(shù)和環(huán)環(huán)境變量量設(shè)置做做準(zhǔn)備得到sheell文文件i節(jié)節(jié)點(diǎn)為加載參數(shù)數(shù)和環(huán)境境變量做做準(zhǔn)備根據(jù)i節(jié)點(diǎn)點(diǎn),為sshelll文件件進(jìn)行檢檢測(cè)檢測(cè)sheell文文件頭備份文件頭頭并進(jìn)行行分析對(duì)shelll文件件進(jìn)行進(jìn)進(jìn)一步分分析拷貝參數(shù)

21、與與環(huán)境變變量調(diào)整進(jìn)程22的管理理結(jié)構(gòu)繼續(xù)調(diào)整進(jìn)進(jìn)程2的的管理結(jié)結(jié)構(gòu)釋放進(jìn)程22繼承的的頁(yè)面檢測(cè)協(xié)處理理器調(diào)整sheell程程序所在在的線性性地址空空間為shelll程序序準(zhǔn)備參參數(shù)與環(huán)環(huán)境變量量繼續(xù)調(diào)整進(jìn)進(jìn)程2的的管理結(jié)結(jié)構(gòu)調(diào)整EIPP,使其其指向sshelll程序序的入口口地址Shelll程序執(zhí)執(zhí)行發(fā)生生缺頁(yè)中中斷缺頁(yè)中斷中中sheell程程序加載載前檢測(cè)測(cè)為即將載入入的內(nèi)容容申請(qǐng)頁(yè)頁(yè)面為shelll載入入新獲得得的頁(yè)面面根據(jù)sheell進(jìn)進(jìn)程的情情況,調(diào)調(diào)整頁(yè)面面內(nèi)容將線性地址址空間與與程序所所在的物物理頁(yè)面面相對(duì)應(yīng)應(yīng) SShelll程序序開(kāi)始執(zhí)執(zhí)行,執(zhí)執(zhí)行的內(nèi)內(nèi)容是/etcc/ rcc

22、里面的的命令,其其中便有有創(chuàng)建uupdaate進(jìn)進(jìn)Shelll進(jìn)程準(zhǔn)準(zhǔn)備創(chuàng)建建upddatee進(jìn)程 程,該該進(jìn)程是是為同步步緩沖區(qū)區(qū)與硬盤(pán)盤(pán)而 設(shè)的進(jìn)進(jìn)程,它它會(huì)時(shí)不不時(shí)的進(jìn)進(jìn)入睡眠眠狀 態(tài),經(jīng)經(jīng)過(guò)一定定的時(shí)間間再被喚喚醒然后后更新進(jìn)程2開(kāi)始始執(zhí)行/etcc/rcc文件 緩沖沖區(qū)與硬硬盤(pán)的數(shù)數(shù)據(jù)。之之后創(chuàng)建建完成后后 Shhelll進(jìn)程退退出,退退出操作作當(dāng)然得得釋放它它占 用的的資源或或者是清清除掉,或或者是將將使用次次數(shù)準(zhǔn)備加載uupdaate進(jìn)進(jìn)程 減減1。然然后為進(jìn)進(jìn)程1找找到一個(gè)個(gè)子進(jìn)程程, 那就是是upddatee進(jìn)程了了,發(fā)信信號(hào)告訴訴進(jìn)程11 sheell進(jìn)進(jìn)程退出出,進(jìn)程程1喚醒醒執(zhí)行,重重新進(jìn)入入Shelll程序檢檢測(cè)“etcc/rcc”文件 maiin.cc函數(shù)中中執(zhí)行1180行行后面的的程序 再次次創(chuàng)建sshelll進(jìn)程程,現(xiàn)在在進(jìn)程號(hào)號(hào)是4,同同樣 與與之前的的一樣,但但此時(shí)稍稍微有點(diǎn)點(diǎn)不同的的是Shelll進(jìn)程退退出 opeen的參參數(shù)是/devv/ttty0,這這是一個(gè)個(gè)設(shè)備 文文件,與與之

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論