给linux系统添加系统调用的小结

本文详细介绍了如何在Ubuntu虚拟机环境下安装配置并编译Linux内核的过程,包括环境搭建、内核下载、编译参数配置及系统调用函数添加等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

 

 

    正题:分为以下几个步骤

 

1.下载VMware和utunbu压缩包,在虚拟机中打开压缩包并安装utunbu,并且在设置里分配好4G的内存,50G的硬盘,千万不要省空间,因为之后会遇到各种各样的问题,罪魁祸首就是这个内存。然后去google一下基本的Ubuntu操作快捷键

 

2.进入Linux后把界面分辨率调整一下(之后会遇到menuconfig显示要求多少行×多少列的界面空间,分辨率小的话会显示失败),具体分辨率调整:

 

进入终端输入xrandr弹出当前显示器的分辨率范围,有几个选项,我的默认是800X600,太小了,

输入 xrandr  --size 1440x900(当然自己根据需要调整)

 

 

3.接下来就是安装包了:

更新代码 sudo apt-get install update ​

下载代码 sudo apt-get install libncurses5-dev libssl-dev 

              sudo apt-get install build-essential openssl 

             sudo apt-get install zlibc minizip 

            sudo apt-get install libidn11-dev libidn11

下载内核 我是通过https://www.kernel.org/下载的4.16.12版本的

 

 

然后把以root管理权限解压内核到 /usr/src/.

sudo cd /usr/src

sudo tar -xvf linux-4.16.12.tar.xz

 

4.添加编辑器

 

sudo apt-get install vim 

 

5.用Vim打开/kernel/sys.c文件,加入linkage.h的头文件,在文件末尾加入要加入的系统调用函数.

 

 

拉到最后一行,我加了一个mysystemfunction简单函数,返回a+b*b+c*c*c+d*d*d*d;注意编辑后按esc输入 :wq 保存并退出,接下来的编辑也是如此

 

 

 

添加函数声明,添加系统调用号

注意权限转换,切换成管态才能进去

 

 

 

如图,这是333号,按照上面的函数格式依次输入

6.

 编译内核和安装内核.

输入这三条语句

sudo make mrproper

sudo make clean

sudo make menuconfig  这条语句文头提到过,这里如果分辨率不够会报错!,而且要使终端窗口最大化!

5. 根据自己处理器的最大线程数目来编译.

sudo make -j4 (我的电脑是4核4线程),线程越多编译越快!我花了2个小时

7.

编译后安装内核到系统中.

sudo make modules_install  

sudo make install

8.重新加载内核

 

将之前的工作保存后直接重启,重启后点击鼠标进入ubuntu并且迅速按住shift,长按!然后出现以下

 

 

 

稍等片刻,就OK了,但是我遇到了一点问题,就是卡在了

 

文头提到过,如果内存分配不够将会出问题!

 

光标运行到   Kernel panic - not syncing: Out of memory and no killable processes 下面一行,一直闪。这时候不要慌,淡定的关机,然后 把虚拟机的内存(安装的时候是默认1G)改成4G

 

重启之后就解决了。

 

 

 

 

 

9.测试

 

1+2X2+3X3X3+4X4X4X4=288

测试成功!

 

 

 

以上。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值