Linux增加系統呼叫

2021-07-08 21:52:41 字數 2408 閱讀 7347

本次實驗以linux 2.6.35版本的unbutu系統為基礎,在核心上增加乙個helloworld程式的系統呼叫。

一、重新安裝配置核心

linux增加系統呼叫

本次實驗以linux 2.6.35版本的unbutu系統為基礎,在核心上增加乙個helloworld程式的系統呼叫。

一、重新安裝配置核心

1)安裝所需的工具和包:#yum install -y gcc ncurses-devel make wget(ncurses能提供底層終端功能的封裝,提供乙個相當穩固的工作框架用以產生漂亮的介面)

若是centos系統,命令則不同:#apt-get install -y gcc libncursesdev make wget wget。

uname -r 

wget

.org/pub/linux/kernel/v2.6/linux-2.6

.35.tar

.gztar xvzf linux-2.6

.35.tar

.gz

3)進入linux-2.6.3,安裝配置啟動選單menuconfig:

make menuconfig
在啟動選單裡選擇如下:

編譯核心:#make

make modules
4)安裝核心(需要用$su命令取得許可權):

make modules_install

make install

(unbutu使用者需要先執行:#sudo update-initramfs -c -k 2.6.35 手動生成ini)

5)修改配置檔案

vim /boot/grub/menu.lst
修改檔案中的內容:default=0,timeout=25

(unbutu使用者則#sudo vim /etc/default/grub 並修改:grub_default=2,grub_timeout=25,最後更新grub:#sudo update-grub)

6)重啟系統並觀察版本號:

reboot

uname -r

二、增加新的系統呼叫

1)編寫呼叫程式:

cd linux-2.6.35

mkdir my_source

touch my_soucer/sys_hellowoeld.c

vim my_soucer/sys_hellowoeld.c

檔案內程式如下:

include

include

asmlinkage int sys_helloworld(void)

2)增加配置檔案:

touch my_source/makefile

vim my_source/makefile

檔案內容為:

makefile of

thenew

system call

obj-y :-sys_helloworld.o

3)修改原有配置檔案

在linux2.6.35目錄下開啟原有配置檔案:#vim makefile

在下行末尾加上my_source:

core-y += kernel/ mm/ fs/ ipc/ security/ crypto/ block/ my_source/

.long sys_helloworld /* 339 */  

vim /arch/x86/include/asm/unistd_32.h

增加一行:#define __nr_helloworld 339

將總呼叫數增加1,變成339:#define nr_syscalls 339

vim /arch/x86/include/asm/syscall.h
增加一行:asmlinkage int sys_helloworld(void);

5)返回第一步編譯安裝核心並重啟

6)編寫測試程式**test_syscall.c,程式內容如下:

include

include

include

include

define __nr_helloworld 339

int main(int argc,char *argv||)

7)編譯執行測試程式

gcc test_syscall.c -o test_syscall

./test_syscall

Linux增加系統功能呼叫

2.獲取超級使用者許可權 3.解壓 新增系統呼叫 配置並編譯核心 測試結果 用 sudo su 命令來獲取超級使用者許可權,成功獲取後可以發現字型顏色變得蒼白了 超級使用者為所欲為啊 然後也可以用 whoami 命令來檢視 進入 usr src linux 4.15.10 kernel sys.c ...

增加系統呼叫

增加系統呼叫 在實際程式設計中,尤其是當我們需要增加或完善系統功能的時候,我們經常會用到系統呼叫函式。系統呼叫函式通常由使用者程序在使用者態下呼叫,核心通過system call 函式響應系統呼叫產生的軟中斷,在正確訪問核心棧 系統呼叫開關表之後陷入到作業系統核心中進行處理。系統呼叫是使用者程序由使...

增加系統呼叫

增加系統呼叫socket2 1.增加系統呼叫號 在source net socket.c增加syscall define3 socket2.syscall define3 socket2,int,family,int,type,int,protocol 2.source arch x86 sysca...