Linux内核编译及添加系统调用
接下来的几篇博客会详细记录总结在Linux实践课程中的问题和感悟,这是第一篇。
内容要求
- 编译一个干净的Linux内核并加载成功,不需要对内核进行修改。
- 在1中新编译的内核中,添加一个系统调用,实现对指定进程的nice值的修改或读取功能。
开发平台
- Linux环境 gcc vim
具体步骤
编译内核并加载
首先下载内核kernel.org,我下载的是最新版。
将下载的linux-4.11.3.tar.xz文件移动到/usr/src/目录下使用命令
sudo mv ./linux-4.11.3.tar.xz /usr/src/,并进入/usr/src/目录,然后解压缩,使用命令sudo xz -d linux-4.11.3.tar.xz && tar -xvf linux-4.11.3.tar && rm linux-4.11.3.tar- 进入linux-4.11.3子目录,执行
sudo make mrproper清除.config和.o文件。 配置内核。
sudo make menuconfig注意,执行此命令时,shell窗口不能太小,应为要使用配置对话框。在显示的对话框中,对于每个选项,你可以选择y或m或n,其中,y表示将相应特性的支持或驱动程序编译进内核;m表示将相应特性的支持或设备驱动编译成可加载模块,在需要时,可由系统或用户自行加载到内核中;n表示内核不提供相应特性或驱动的支持。
一般采用默认值,但设备驱动配置要检查,进入Device Drivers,如下图所示:

这篇博客详细介绍了如何在Linux环境下编译内核,加载新内核,并添加一个用于修改或读取进程nice值的系统调用。作者从下载最新版内核源码开始,逐步解释了配置、编译、安装内核的过程,接着说明了分配系统调用号、修改系统调用表和实现服务例程的步骤,最后测试了新添加的系统调用功能。
最低0.47元/天 解锁文章
804





