跳转至

  夫既心识其所以然而不能然者,内外不一,心手不相应,不学之过也。故凡有见于中而操之不熟者,平居自视了然,而临事忽焉丧之,岂独竹乎?

本学期的实验安排

本学期的实验设计和之前几届的大致相同,但会结合前几届的经验和反馈进行调整和优化。实验的目的是让大家加深对操作系统诸概念和技术的理解。请大家务必认真完成实验,这是大家掌握操作系统重难点的绝佳机会。我们会在每个实验文档中尽可能给到精炼而有用的引导,帮助大家顺利完成实验。

  • 每个实验页面开通了评论区,欢迎大家在评论区留下你对实验的思考或见解;
  • 每个实验的评分标准(包含 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 课程的工具链,主要包含如下内容:

  1. 使用 Linux 作为实验的主要环境
  2. 使用 Git 维护自己的代码版本
  3. 使用 markdown 来编写美观、规范的文档
  4. 使用 C/C++/Rust 编写程序的要求、规范和注意事项

每个小节的最后可能有若干「必做」练习需要完成,请注意提交。

注意:除了标明「必做」的部分外,实验零的完成情况不计入最终实验得分,但是助教会随机抽查,针对完成的较差的同学给予提醒和帮助。你可以通过在本页面搜索「必做」来查询所有的此类事项。

实验零完成后,你应该创建了一个 osh-2023-labs 作业仓库,并且具有这样的结构:

osh-2023-labs
- README.md
- lab0
  - src
    - [pic] // src 文件夹存放图片,图片名字随意
  - markdown.md
  - linux.md