該Linux系統(tǒng)調(diào)用講義共分為Linux下系統(tǒng)調(diào)用的實(shí)現(xiàn)、Linux中的系統(tǒng)調(diào)用、Linux中怎樣編譯和定制內(nèi)核三部分,是一份內(nèi)容比較全面完整的、關(guān)于linux系統(tǒng)調(diào)用的課件教程,也可以說是一份不錯(cuò)的linux資料,如果你需要關(guān)于Linux系統(tǒng)調(diào)用方面的資料內(nèi)容,那么不妨參考一下這份Linux系統(tǒng)調(diào)用講義吧!該講義為免費(fèi)版,有需要的朋友可以放心下載使用!
Linux系統(tǒng)調(diào)用講義內(nèi)容節(jié)選
……
運(yùn)行模式(運(yùn)行態(tài)):
一種計(jì)算機(jī)硬件要運(yùn)行Unix/Linux系統(tǒng),至少需要提供兩種運(yùn)行模式:高優(yōu)先級(jí)的核心模式和低優(yōu)先級(jí)的用戶模式。實(shí)際上許多計(jì)算機(jī)都有兩種以上的執(zhí)行模式。如:intel 80x86體系結(jié)構(gòu)就有四層執(zhí)行特權(quán),內(nèi)層特權(quán)最高。Unix只需要兩層即可以了:核心運(yùn)行在高優(yōu)先級(jí),稱之為核心態(tài);其它外圍軟件包括shell,編輯程序,Xwindow等等都是在低優(yōu)先級(jí)運(yùn)行,稱之為用戶態(tài)。之所以采取不同的執(zhí)行模式主要原因時(shí)為了保護(hù),由于用戶進(jìn)程在較低的特權(quán)級(jí)上運(yùn)行,它們將不能意外或故意的破壞其它進(jìn)程或內(nèi)核。程序造成的破壞會(huì)被局部化而不影響系統(tǒng)中其它活動(dòng)或者進(jìn)程。當(dāng)用戶進(jìn)程需要完成特權(quán)模式下才能完成的某些功能時(shí),必須嚴(yán)格按照系統(tǒng)調(diào)用提供接口才能進(jìn)入特權(quán)模式,然后執(zhí)行調(diào)用所提供的有限功能。每種運(yùn)行態(tài)都應(yīng)該有自己的堆棧。在Linux中,分為用戶棧和核心棧。用戶棧包括在用戶態(tài)執(zhí)行時(shí)函數(shù)調(diào)用的參數(shù)、局部變量和其它數(shù)據(jù)結(jié)構(gòu)。有些系統(tǒng)中專門為全局中斷處理提供了中斷棧,但是x86中并沒有中斷棧,中斷在當(dāng)前進(jìn)程的核心棧中處理。
……
IPC對(duì)象必須使用IPC_RMID命令來顯示的釋放,否則這個(gè)對(duì)象就處于活動(dòng)狀態(tài),甚至所有的使用它的進(jìn)程都已經(jīng)終止。這種機(jī)制某些時(shí)候十分有用,但是也正因?yàn)檫@種特征,使得操作系統(tǒng)內(nèi)核無法判斷IPC對(duì)象是被用戶故意遺留下來供將來其它進(jìn)程使用還是被無意拋棄的。Linux中只提供了一個(gè)系統(tǒng)調(diào)用接口ipc()來完成所有System V IPC操作,我們常使用的是建立在該調(diào)用之上的庫函數(shù)接口。對(duì)于這三種IPC,都有很相似的三種調(diào)用:xxxget, (msgsnd, msgrcv)|semopt | (shmat, shmdt), xxxctlXxxget:獲取調(diào)用,在系統(tǒng)中申請(qǐng)或者查詢一個(gè)IPC資源,返回值是該IPC對(duì)象的ID,該調(diào)用類似于文件系統(tǒng)的open, create調(diào)用;Xxxctl:控制調(diào)用,至少包括三種操作:XXX_RMID(釋放IPC對(duì)象), XXX_STAT(查詢狀態(tài)), XXX_SET(設(shè)置狀態(tài)信息);(msgsnd, msgrcv) | Semopt | (shmat, shmdt)|:操作調(diào)用,這些調(diào)用的功能隨IPC對(duì)象的類型不同而有較大差異。
……
Linux系統(tǒng)調(diào)用講義內(nèi)容截圖
以上是Linux系統(tǒng)調(diào)用講義相關(guān)內(nèi)容介紹,查閱或下載更多免費(fèi)文檔資料,敬請(qǐng)關(guān)注東坡下載站!
- PC官方版
- 安卓官方手機(jī)版
- IOS官方手機(jī)版