大家好,欢迎来到IT知识分享网。
实验介绍
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的系统调用,加油!
文章发布仓促,如有错误,敬请批评指正!后续将会有更加优质的作品。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/22505.html