Linux核心編譯及新增系統呼叫

2021-09-27 11:05:43 字數 647 閱讀 6116

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映象。

為了編譯執行順利,我給虛擬機器分配了8gb ram和100gb虛擬硬碟空間,同時vcpu分配了8個核心,以便make -jn命令的使用。

安裝ubuntu的時候,一定要注意檢視/boot分割槽是否足夠,如果不是工作環境最好直接將/boot分割槽掛載在根目錄下,否則編譯的時候產生的檔案會塞滿/boot分割槽導致編譯安裝失敗。

Linux 核心編譯 新增系統呼叫

主機 ubuntu 11.04 現在核心版本 2.6.38.9 編譯的目標核心版本 2.6.39 編譯成功後修改核心,新增個系統呼叫,並重新編譯核心,編寫c程式,呼叫自己新增的系統呼叫 首先編譯核心 2 解壓核心到任意目錄 這裡不用必須解壓到 usr src 下,linus也說不必那樣做,況且自己也...

Linux編譯核心 4 2 6 並新增系統呼叫

1.檢視系統核心版本 ubuntu 12.04 uname a或者cat proc version 將壓縮包linux 4.2.6.tar.gz 放至 usr src中後解壓 sudo cp linux 4.2.6.tar.gz usr src tar zxvf linux 4.2.6.tar.gz...

linux系統之核心調優

1 編輯核心配置檔案 永久性 vim etc sysctl.con2 引數及簡單說明 net.ipv4.tcp fin timeout 2 保持在fin wait 2狀態的時間,使系統可以處理更多的連線。此引數值為整數,單位為秒。net.ipv4.tcp tw reuse 1 開啟重用,允許將tim...