1 操作系统的内核与发行版
首先简单解释一下操作系统的内核和发行版。
内核是管理 CPU、内存、磁盘、进程、中断、文件系统和网络协议栈的程序。
用户对内核感知度不高,因为用户只需要应用程序。比如某人迷恋日本电影,ta 并不在乎内核,ta 需要的只是一个播放器,这怎么办呢?于是就有好事者在内核之外预安装了一个播放器给 ta 使用,随着类似的需求不断增多,预安装的程序也越来越多,逐渐就发展成了内核和应用程序集的”结合体”,这个”结合体”我们就称之为操作系统的发行版,比如我们耳熟能详的 Red Hat、CentOS、Ubuntu 都属于操作系统的发行版。
本节我们将讨论如何升级 linux 内核,常见内核升级方式有如下三种,读者可根据喜好自由选择:
- 在线升级
- 离线升级
- 定制升级
2 查看内核版本
使用如下命令查看当前内核版本:
# uname -r
命令执行结果如下所示:
[root@localhost ~]# uname -r
3.10.0-327.el7.x86_64
3 在线升级
使用 yum 在线升级是最安全的升级方式,因为使用该方式升级的版本是经过厂商验证过的版本,虽然它并不是最新的,但却是最稳定的。
# yum install -y kernel
4 手动升级
手动升级是一件比较刺激的事情,升级前需要到 linux 内核网站 下载指定版本的内核包:
4.1 下载安装包
手动升级采用 4.x 版本,下载网址请点击。
4.2 解压缩安装包
# tar -zxvf linux-4.14.tar.gz
4.3 编译安装步骤
编译安装步骤如下,只需一步一步执行即可。
# yum install -y gcc bc openssl-devel perl
# make mrproper # 删除编译生成的文件,包括内核配置文件和各种配置文件,一般只在第一次执行内核编译前才使用此命令
# make oldconfig # 使用原有的内核配置。执行过程中需要交互,一路回车即可
# make # 编译源码。所有执行操作中最耗时的部分。你可以睡个午觉
# make modules_install # 将编译出的内核模块复制到 /lib/modules
# make install # make是编译;make install 安装到指定位置(/boot)
4.4 重启
编译安装后重启系统,发现 4.14 版本已经成功安装,如下图所示:
5 定制升级
上面在线升级方式升级的版本一般较老,如果既想在线安装,又想指定版本,可采用定制升级。
5.1 安装 elrepo yum 源
elrepo 是 CentOS 稳定的软件源,可以通过它将内核升级到指定版本,elrepo 网址请点击:
# yum install -y https://www.elrepo.org/elrepo-release-7.0-4.el7.elrepo.noarch.rpm
5.2 查看内核版本列表
# yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
5.3 升级内核
elrepo 源有ml、lt两种内核。ml(mainline)为最新版本的内核,lt为长期支持的内核,我们选择 ml。
# yum --enablerepo=elrepo-kernel -y install kernel-ml
5.4 修改内核启动顺序
修改 /etc/default/grub 文件,将 GRUB_DEFAULT 值改为 0:
编辑完后,执行如下命令让配置生效:
# grub2-mkconfig -o /boot/grub2/grub.cfg
5.5 重启系统
执行 reboot 命令完成定制升级。
# reboot