centos啟動服務命令,linux 添加新的系統調用,如何在Linux中添加新的系統調用

 2023-10-06 阅读 27 评论 0

摘要:如何在Linux中添加新的系統調用centos啟動服務命令。2010-01-29eNet&Ciweekcentos7如何生成新的啟動文件,#define __NR_mycall 191系統調用號為191,之所以系統調用號是191,是因為Linux-2.2內核自身的系統調用號碼已經用到190。第二個要修改的文件是:

如何在Linux中添加新的系統調用

centos啟動服務命令。2010-01-29

eNet&Ciweek

centos7如何生成新的啟動文件,#define __NR_mycall 191

系統調用號為191,之所以系統調用號是191,是因為Linux-2.2內核自身的系統調用號碼已經用到190。

第二個要修改的文件是:

/usr/src/linux/arch/i386/kernel/entry.S

該文件中有類似如下的清單:

.long SYMBOL_NAME()

該清單用來對sys_call_table[]數組進行初始化。該數組包含指向內核中每個系統調用的指針。這樣就在數組中增加了新的內核函數的指針。我們在清單最后添加一行:

.long SYMBOL_NAME(sys_mycall)

(3) 重建新的Linux內核

為使新的系統調用生效,需要重建Linux的內核。這需要以超級用戶身份登錄。

#pwd

/usr/src/linux

#

超級用戶在當前工作目錄(/usr/src/linux)下,才可以重建內核。

#make config

#make dep

#make clearn

#make bzImage

編譯完畢后,系統生成一可用于安裝的、壓縮的內核映象文件:

/usr/src/linux/arch/i386/boot/bzImage

(4) 用新的內核啟動系統

要使用新的系統調用,需要用重建的新內核重新引導系統。為此,需要修改/etc/lilo.conf文件,在我們的系統中,該文件內容如下:

boot=/dev/hda

map=/boot/map

install=/boot/boot.b

prompt

timeout=50

image=/boot/vmlinuz-2.2.5-15

label=linux

root=/dev/hdb1

read-only

other=/dev/hda1

label=dos

table=/dev/had

首先編輯該文件,添加新的引導內核:

image=/boot/bzImage-new

label=linux-new

root=/dev/hdb1

read-only

添加完畢,該文件內容如下所示:

boot=/dev/hda

map=/boot/map

install=/boot/boot.b

prompt

timeout=50

image=/boot/bzImage-new

label=linux-new

root=/dev/hdb1

read-only

image=/boot/vmlinuz-2.2.5-15

label=linux

root=/dev/hdb1

read-only

other=/dev/hda1

label=dos

table=/dev/hda

這樣,新的內核映象bzImage-new成為缺省的引導內核。

為了使用新的lilo.conf配置文件,還應執行下面的命令:

#cp /usr/src/linux/arch/i386/boot/zImage /boot/bzImage-new

其次配置lilo:

# /sbin/lilo

現在,當重新引導系統時,在boot:提示符后面有三種選擇:linux-new 、linux、dos,新內核成為缺省的引導內核。

至此,新的Linux內核已經建立,新添加的系統調用已成為操作系統的一部分,重新啟動Linux,用戶就可以在應用程序中使用該系統調用了。

(5)使用新的系統調用

在應用程序中使用新添加的系統調用mycall。同樣為實驗目的,我們寫了一個簡單的例子xtdy.c。

#include

_syscall1(int,mycall,int,ret)

main()

{

printf("%d n",mycall(100));

}

編譯該程序:

# cc -o xtdy xtdy.c

執行:

# xtdy

結果:

# 100

注意,由于使用了系統調用,編譯和執行程序時,用戶都應該是超級用戶身份。

c3e667f7e5ce5e17d471e602488fef4e.png

您對本文或本站有任何意見,請在下方提交,謝謝!

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/3/122583.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息