[原始碼和文件分享]Linux核心編譯及新增系統呼叫
阿新 • • 發佈:2018-12-11
1 總體設計思路
系統呼叫的本質是呼叫核心函式,以核心態執行程式。為了在核心態下執行,本實驗針對Linux的核心進行修改,增加自定義系統呼叫函式實現使用者態程式對任意程序的nice值進行修改或者讀取來進行測試。
2 主要函式的介面設計
核心態程式
SYSCALL_DEFINE3(mysetnice, pid_t, pid, int, flag, int, nicevalue)
其中pid為選擇程序的程序識別符號;flag是操作符,設計為0時讀取nice值,設計為1時進行修改操作;nice值為一返回變數,返回核心程式讀取到的程序nice值;共計三個變數。
使用SYSCALL_DEFINE宣告新增到~/kernel/sys.c檔案中。
3 專案實現過程
3.1 準備
本次實驗使用的環境為裝載在Vmware Workstation Pro 14中的Ubuntu 17.10映象。
映象下載地址:http://mirrors.zju.edu.cn/ubuntu-releases/17.10/
為了編譯執行順利,我給虛擬機器分配了8GB RAM和100GB虛擬硬碟空間,同時vCPU分配了8個核心,以便make -jn命令的使用。
安裝ubuntu的時候,一定要注意檢視/boot分割槽是否足夠,如果不是工作環境最好直接將/boot分割槽掛載在根目錄下,否則編譯的時候產生的檔案會塞滿/boot分割槽導致編譯安裝失敗。
參考文件和完整的文件和原始碼下載地址:
https://www.write-bug.com/article/1413.html