修改核心**新增函式,新增函式宣告以及新增系統呼叫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...