查看原文
其他

Linux系统内核编译过程详解

李逸皓 运维book思议 2023-10-21

先放个链接,万一有人关注呢

优质文章推荐

↓ ↓ ↓ ↓ ↓

不会这条命令你还怎么玩Linux

CentOS与Ubuntu到底怎么选择?

你还认为它们是Linux下不起眼的小命令吗?



Linux系统由内核、shell、文件系统和应用程序4个主要部分组成。其中内核、shell与文件系统一起形成了基本的操作系统结构,它们使得用户可以运行程序、管理文件并使用系统。

内核是操作系统的核心,具有很多最基本功能,它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。



在编译安装内核源码之前,要去获取Linux内核的压缩文件,获取的路径有很多,最直接的就是去内核官网获取(http://www.kernel.org),也可以到各镜像站上去下载。


将下载完成的内核文件通过终端上传到服务器上,具体操作可在终端中使用rz命令。

通常在Linux内核网站中的内核文件都是以压缩文件的形式保存的,所以在内核文件下载到服务器之后需要解压,而根据不同的文件格式需要使用不同的命令进行解压。

#查看压缩文件[root@localhost ~]# ls anaconda-ks.cfg linux-3.16.50.tar.gz #解压[root@localhost ~]# tar -xf linux-3.16.50.tar.gz #查看解压后的文件[root@localhost ~]# lsanaconda-ks.cfg linux-3.16.50 linux-3.16.50.tar.gz
编译的过程中需要使用到各项不同的编译工具,这些工具都可以通过YUM源进行安装。
yum -y install gcc gcc-c++ pcre-devel openssl-devel bc

进入到解压之后的文件目录中,并删除内核源码中的中间文件、配置文件与备份文件。

cd linux-3.16.50make mrproper

在编译之前需要系统安装字符终端设备,该工具通过YUM源即可进行安装。

yum install ncurses-devel -y
字符终端设备安装完成之后即可对内核进行配置,通常最简单的配置方式是将原本的内核配置文件复制到新内核的目录下。
cp /boot/config-3.10.0-957.el7.x86_64 .config

内核配置完成之后需要对配置进行保存。

make menuconfig

上述命令执行完成之后将会弹出一个配置菜单


在内核配置菜单中选择Save进行保存,需要注意的是,该菜单中需要使用键盘中的方向键与回车键进行保存。配置保存之后会弹出配置界面

在配置界面中选择Ok之后会弹出一个退出界面

在退出界面中选择Exit会返回到配置菜单中,在配置菜单中选择Exit即可退出。

接下来即可将内核进行编译。

通常情况下内核的编译时间是较长的,但对于一些的拥有多核CPU的服务器来说可以减少一些编译时间。在make命令中加入-j选项,设置参与内核编译的CPU核数。我这里用了4颗CPU:

make -j4
如果使用的是虚拟机,在按下回车键后需要注意宿主机的散热,因为在整个过程中会占用系统大量的资源并且硬件产生大量的热量。

然后就是漫长的等待,这段时间里可以去泡杯茶、去看看远处的风景、去流浪、去做不被定义的风。。。。。。都随你

内核编译完成之后,进行模块的安装。

make modules_install

模块安装大约需要几分钟的时间,完成之后即可安装内核。

make install

内核安装完成之后,需要重新启动系统才能够使用新内核。

reboot

如果内核已经成功被编译安装,在系统开机的界面将会显示新的内核。

开机后可通过以下命令查看当前内核版本。
uname -r


来不及解释了,快上车!(进群看公告)


欢迎新的小伙伴加入!在这里,我们鼓励大家积极参与群内讨论和交流,分享自己的见解和经验,一起学习和成长。同时,也欢迎大家提出问题和建议,让我们不断改进和完善这个平台。

              ↓↓↓ 点个在看,你最好看!

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存