Ubuntu18.04+linux_5.2.5添加系統調用

添加系統調用

實驗環境

Ubuntu18.04
linux_5.2.5內核源代碼
vscode

實驗步驟

方法一

修改內核源代碼,添加系統調用

  • 1.內核目錄/arch/x86/entry/syscalls/syscall_64.tbl
    在這裏插入圖片描述
  • 2./usr/include/asm-generic/unitsd.h
    在這裏插入圖片描述
  • 3.內核目錄/kernel/sys.c
    在這裏插入圖片描述

方法二

修改內核源代碼,添加系統調用

  • 1.內核目錄/arch/x86/entry/syscalls/syscall_64.tbl
    在這裏插入圖片描述
  • 2.內核目錄/kernel/sys.c
    在這裏插入圖片描述
  • 3./include/linux/syscalls.h

重新編譯&安裝內核

1.cd內核源代碼目錄/
2.make mrproper //清除編譯過程中產生的所有中間文件
3.make clean //清除上一次產生的編譯中間文件
4.make menuconfig //圖形化界面,方便選擇一些功能
直接exit並保存即可

//編譯內核源代碼:make -j2(根據自己的CPU情況,設置-jN)
安裝內核
安裝內核模塊
sudo make modules_install
安裝內核
sudo make install
安裝內核的頭文件(可選)
sudo make headers_install(本人沒有安裝)
修改grub啓用新版本內核
1.打開grub文件:vi /etc/defaule/grub
2.將"GRUB_CMDLINE_LINUX_DEFAULT"的值由"quiet"改爲"text"並保存
3.update-grub保存配置

重啓系統
sudo reboot
查看當前內核版本:uname -a

驗證系統調用的有效性

vi syscall_test.c
在這裏插入圖片描述
gcc -o sys_test sys_test.c

在這裏插入圖片描述
如圖所示,顯示了當前進程的內核棧大小

卸載內核版本

  • 1.sudo dpkg --get-selections | grep ‘linux’
  • 2.sudo apt-get purge + image/headers名稱
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章