目录
扫描二维码关注公众号,回复:
3612906 查看本文章
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的
至此全部完成