Linux内核是操作系统的核心,也是操作系统最基本的部分。Linux内核的体积结构是单内核的、但是他充分采用了微内核的设计思想、使得虽然是单内核、但工作在模块化的方式下、并且这个模块可以动态装载或卸 载;Linux负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。如是我们在了解Linux内核的基础上根据自己的需要量身定制一个更高效,更稳定的内核,就需要我们手动去编译和配置内核里的各项相关的参数和信息了。
下载地址

本次实验我选择5.0.5版本的Linux内核
根据前辈的经验,和我自己解决实验时报错问题的经验首先要提醒大家的是在编译前,首先要安装以下几种依赖:
sudo apt-get install gcc make libncurses5-dev openssl libssl-dev
sudo apt-get install build-essential
sudo apt-get install pkg-config
sudo apt-get install libc6-dev
sudo apt-get install bison
sudo apt-get install flex
sudo apt-get install libelf-dev
sudo apt-get install dwarves
sudo/usr/src/内如果不sudo无法访问/usr/src
sudo tar -zxvf xxx.tar.gz -C /usr/src

cd到Linux内核文件夹内后,在终端输入sudo make menuconfig
sudo make menuconfig

在这里menuconfig可以自定义,我们可以通过编写Kconfig去自定义。

在这里我们先不用修改其中的内容,之间选择Exit退出即可
这一步选择Yes即可。

通过make编译。这一步也是整个实验最耗费时间的,如果没有-j加速需要2个小时。
通过make -j$(nproc)命令可以自动获取当前机器能够使用的进程数用于加速。
为了加速编译速度可以使用-j参数,make -j4,其中的number根据自己电脑cpu核心数来决定,一般可以设置为核心数的2倍。

sudo make modules_install


sudo make install
cd /boot
ls

通过命令查看当前Linux内核版本
uname -r

首先使用命令查找新内核,更新grub文件

cd到/boot/grub修改grub.cfg

修改原文件:
注释 set timeout_style = hidden
修改timeout的值为10

重启机器,就会自动弹出选择Linux内核的界面了。
在这里选择Advanced Options

接下来选择想要的Linux内核版本即可。

现在可以查看Linux内核版本了

成功切换Linux内核。