歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Unix知識 >> 關於Unix >> 理解Linux的系統調用

理解Linux的系統調用

日期:2017/3/6 15:37:14   编辑:關於Unix
現在,您或許正在查看設備驅動程序,並感到奇怪:“函數 foo_read() 是如何被調用的?”或者可能疑惑: “當我輸入 cat /proc/cpuinfo 時, cpuinfo() 函數是如何被調用的?”內核完成引導後,控制流就從相對直觀的“接下來調用哪個函數?”改變為取決於系統

現在,您或許正在查看設備驅動程序,並感到奇怪:“函數 foo_read() 是如何被調用的?”或者可能疑惑: “當我輸入 cat /proc/cpuinfo 時,cpuinfo() 函數是如何被調用的?”內核完成引導後,控制流就從相對直觀的“接下來調用哪個函數?”改變為取決於系統調用、異常和中斷。

什麼是系統調用?

字面上講,系統調用(也稱為“syscall”)就是一條類似於“add”或者“jump”的指令。從更高的層面上講,系統調用是用戶級程序要求>操作系統為它做某些事情的途徑。如果您正在編寫程序,需要讀取某個文件,那麼要使用一個系統調用來要求>操作系統為您讀取那個文件。

系統調用詳述

這裡是系統調用的工作原理。首先,用戶程序為系統調用設置參數。其中一個參數是系統調用編號(稍後對此進行詳述)。注意,所有這些都是由庫函數自動完成的,除非您是使用匯編編程。參數設置完成後,程序執行“系統調用”指令。這個指令會導致一個異常:產生一個事件,這個事件會致使處理器跳轉到一個新的地址,並開

Copyright © Linux教程網 All Rights Reserved