c語言open與sys_open的用法

系統調用是有一個 CPU 運行等級的提高問題. 用戶代碼在 3 級, 操做系統代碼在 0 級.
open 是對在 Ring 3 級對系統調用的一個包裝. 
全部的系統函數只有一個系統調用入口, int $0x80, 在這條指令以前把調用的函數對應的功能號放到 %eax 寄存器.
這條指令產生一箇中斷, CPU 切換到中斷處理程序, 運行等級從 Ring 3 級切換到 Ring 0 級. 開始在內核中運行. 內核再根據 %eax 中的功能號來調用不一樣的函數. sys_open 就是內核中處理 open 對應的功能號的函數.函數

相關文章
相關標籤/搜索