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