linux内核探索(2)--简单的编译内核+系统调用(不传参)

目录

1,下载内核

1.1,下载内核源码

https://www.kernel.org/

1.2,将压缩包移动到/ usr / src目录下并并压压

2,系统调用测试用例编写

2.1,随便修改一块内核(系统调用测试用例编写)

2.2,在系统向量表里添加自定义系统调用号

2.3,添加函数声明

3,编译内核

3.1,安装所需要的工具

扫描二维码关注公众号,回复: 3612906 查看本文章

3.2,编译配置

3.3,编译启动映像

3.4,编译模块

4,安装内核

4.1,先安装模块

4.2,安装内核

5,更改启动grub

6,执行测试用例

6.1,编写测试用例

6.2,编译并执行

6.3、查看系统调用在内核空间的运行情况,执行命令:dmesg


1、下载内核

1.1、下载内核源码

https://www.kernel.org/

下载最新的内核

用filezille将压缩包拉倒虚拟机中

1.2、 将压缩包 移动到/usr/src目录下并解压

sudo tar -xvf linux-4.18.11.tar.xz

2、系统调用测试用例编写

2.1、随便修改一块内核(系统调用测试用例编写)

先将此刻虚拟机快照一下,方便回退版本

进入内核文件夹/usr/src/linux4.18.11,添加自定义的系统调用

2.2、在系统向量表里添加自定义系统调用号

2.3、添加函数声明

3、编译内核

3.1、安装所需要的工具

sudo apt-get install build-essential kernel-package libncurses5-dev
sudo apt-get install bc
sudo apt-get install libssl-dev

3.2、编译配置

将系统正在使用的内核的.config文件拷贝到当前内核中

 

然后执行make menuconfig,

其中报错

sudo apt-get install bison

sudo apt-get install flex

一切顺利

选择load→OK→Save→OK→EXIT→EXIT;

3.3、编译启动映像

make bzImage

ps:这里是i的大写,不是L的小写

报错:

sudo apt-get install libelf-dev

 完成时的截图:

3.4、编译模块

make modules

4、安装内核

4.1、先安装模块

make modules_install

4.2、安装内核

make install

5、 更改启动grub

5.1.grub就是管理Ubuntu系统启动的一个程序,我们编译好的内核要运行就要修改对应的grub,其实很简单。

mkinitramfs 4.5.0 -o /boot/initrd.img-4.5.0

update-grub2

update-grub2命令会帮我们自动修改grub,

5.2.重启系统

sudo reboot

5.3查看更换内核是否成功

uname  -a

成功

 

6、执行测试用例

6.1、编写测试用例

6.2,编译并执行

6.3,查看系统调用在内核空间的运行情况,执行命令:dmesg的

至此全部完成

 

 

猜你喜欢

转载自blog.csdn.net/qq_41603102/article/details/82894317