系統呼叫號

2021-09-21 14:49:22 字數 450 閱讀 3491

在linux中,每個系統呼叫被賦予乙個系統呼叫號。這樣,通過獨一無二的號就可以關聯系統呼叫。當使用者空間的程序執行乙個系統呼叫的時候,這個系統呼叫號就用來指明到底是要執行哪個系統呼叫;程序不會提及系統呼叫的名稱。

系統呼叫號相當重要,一旦分配就不能再又任何變更,否則編譯好的應用程式就會崩潰。此外,如果乙個系統呼叫被刪除,它所占用的系統呼叫號也不允許被**利用,否則,以前編譯過的**會呼叫這個系統呼叫,但事實上卻呼叫的是另外乙個系統呼叫。linux有乙個「未實現」系統呼叫sys_ni_syscall(),它除了返回-enosys外不做任何其他工作,這個錯誤號就是專門針對無效的系統呼叫而設的。雖然很罕見,但如果乙個系統呼叫被刪除,或者變得不可用,這個函式就要負責「填補空缺」

核心記錄了系統呼叫表中的所有已註冊過的系統呼叫的列表,儲存在sys_call_table中。每一種體系結構中,都明確定義了這個表。這個表為每乙個有效的系統呼叫指定了唯一的系統呼叫號

跟蹤分析Linux核心5 0系統86號呼叫處理過程

致謝學號末位 186 跟蹤分析linux核心5.0系統呼叫處理過程 選擇系統呼叫號後兩位與學號後兩位相同的系統呼叫進行跟蹤分析 分析系統呼叫 保護現場與恢復現場 系統呼叫號及引數傳遞過程 配置核心編譯引數 編譯核心 製作根檔案系統 mkdir linuxkernel cd linuxkernel m...

read系統呼叫,mmap系統呼叫

read系統呼叫,mmap系統呼叫 2012 07 23 09 54 28 分類 linux 標籤 linux 檔案系統 虛擬記憶體 儲存系統 字型大小 訂閱 一般情況下,操作檔案既可以使用標準i o,也可直接使用系統呼叫。兩者有何區別呢?在輸入輸出中,直接使用底層的系統呼叫效率是非常低的,為什麼?...

庫呼叫,系統呼叫

通過這個問題,可以判斷候選人是否具有豐富的程式設計經驗以及是否具有找出這類問題答案的敏銳感覺。簡明的回答是 函式庫呼叫是語言或應用程式的一部分,而系統呼叫是作業系統 的一部分。你要確保弄懂 trap 自陷 這個關鍵字的含義。系統呼叫是在作業系統核心發現乙個 trap 或中斷後進行的。函式庫呼叫 vs...