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,如下图所示: