夫既心识其所以然而不能然者,内外不一,心手不相应,不学之过也。故凡有见于中而操之不熟者,平居自视了然,而临事忽焉丧之,岂独竹乎?
本学期的实验安排¶
本学期的实验设计和之前几届的大致相同,但会结合前几届的经验和反馈进行调整和优化。实验的目的是让大家加深对操作系统诸概念和技术的理解。请大家务必认真完成实验,这是大家掌握操作系统重难点的绝佳机会。我们会在每个实验文档中尽可能给到精炼而有用的引导,帮助大家顺利完成实验。
- 每个实验页面开通了评论区,欢迎大家在评论区留下你对实验的思考或见解;
- 每个实验的评分标准(包含 bonus 在内)以各个实验文档内的说明为准;
- 每个实验的提交截止时间以课程主页首页为准,如无特殊情况,迟交将会影响当次实验的最终成绩;
- 本学期各实验要求使用 C/C++/Rust 语言编写,不允许使用 Go 语言,具体要求将在后文详述;
- 本学期各实验的考察内容和技能要求如下,实验所考察的知识和课程进度同步,所需的编程技能可能需要靠自己掌握。
实验 | 主题 | 考察知识 | 所需技能 |
---|---|---|---|
实验零 | 预备知识 | Git、markdown、Rust/C++/C、Linux | 阅读文档的能力 |
实验一 | 裁剪 Linux 内核 | Linux 启动过程、内核模块 | make、makefile 基础 |
实验二 | 编写 Shell 程序 | fork 等 syscall、I/O 重定向、进程、中断 | syscall 使用、中断处理 |
实验三 | 并发编程 | 多路复用、进程与线程 | 多线程、I/O 相关 syscall |
实验四 | 分布式计算系统或存储系统的部署 | 系统集群的配置、性能度量、安全性监控 | 虚拟技术、设计性能分析方案 |
欢迎来到实验零¶
现在,欢迎大家来到 OSH 2023 的实验零。这个实验的目的是教会大家使用 OS 课程的工具链,主要包含如下内容:
- 使用 Linux 作为实验的主要环境
- 使用 Git 维护自己的代码版本
- 使用 markdown 来编写美观、规范的文档
- 使用 C/C++/Rust 编写程序的要求、规范和注意事项
每个小节的最后可能有若干「必做」练习需要完成,请注意提交。
注意:除了标明「必做」的部分外,实验零的完成情况不计入最终实验得分,但是助教会随机抽查,针对完成的较差的同学给予提醒和帮助。你可以通过在本页面搜索「必做」来查询所有的此类事项。
实验零完成后,你应该创建了一个 osh-2023-labs 作业仓库,并且具有这样的结构:
osh-2023-labs
- README.md
- lab0
- src
- [pic] // src 文件夹存放图片,图片名字随意
- markdown.md
- linux.md