Linux新增系統呼叫

2021-09-22 02:11:38 字數 1648 閱讀 7267

修改核心**新增函式,新增函式宣告以及新增系統呼叫id,來實現給自己編譯的核心新增系統呼叫。當然這個過程是在編譯核心之前完成的,核心編譯過程請參照linux核心編譯

進入解壓的檔案目錄

cd /usr/src/linux-5.1/kernel
sys.c中新增函式​ 執行vim sys.c使用vim開啟sys.c檔案,未安裝vim只需在終端執行sudo apt-get install vim進行安裝

​ 在編輯狀態下使用g快速到達檔案尾部,新增自定義函式

新增函式宣告​ 執行cd /usr/src/linux-5.1/arch/x86/include/asm到asm檔案目錄下,執行vim syscalls.h使用vim開啟syscalls.h檔案新增宣告

新增系統呼叫id​ 執行cd /usr/src/linux-5.1/arch/x86/entry/syscalls到syscalls檔案目錄下,選擇計算機對應的型別32位或64位,執行vim syscall_64.tbl使用vim開啟syscall_64.tbl檔案新增系統呼叫號

​ 請參照linux核心編譯

​ 編寫程式呼叫自己新增的系統呼叫

#include

#include

#include

#include

intmain()

mysystemcall.c中使用syscall(428)呼叫自定義新增的系統呼叫,返回值為sys_mysysfunction函式中定義的73,說明成功呼叫了該系統呼叫。

最後在終端使用dmesg檢視核心資訊,看到自己定義的系統呼叫的列印資訊

參考文章

linux 新增系統呼叫

此文於2010 02 26被推薦到csdn首頁 如何被推薦?新的建立檔案描述符的 syscall 一般都支援額外的 flags 引數,可以直接指定 o nonblock 和 fd cloexec,例如 以上 6 個 syscalls,除了最後乙個是新功能,其餘的都是增強原有的呼叫,把數字尾號去掉就是...

Linux新增系統呼叫

通常新增系統呼叫有兩種方案 重新編譯核心 新增核心模組 此處我們採用重新編譯核心的方式增加系統呼叫。實驗環境 x86 64 gnu linux 4.15.0 ubuntu18.04 將其拷貝到 usr src目錄下 cp linux 4.19.1.tar.xz usr src 解壓縮並鏈結 xz c...

為linux新增系統呼叫

這篇文章簡單的介紹了如何為linux新增乙個系統呼叫。也就是為linux增加乙個api函式。通過這篇文章,應該學會如何 簡單的修改linux源 編譯核心。首先 1 cd usr src linux kernel a linkage int sys mycall int num 3.cd usr sr...