Linux增加系统调用及编译内核

还是学生,自己靠网上的教程,摸索出来的。有不对的地方欢迎大家更正,勿喷勿喷。

世界和平!!啾咪~

Ubuntu版本 18.04

最开始的内核的是

然后在不实现增加系统调用的情况下,进行了第一次内核编译,选择了最新版本

在这个过程中,由于硬盘容量和内存不够,进行了一次Linux重装,又进行了第二次内核编译。所以,在开始编译之前一定要扩大足够的容量!!(我改成了60G硬盘,8G运行内存)

在开始之前请自行下载需要的Linux内核,前往https://www.kernel.org/,之后解压到桌面,复制到目录urs/src/。

sudo tar -xavf linux-5.11.19.tar.xz

sudo mv ~/Desktop/linux-5.11.19 /usr/src/

一、增加系统调用

1、添加系统调用功能代码

添加在endif前面

gedit /usr/src/linux-5.11.19/kernel/sys.c

添加代码

SYSCALL_DEFINE0(helloworld)

{

 printk("My Student No. is 1813001028!");

 return 0;

}

2、添加声明

cd /usr/src/linux-5.11.19/arch/x86/include/asm/

vim syscall.h

vim syscalls.h

我也没摸清楚到底上放进哪个起的作用,知道的宝贝可以跟我说一说,都放入同一个语句

 

3、添加一个系统调用id

cd /usr/src/linux-5.11.19/arch/x86/entry/syscalls

vim syscall_64.tbl

到此增加系统调用结束

二、编译准备

必备依赖安装

sudo apt-get install libncurses5-dev 

sudo apt-get install build-essential

sudo apt-get install flex           

sudo apt-get install bison   

           

 

三、开始编译

urs/src/linux-5.11.19下操作

sudo cp /boot/config-5.3.0-28-generic .config       #(二选一即可)

sudo make menuconfig

直接方向键选择exit,所有都为默认选项。

sudo make -j4          #(4线程编译加快速度)

 

sudo make modules_install

四、安

cd /usr/src/linux-5.11.19/
sudo make install
sudo mkinitramfs -o /boot/initrd.img-5.11.19
sudo update-initramfs -c -k 5.11.19
sudo update-grub2

五、成果检验

重启

sudo shutdown -r now

查看当前版本

uname -a

六、系统调用

编写测试文件hello.c

#define _GNU_SOURCE

#include<stdio.h>

#include<unistd.h>

#include<sys/syscall.h>

#include<sys/types.h>

#include<signal.h>


int main(){

    syscall(335);

    return 0;

 }
vi hello.c

gcc -o hello hello.c

./hello

dmesg

感谢您的阅读!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值