1. 程式人生 > >[原始碼和文件分享]Linux核心編譯及新增系統呼叫

[原始碼和文件分享]Linux核心編譯及新增系統呼叫

1 總體設計思路

系統呼叫的本質是呼叫核心函式,以核心態執行程式。為了在核心態下執行,本實驗針對Linux的核心進行修改,增加自定義系統呼叫函式實現使用者態程式對任意程序的nice值進行修改或者讀取來進行測試。

2 主要函式的介面設計

核心態程式

  1. 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