type
status
date
slug
summary
tags
category
icon
password
Property
Sep 4, 2022 01:53 PM
原创文章
✨开篇
中国大学 Mooc 里有一门操作系统的课程,这门课程是哈工大的李治军老师开设的。学过的同学都说好,听了几节课后,我也心里默默感叹,知乎网友诚不欺我!李老师经常说的一句话,“学习操作系统就是要 Coding them!”,很经典,也很科学!
编译操作系统,是对之进行修改的第一步了,因此,今天特地来补一个作业,编译一个 linux 内核,写篇博客以作记录。
📝工具准备
安装新的虚拟机
因为不清楚编译过程中会发生什么,我新建了一个虚拟机,用的是 Ubantu, 需要下载的同学点击进入官网下载。
这里记得把空间给多一些,至少多余 20GB,分配了 4 个核。至于为什么,你可以看到下面两位前辈的数据,一个是 2GB RAM + 双核处理器,拷贝下来单个核目录空间花费是 1691MB 花费空间超过 15GB;另一位 4GB + 双核处理器,花费时间 2 小时 20 分钟。空间上至少我们要给到 20GB, 防止放不下生成的 *.o 类型的目标文件而产生链接错误,多核来加快编译速度。下图来自 Ubantu 论坛(这里缺少一个图片地址)
下载内核
- 首先内核下载源码。由于连接问题,我在本地下载好用 Winscp 传过去了。
- 接着安装必要的工具
- 进去文件夹进行解压
解压前大小:
解压后
- 进入我们解压得到的文件夹,拷贝当前内核的配置文件(至少确定这样配置编译出来的系统是可以运行的):
- 现在我们有一个配置文件了,输入命令 `make munuconfig` 命令打开一个配置工具,这个工具可以帮助我们查看所有的可用模块,在这里你可以启用或者禁用一些模块。
- 这里我配置不做修改,改了文件名字,单纯的编译一下。
正在编译:
一个小时左右,编译完成
🔑总结归纳
目前只是走了一个流程,距离制作出一个能用的 ISO 文件还有一段距离
参考文章
致谢:
有关Notion安装或者使用上的问题,欢迎您在底部评论区留言,一起交流~
- 作者:伯涵
- 链接:https://bohnbro.cn/article/compileKernal
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。