iis服务器助手广告广告
返回顶部
首页 > 资讯 > 操作系统 >linux编译内核的原因是什么
  • 659
分享到

linux编译内核的原因是什么

linux 2023-04-06 05:04:03 659人浏览 泡泡鱼
摘要

这篇文章主要讲解了“linux编译内核的原因是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“linux编译内核的原因是什么”吧!

这篇文章主要讲解了“linux编译内核的原因是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“linux编译内核的原因是什么”吧!

原因:新的内核修订了旧内核的bug,并增加了许多新的特性;如果用户想要使用这些新特性,或想根据自己的系统度身定制一个更高效,更稳定的内核,就需要重新编译Linux内核。通常,更新的内核会支持更多的硬件,具备更好的进程管理能力,运行速度更快、 更稳定,并且一般会修复老版本中发现的许多漏洞等,经常性地选择升级更新的系统内核是Linux使用者的必要操作内容。

为什么要编译Linux内核?

新的内核修订了旧内核的bug,并增加了许多新的特性。如果用户想要使用这些新特性,或想根据自己的系统度身定制一个更高效,更稳定的内核,就需要重新编译Linux内核。

通常,更新的内核会支持更多的硬件,具备更好的进程管理能力,运行速度更快、 更稳定,并且一般会修复老版本中发现的许多漏洞等,经常性地选择升级更新的系统内核是Linux使用者的必要操作内容。

为了正确的合理地设置内核编译配置选项,从而只编译系统需要的功能的代码,一般主要有下面四个考虑:

  • (1)自己定制编译的内核运行更快(具有更少的代码)

  • (2)系统将拥有更多的内存(内核部分将不会被交换到虚拟内存中)

  • (3)不需要的功能编译进入内核可能会增加被系统攻击者利用的漏洞

  • (4) 将某种功能编译为模块方式会比编译到内核内的方式速度要慢一些

这类编译的目的主要是通过编译来了解Linux内核编译的过程,熟悉内核的工作原理,甚至还可以尝试进行一些修改。
编译只是将源码编译成程序,不会替换当前的系统,也不会影响当前系统的运行。

编译内核可能是出于某种需求,比如对内核大小有要求,去掉内核中某些用不到的部分,这种场景往往是嵌入式系统。
或者自己修改了某部分内核代码,需要编译后验证功能。

模块编译时将某些功能模块编译成 .ko 可以在不重新编译内核的情况下,insmod xxx.ko 到系统中使用编写的代码功能。
编译内核后不会替换当前内核,编译后的新内核往往在类似下面的目录下,名字大都是 bzImage

/usr/src/kernels/3.xx.x-.x86_64/arch/x86/boot/

然后可以编辑系统的 grub list 添加最新的内核来用它

新内核集成了新驱动,比如Intel核显:    /lib/modules/`uname -r`/kernel/drivers/gpu/drm/i915/i915.ko

一个系统可以安装多个内核,比如启动文件,新内核不会覆盖旧内核:

/boot/vmlinuz-VERSioN
/boot/initrd.img-VERSION

安装新内核过程中,一些内核模块需要重新编译,比如VirtualBox:

/lib/modules/`uname -r`/updates/dkms/vboxdrv.ko

如果新内核运行不正常,可以在开机GRUB引导里选择旧内核启动。

也可以这样改回原来使用的内核:

ln -sf /boot/vmlinuz-VERSION /vmlinuz
ln -sf /boot/initrd.img-VERSION /initrd.img

其中VERSION是原来内核的版本。

编译一个Linux内核‍

整个内核编译的过程非常简单,但是内核编译需要花费比较长的时间。这主要是因为内核的代码非常多。当然,如果你的计算机性能强劲,时间会短很多。另外需要注意的是,建议在虚拟机环境下编译,这样避免错误导致系统问题。如果在虚拟机测试建议系统分区和内核源代码分区的大小大于20GB。

Step 1: 下载源代码

1、 进入Linux 内核的官网,下载最新版本,或者其它版本的内核代码。这里是源代码的压缩包。

linux编译内核的原因是什么

2、假设我们现在在一个Linux操作系统中,在命令行输入如下命令就可以下载内核了。

wget 链接(由于链接会被认为是广告,本文省略链接,请自行复制)

在下载的过程中可以看到下载进度,下载完成后信息大致如下所示。

linux编译内核的原因是什么

Step 2: 解压源代码

压缩包下载完成后,可以通过tar命令解压。

tar xvf linux-5.9.6.tar.xz

在解压的时候可以看到文件列表,这个会很多,可能需要等一会儿。

linux编译内核的原因是什么

Step 3: 安装需要的软件包

安装编译工具以及其它一下依赖的软件包,在ubuntu 18.04环境下执行如下命令。

sudo apt-get install git fakeroot build-essential ncurses-dev xz-utils libssl-dev bc flex libelf-dev bison

如果一切顺利,大概安装输出信息如下所示。

linux编译内核的原因是什么

Step 4: 配置内核代码

在编译内核之前,我们可以对内核源代码进行配置。配置的目的主要是确定哪些模块会编译到内核当中。

1. 进入源代码目录

cd linux-5.9.6

2. 从当前机器的启动目录拷贝配置信息到源代码目录。这步操作的意思是我们编译内核的配置采用用当前环境一致的配置。

cp -v /boot/config-$(uname -r) .config

linux编译内核的原因是什么

3. 可以通过如下命令启动配置界面

make menuconfig

该命令会运行一些脚本,然后打开一个配置界面

linux编译内核的原因是什么

4. 下面是打开的配置界面。可以看出里面包含所有的内核组件,包括文件系统,网络,IO栈,虚拟化和设备驱动等等。如果你不熟悉,可以不做任何修改。

linux编译内核的原因是什么

Step 5: 编译内核

1. 通过如下命令就可以编译内核了

make -j 10

上面参数是并发数量,通常可以是CPU的2倍。

linux编译内核的原因是什么

2. 安装模块

sudo make modules_install

linux编译内核的原因是什么

3. 安装内核

sudo make install

安装完成后会有如下提示信息。

linux编译内核的原因是什么

Step 6: 重启,验证版本

当上述步骤都没有出错的情况下,我们重启一下计算机,然后运行如下命令。

uname -mrs

此时就可以看到内核版本已经是我们编译的版本了。

linux编译内核的原因是什么

结论‍

通过上面几步,我们可以很简单的编译一个内核。如果后面开发内核模块,也是要基于内核代码树的,因此这个是内核开发的基础。

可能遇到的问题‍

编译内核的时候可能会遇到这个问题:

没有规则可制作目标
debian/certs/debian-uefi-certs.pem,由certs/x509_certificate_list需求停止

在要编译的内核目录下编辑一下配置文件即可。简单的方式是执行如下命令

vim .config

然后找到
CONFIG_SYSTEM_TRUSTED_KEYS,将其设置为空,也就是下面这个样子。

CONFIG_SYSTEM_TRUSTED_KEYS=”

感谢各位的阅读,以上就是“linux编译内核的原因是什么”的内容了,经过本文的学习后,相信大家对linux编译内核的原因是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: linux编译内核的原因是什么

本文链接: https://www.lsjlt.com/news/201298.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • linux编译内核的原因是什么
    这篇文章主要讲解了“linux编译内核的原因是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“linux编译内核的原因是什么”吧! ...
    99+
    2023-04-06
    linux
  • linux编译内核的步骤是什么
    编译Linux内核的步骤如下:1. 获取内核源代码:从官方网站或开源社区下载最新版本的Linux内核源代码。2. 安装编译工具:确保...
    99+
    2023-10-07
    linux
  • linux内核编译的步骤是什么
    Linux内核编译的步骤如下: 获取内核源代码:可以从官方网站下载最新版本的内核源代码,也可以从GitHub等开源社区获取。 ...
    99+
    2024-02-29
    linux
  • linux内核编译安装的方法是什么
    Linux内核编译安装的方法如下:1. 下载内核源代码:在Linux官方网站(https://www.kernel.org/)或其他...
    99+
    2023-09-25
    Linux
  • linux要编译源码的原因是什么
    本篇内容介绍了“linux要编译源码的原因是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2023-03-19
    linux
  • 怎么编译Linux内核
    这篇文章主要为大家展示了“怎么编译Linux内核”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“怎么编译Linux内核”这篇文章吧。下载内核我们要做的***件事是下载内核源码。在 Kernel.o...
    99+
    2023-06-16
  • Linux内核崩溃崩溃的原因是什么
    今天就跟大家聊聊有关Linux内核崩溃崩溃的原因是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。 原理Linux内核发送崩溃时,kdump会生成一个内核转储文件vmco...
    99+
    2023-06-15
  • ubuntu编译内核的方法是什么
    要编译Ubuntu内核,可以按照以下步骤进行操作:1. 安装编译所需的依赖项:```sudo apt-get install git...
    99+
    2023-10-08
    ubuntu
  • Linux编译内核的过程
    本篇内容主要讲解“Linux编译内核的过程”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux编译内核的过程”吧!Linux编译内核 准备工作 通常要运行的第一个命令是: #cd /usr/...
    99+
    2023-06-13
  • 如何编译Linux内核
    这篇文章给大家分享的是有关如何编译Linux内核的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在计算机世界里,内核kernel是处理硬件与一般系统之间通信的低阶软件low-level software。除过一些烧...
    99+
    2023-06-16
  • linux内核编译怎么优化
    编译 Linux 内核时,可以采取以下几种优化措施来提高性能: 选择合适的配置选项:根据硬件平台和特定要求,选择适合的配置选项。...
    99+
    2024-02-29
    linux
  • linux怎么在2.6内核中编译内核模块
    这篇文章主要介绍linux怎么在2.6内核中编译内核模块,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!编译内核模块的方法与编译一般应用程序的方法略有不同. 我们会发现在内核源码树的层层目录中, 都存在有Makefil...
    99+
    2023-06-16
  • Linux内核怎么编译和安装
    这篇文章主要介绍“Linux内核怎么编译和安装”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Linux内核怎么编译和安装”文章能帮助大家解决问题。Linux内核介绍Linux发行版是在Linux内核...
    99+
    2023-06-28
  • Linux内核编译的示例分析
    小编给大家分享一下Linux内核编译的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!   下载源代码Linux内核总是不断发展的,***的内核K...
    99+
    2023-06-16
  • linux交叉编译的原理是什么
    本篇内容主要讲解“linux交叉编译的原理是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“linux交叉编译的原理是什么”吧!在linux中,交叉编译是指在一个平台上生成另一个平台上的可执行...
    99+
    2023-06-30
  • 如何理解Linux内核编译
    这篇文章给大家介绍如何理解Linux内核编译,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一、前言(仅供参考)linux内核该如何学习安装vmware虚拟机或者virtualbox,再安装发行版本linuxwww.ke...
    99+
    2023-06-15
  • ubuntu上编译Linux内核步骤
     一、虚拟机的准备 1.下载Ubuntu镜像 Enterprise Open Source and Linux | Ubuntu 在最左边Ubuntu Desktop处点22.04LTS下载iso文件 2.在VMware上创建新的虚拟机 U...
    99+
    2023-10-03
    linux 运维 服务器 ubuntu
  • linux内核锁的实现原理是什么
    Linux内核锁的实现原理是通过硬件的原子操作指令或者特殊的指令序列来保证对共享资源的原子操作,从而实现线程之间的同步和互斥。Lin...
    99+
    2023-10-21
    linux
  • Linux内核的运行原理是什么呢
    Linux内核的运行原理是什么呢,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。众所周知的是,几乎整个互联网都运行在 Linux 上,从网络协议,到服务器,到你平常访问的绝大多数...
    99+
    2023-06-16
  • Linux中服务器软件需要编译安装的原因是什么
    Linux中服务器软件需要编译安装的原因是:1、软件在编译期间需要配置,如nginx,需要在编译时指定包含哪些module;2、软件需要统一安装路径,编译安装能方便指定路径;3、对于geek来说需要最新的版本,所以需要编译安装。具体内容如下...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作