如何給CentOS 7 新增乙個簡單的系統呼叫

2021-10-04 19:32:52 字數 2118 閱讀 8262

五、總結

學習linux的核心的系統呼叫。

理解、掌握linux系統呼叫的實現框架、使用者介面、引數傳遞、進入/返回過程。

在系統呼叫中新增乙個不用傳遞引數的系統呼叫,實現乙個簡單的系統呼叫的新增。執行這個系統呼叫,在螢幕上顯示輸出「hello world! 」。

虛擬機器軟體:vmware workstation

linux發行版:centos 7 內建核心:linux 3.10.0

待編譯核心:linux 4.15.10

可以通過ctrl+f快速查詢

2.使用tar命令解壓檔案到/usr/src目錄下。執行命令:

tar xf ~/downloads/linux-4.15.10.tar.gz -c /usr/src
3.解壓之後,切換工作目錄到/usr/src/linux-4.15.10/,可以是用tab鍵補全路徑。執行命令:

cd /usr/src/linux-4.15.10/
4.後面操作大部分都需要root許可權,使用su命令切換使用者,輸入密碼時不會顯示。執行命令:

su root
1.使用vim編輯arch/x86/entry/syscalls/syscall_64.tbl檔案,新增系統呼叫號,在普通模式下,shift+g或者g可以直接定位到文尾。執行命令:

vim arch/x86/entry/syscalls/syscall_64.tbl
新增兩個沒有使用(unuse)的系統呼叫號,其他格式可以參考檔案中的其他系統呼叫,這裡我新增了兩個系統呼叫。**如下:

vim include/linux/syscalls.h
不傳遞引數的時候,void也不能漏寫。**如下:

3.使用vim編輯kernel/sys.c檔案,實現具體的系統呼叫。執行命令:

vim kernel/sys.c
**打一遍印象深刻一些,gogogo!**如下:

這裡就不詳細說明了,請參考linux發行版 centos編譯核心

1.使用vim命令建立測試檔案mysyscall.cmycall.c,下面以mysyscall.c的建立和測試為例。執行命令:

2.使用gcc編譯c程式檔案

編譯的四個階段

直接使用gcc -o生成指定輸出檔案。執行命令:

gcc -o mysyscall_test mysyscall_test.c   #使用gcc編譯
執行可執行檔案,執行命令:

./mysyscall_test        # 執行可執行檔案

使用dmesg檢視printk的輸出情況。執行命令:

系統呼叫的返回值printk的輸出均符合預期,系統呼叫成功新增了!

centos 給ftp新增加乙個使用者

1.新增使用者 1 增加使用者ftpuser,指向目錄 home wwwroot folder,禁止登入ssh許可權。useradd d home wwwroot folder g ftp s sbin nologin ftpuser 2 設定使用者口令 passwd ftpuser 2.把fold...

基於Centos7 建立乙個lxc

1.首先需要安裝epel release。yum install y epel release 因為在lxc virtualization是在epel中提供的。2.在安裝lxc之前,要確保perl和debootrap包已經安裝完畢。yum install y deboostrap perl libv...

CentOS 7中新增乙個新使用者並授權

建立乙個使用者名為 hadoop root mini01 adduser hadoop為這個使用者初始化密碼,linux會判斷密碼複雜度,不過可以強行忽略 root mini01 passwd hadoop changing password for user hadoop.new password...