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