简介¶
本次实验我们将学习如何编译和裁剪 Linux 内核。作为操作系统的核心,内核是操作系统中最重要和最基本的部分,这次实验将帮助同学们加深对操作系统的理解和认识。本次实验具体分为下面三个小节:
- 编译 Linux,并裁剪内核
- 创建初始内存盘
- 添加一个自定义的 Linux syscall
每个小节的最后可能有若干「可选」练习,不完成这些练习亦可获得满分。
注意:你可以通过在页面搜索「可选」来查询所有的此类事项。
实验一完成后,你的 osh-2023-labs 作业仓库应具有这样的结构:
osh-2023-labs
- README.md
- lab0
- lab1
- README.md // 可选,建议在此文件中介绍你的实验过程
- syscall
- bzImage
- initrd.c
- riscv/arm/... // 可选,该目录命名为选择的交叉编译的平台(如选择 arm 则命名为 arm)
- bzImage // 交叉编译得到的内核镜像文件
- bzImage
- .config // 可选,编译内核时的配置文件
- initrd.cpio.gz
实验一共分为三个小节,分值各占总分数的 40%、20%、40%。你最多获得 105% 的分数,其中包含 5% 的可选项得分,这一项得分是取所有你完成的「可选」项的最高分。
实验平台提示
按实验零的要求,我们建议同学们在 vlab 平台或虚拟机上进行课程实验,以免对自己的机器系统造成破坏。
如何提问?
- 提问前,请先阅读报错信息,或查询必应等搜索引擎;
- 向助教提问时,请详细描述问题,并提供相关指令及相关问题的报错截图,如果涉及系统问题请提供系统版本;
- 欢迎大家在实验文档评论区、课程群内讨论实验的相关问题,你的提问可能会解决他人同样的问题。