【操作系统】实验三 编译 Linux 内核

简介: 【操作系统】实验三 编译 Linux 内核

😘欢迎关注:👍点赞🙌收藏✍️留言

🏇码字不易,你的👍点赞🙌收藏❤️关注对我真的很重要,有问题可在评论区提出,感谢支持!!!

实验三

实验内容

  1. 实验名称:编译 Linux 内核
  2. 实验任务:
  • 学习怎样重新编译 Linux 内核。
  • 理解、掌握 Linux 标准内核和发行版本内核的区别。
  • 在 root 权限下,下载 Linux 内核并解压到相应路径下;选择基于文本菜单的配置界面,安装支持编译的相关命令并对 Linux 内核进行编译;安装内核模块及核心后重启虚拟机,查看内核安装情况。
  1. 实验环境
    虚拟机软件:Vmware Workstation
    Linux 发行版:Ubuntu 内置内核:linux 5.15.0
    待编译内核:linux 5.15.1

实验过程

1 搭建编译环境,如图1所示。

下面代码是需要安装的工具。

sudo apt install gcc g++ gdb make

sudo apt-get update

sudo apt-get install flex

sudo apt-get install bison

sudo apt-get install libncurses-dev

sudo apt-get install build-essential

sudo apt-get install kernel-package

sudo apt-get install libssl-dev

sudo apt-get install libc6-dev

sudo apt-get install bin86

sudo apt-get install qttools5-dev

sudo apt-get install libelf-dev

图1 安装工具

2 在镜像网站下载 Linux 内核源码,下载的源码包为 linux-5.15.1.tar.gz,如图2所示。

图2 下载Linux内核源码

3 在指定目录下解压内核源码,如图3所示。

步骤如下:

① cd /usr/src/

② sudo tar -zxvf /usr/src/linux-5.15.1.tar.gz


图3 解压内核源码

4 进入目录文件夹配置编译参数,在已有内核编译参数和已有内核的基础上进行配置,配置完成后源码根目录下会生成.config 文件,如图4所示。

图4 配置编译参数

步骤如下:

① 然后修改./.config文件参数

② 按/ , 搜索 CONFIG_SYSTEM_TRUSTED_KEYS和CONFIG_SYSTEM_REVOCATION_KEYS, 删除这两条引号中的内容(而不包括引号). 记得保存

5 进入源码根目录,编译内核,如图5所示。

sudo make -j4

编译成功

图5 编译内核

6 把编译产生的源码生成的可执行文件放置到相应的目录下,将新内核注册给引导程序,完成内核安装,如图6、7所示。

图6 执行sudo make modules_install命令

图7 执行sudo make install命令

7 重启虚拟机,选择从新内核进入系统,如图8所示。

reboot

可以看到编译内核后的结果,虚拟机的操作系统中出现了新的内核。

图8 重启机器

实验小结:

本次实验旨在学习重新编译 Linux 内核的方法,以及理解 Linux 标准内核和发行版本内核的区别。在实验过程中,我们使用 root 权限下载 Linux 内核并解压到相应路径下,然后选择基于文本菜单的配置界面进行编译。在安装支持编译的相关命令后,我们对 Linux 内核进行了编译,并安装了内核模块和核心。最后,我们重启了虚拟机并查看了内核安装情况。

存在问题:

在编译 Linux 内核时,可能会遇到一些问题,例如缺少必要的依赖库或编译器等。此外,在安装内核模块和核心时,也可能会遇到一些问题,例如文件权限不足或安装路径不正确等。

注意事项:

在编译 Linux 内核之前,需要确保系统中已经安装了必要的依赖库和编译器,并关闭了不必要的服务和进程,以避免编译过程中出现错误。在安装内核模块和核心时,需要确保文件权限足够,并且安装路径正确。

有待提高的能力:

在实验过程中,我们需要掌握 Linux 内核的配置和编译方法,以及安装内核模块和核心的方法。此外,我们还需要熟悉 Linux 系统中常见的命令和操作方法,以便更好地完成实验任务。

目录
打赏
0
1
1
0
38
分享
相关文章
Linux 操作系统
在 Linux 中,UID(用户 ID)是标识用户身份的重要概念。UID 唯一标识每个用户,通过 UID 可区分不同用户类别:UID 0 为超级用户,1-999 为系统用户,1000 及以上为普通用户。因此,正确选项为:UID 标识用户、可区分用户类别、普通用户 UID 大于 1000。
Linux系统查看操作系统版本信息、CPU信息、模块信息
在Linux系统中,常用命令可帮助用户查看操作系统版本、CPU信息和模块信息
111 23
深入解析操作系统控制台:阿里云Alibaba Cloud Linux(Alinux)的运维利器
本文将详细介绍阿里云的Alibaba Cloud Linux操作系统控制台的功能和优势。
67 6
Intel Linux 内核测试套件-LKVS介绍 | 龙蜥大讲堂104期
《Intel Linux内核测试套件-LKVS介绍》(龙蜥大讲堂104期)主要介绍了LKVS的定义、使用方法、测试范围、典型案例及其优势。LKVS是轻量级、低耦合且高代码覆盖率的测试工具,涵盖20多个硬件和内核属性,已开源并集成到多个社区CICD系统中。课程详细讲解了如何使用LKVS进行CPU、电源管理和安全特性(如TDX、CET)的测试,并展示了其在实际应用中的价值。
云上体验最佳的服务器操作系统 - Alibaba Cloud Linux | 飞天技术沙龙-CentOS 迁移替换专场
本次方案的主题是云上体验最佳的服务器操作系统 - Alibaba Cloud Linux ,从 Alibaba Cloud Linux 的产生背景、产品优势以及云上用户使用它享受的技术红利等方面详细进行了介绍。同时,通过国内某社交平台、某快递企业、某手机客户大数据业务 3 大案例,成功助力客户实现弹性扩容能力提升、性能提升、降本增效。 1. 背景介绍 2. 产品介绍 3. 案例分享
Ubuntu20.04搭建嵌入式linux网络加载内核、设备树和根文件系统
使用上述U-Boot命令配置并启动嵌入式设备。如果配置正确,设备将通过TFTP加载内核和设备树,并通过NFS挂载根文件系统。
97 15
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
本指南介绍如何利用 HTA 文件和 Metasploit 框架进行渗透测试。通过创建反向 shell、生成 HTA 文件、设置 HTTP 服务器和发送文件,最终实现对目标系统的控制。适用于教育目的,需合法授权。
89 9
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
|
2月前
|
golang编译成Linux可运行文件
本文介绍了如何在 Linux 上编译和运行 Golang 程序,涵盖了本地编译和交叉编译的步骤。通过这些步骤,您可以轻松地将 Golang 程序编译成适合 Linux 平台的可执行文件,并在目标服务器上运行。掌握这些技巧,可以提高开发和部署 Golang 应用的效率。
273 14
深入探索Linux内核的内存管理机制
本文旨在为读者提供对Linux操作系统内核中内存管理机制的深入理解。通过探讨Linux内核如何高效地分配、回收和优化内存资源,我们揭示了这一复杂系统背后的原理及其对系统性能的影响。不同于常规的摘要,本文将直接进入主题,不包含背景信息或研究目的等标准部分,而是专注于技术细节和实际操作。
OS Copilot-操作系统智能助手-Linux新手小白的福音
OS Copilot 是阿里云推出的一款操作系统智能助手,专为Linux新手设计,支持自然语言问答、辅助命令执行和系统运维调优等功能。通过简单的命令行操作,用户可以快速获取所需信息并执行任务,极大提升了Linux系统的使用效率。安装步骤简单,只需在阿里云服务器上运行几条命令即可完成部署。使用过程中,OS Copilot不仅能帮助查找命令,还能处理文件和复杂场景,显著节省了查找资料的时间。体验中发现,部分输出格式和偶尔出现的英文提示有待优化,但整体非常实用,特别适合Linux初学者。
50 10
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等