操作系统-实验一、编译Linux内核

  • 实验目的

(1)学习重新编译Linux 内核的方法。

(2)理解 Linux标准内核和发行版本内核的区别。

  • 实验内容

在Linux 系统中下载同一发行版本的版本号较高的内核,编译之后运行自己编译的内

核,并使用unamer命令查看是否运行成功由于不同版本的内核在编译过程中可能出现

不同的问题,本书推荐的内核版本为 4.16.10。从第7章开始的进阶实验篇,都可以选用该

版本的内核。

  • 实验步骤

(1)查看内核版本

(2)下载内核。

我下载的内核版本是5.4.100。

下载网址:Index of /pub/linux/kernel/

通过使用共享文件夹可将windows上的文件上传到Linux系统中。

(3)解压

将压缩包解压到/usr/src目录下

# tar xf linux-5.4.100.tar.gz -C /usr/src

跳转该目录,查看有没有解压成功

(4)配置内核

# cd linux-5.4.100

进入解压后的内核版本目录,执行下列命令

# make menuconfig

(5)编译内核

# make -j8

编译完成:

(6)编译和安装模块

# make modules

# make modules_install

完成上述操作后

(7)安装内核

# make install

(8)重新启动,检查新内核

可以看到内核版本为5.4.100

  • 实验结果

五、实验总结

1.遇到的问题及相应的解决方案

问题1:权限不够,在进行make时,出现权限不够的错误

解决方法:改为root模式

sudo su

问题2:缺少必要的编译工具和依赖项。

解决方案:在开始编译之前,为系统上已安装了必要的编译工具和依赖项。可以使用以下命令安装它们。例如:

apt-get install vim

apt-get instal Iibncurses5-aev

apt-get install libssl-dev

问题3:内核配置错误或丢失。

解决方案:在编译之前,需要进行内核配置。可以通过复制现有的内核配置文件(一般位于/boot/config-<kernel_version>)作为基础,并使用以下命令进入配置界面:

make menuconfig

问题4:编译过程中出现编译错误或警告。

解决方案:编译错误或警告可能是由于系统环境、软件版本或配置错误引起的。可以根据错误信息尝试解决问题,例如检查相关依赖项、更新软件版本或修改配置选项。有时,搜索相关错误信息和解决方案也能提供帮助。

问题5:编译时间过长或占用过多资源。

解决方案:编译Linux内核可能需要较长时间,并占用大量系统资源。可以考虑使用多线程编译来加快编译速度,例如使用make -j<N>命令,其中<N>是你系统上可用的处理器核心数量。由于我的虚拟机是2核4进程,故我采用make -j8进行编译。

2.总结体会:

编译Linux内核模块主要步骤如下:

1、获取 Linux 内核的源代码。可以从官方网站下载最新的稳定版本,亦或是其他网站如GitHub等。

2、安装所需的工具和依赖项如编译 Linux 内核需要一些工具和依赖项。

3、配置内核,进入内核源代码目录,运行make menuconfig 命令启动内核配置界面。在此界面中,选择配置内核的各种选项,包括硬件支持、功能选项和模块等。完成配置后,保存配置文件并退出。

4、运行 make 命令来编译内核。编译过程可能需要一段时间,取决于系统性能和配置选项。

5、编译完成后,你可以运行 make install 命令来安装内核,将编译好的内核安装到系统中。这将把内核映像文件复制到适当的位置,并进行必要的设置。

6、完成上述步骤后,即可重新启动系统。系统将使用新编译的内核启动。

实验总体进行下来还是比较简单和顺利的,但也有一些值得注意的地方需要总结:

(1)Linux是以用户和组来管理权限的,如果你使用的账户权限不够,那么有些动作你是做不了的,例如重启服务器(reboot 命令)。这时候就需要sudo命令了,sudo的全称为:super user do,是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具。当实验过程中有些命令无法正确执行时,务必不要遗忘加上sudo。

(2)一定要给虚拟机留下充足的磁盘空间,身边就有同学编译到最后发现空间不足而功亏一篑。

(3)在make的过程中还是会经常出现一些缺包的错误的,但往往需要等到编译结束才会知晓。可以在编译之前进行充分的资料查阅工作,以尽量减少反复的编译。(毕竟编译时间还是不短的)

通过本次实验,我熟悉了Linux内核编译的具体操作,为之后的实验做好了基础工作。

  • 38
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值