0


HDU操作系统 实验1.1——掌握Linux内核的编译和安装

实验介绍

本实验通过修改Linux内核源码,添加新的Linux系统调用,替换编译后内核,并测试结果,了解Linux内核源码的编译方法和内核的安装方法,系统调用的概念、编写步骤和调用方法。

实验目的

  • 学习掌握Linux内核的编译和启用
  • 学习掌握如何添加Linux的系统调用
  • 学习掌握测试Linux系统调用

这篇文章主要为实验1的第一部分:掌握Linux内核的编译和安装

实验准备:VMware,OpenEuler操作系统

(提示:在VMware中进行实验可直接在OpenEuler终端中进行操作,不要在VMware中进行ssh远程登录华为云的鲲鹏服务器,这样就会产生套娃情况。虚拟机的OpenEuler操作系统为x86_64,而用华为云登录的鲲鹏服务器为arm64,不仅可以与老师极限拉扯,而且在后续的编译内核时可能会出现error。本实验全程在VMware OpenEuler21.09操作系统本地服务器的环境下进行,如图:)

实验操作

1.登录系统并查看当前内核版本:

2.安装工具,构建开发环境:

依次输入:(前缀sudo为管理员模式下安装,可以避免一些拒绝访问等情况)

sudo yum group install -y "Development Tools"
sudo yum install -y bc
sudo yum install -y openssl-devel

3.备份boot目录以防后续步骤更新内核失败

sudo tar czvf boot.origin.tgz /boot/
uname -r > uname_r.log

4.获取内核源代码并解压

依次输入:(如没有权限就前缀sudo)

wget https://gitee.com/openeuler/kernel/repository/archive/kernel-4.19.zip
unzip kernel-4.19.zip

5.编译内核

在解压完成之后,建议输入ls查看当前目录下的文件名,部分同学直接输入cd kernel后可能会提示该文件不存在。

如图,查询后可知解压后的文件名为kernel-kernel-4.19

依次输入:

cd kernel-kernel-4.19
make openeuler_defconfig

输入:

make help | grep Image

不同的服务器会得到不同的可编译的Image,下图1.为华为鲲鹏云服务器,标红字符为Image.gz和Image;下图2.为VMware本地虚拟机服务器,标红字符为bzImage。图一在安装内核时可能会报错。这就是为什么在开始提示要在本地服务器上进行实验。

之后输入:

 make -j 4 bzImage modules

这里 4 为线程数量,先查一查自己电脑的线程总数,一般以4线程为准,配置高的可以使用8线程。

这时会提醒出现了错误,分析原因为:please install libelf-dev, libelf-devel or elfutils-libelf-devel

这里选择输入

sudo yum install elfutils-libelf-devel

安装完成后再次输入:

 make -j 4 bzImage modules

接下来的过程就会比较漫长,根据电脑的性能不同大约20分钟可以编译完毕 ,图为安装过程

6.安装内核

依次输入:

 sudo make modules_install
 sudo make install

7.重启系统登录并验证

reboot重启系统,此时可以看到出现了这个新编译出来的内核,回车启动系统

输入:

uname -r

查看内核版本,可以看出版本内核已经更新

OK!到现在,实验1的第一部分已经全部完成,我们已经学习掌握Linux内核的编译和启用,接下来就要开始学习Linux的系统调用,加油!

文章发布仓促,如有错误,敬请批评指正!后续将会有更加优质的作品。

标签: 系统架构 linux

本文转载自: https://blog.csdn.net/weixin_53621503/article/details/123832515
版权归原作者 The_shyMoon 所有, 如有侵权,请联系我们删除。

“HDU操作系统 实验1.1——掌握Linux内核的编译和安装”的评论:

还没有评论