iT邦幫忙

DAY 20
0

Linux kernel模組的開發系列 第 20

系統呼叫 system call

所以程式與 kernel 進行溝通的動作,最後都是以系統呼叫 (system call) 的方式來進行,譬如程式需要開啟一個檔案、建立一個新的子行程、或是要求一個記憶體空間。如果有興趣去看執行中的程式使用了那些系統呼叫動作,可以透過 strace 命令去觀察。

一般程式是無法直接存取 kernel 的,他不能存取 kernel 的記憶體內容,也不能直接呼叫使用 kernel 的功能,因為 CPU 的保護模式不允許一般程式這麼做。但是系統呼叫例外,他會透過呼叫中斷 (interrupt) 的方式切換到 kernel 模式底下。在 Intel x86 CPU 中,這個中斷稱為 INT 0x80。當程式跳到著個中斷位址,就是不在受 user mode 的限制,CPU 將允許程式執行任何指令。


上一篇
與設備溝通
下一篇
執行系統呼叫
系列文
Linux kernel模組的開發30

尚未有邦友留言

立即登入留言