操作系统实验指导书 - 2025秋 | 哈工大(深圳)¶
声明
本课程资料仅限于哈尔滨工业大学(深圳)《操作系统》2025课程实验使用,如有其他用途,请联系夏文老师:xiawen@hit.edu.cn。
注意事项
请同学们遵守学术诚信(What is Academic Integrity)。 你可能会在同一个时间段内需要完成多项课程任务,或者准备考试,或者其他……但是,无论你处于何种程度的压力之下,我们都希望你能做到管理好时间,以诚实正直的态度来完成课程实验。
0. 导读¶
本实验文档为哈尔滨工业大学(深圳)《操作系统》课程实验指导材料。页面顶端为实验的指导书,页面左侧为指导书的各个小节目录,右侧为小节内的索引,页面右上角可详细搜索。
本学期《操作系统》课程共设置6次实验课,涵盖5个实验项目,总计24个学时。前四个实验项目均以开源操作系统xv6为基础,但已根据哈尔滨工业大学(深圳)的课程要求进行了针对性的修改和扩展。每个实验项目均独立设置,各占4个学时。第五个实验分配8个学时,由我校学生自主设计的文件系统实验案例,该案例获得全国计算机类课程实验设计一等奖,并多名学生基于该项目拓展研究发表CCF-A类系统会议论文(比如OSDI、FAST、ASPLOS等)。
由于我们已经对XV6的实验内容及要求进行了修改,请大家从下面的“3. 获取XV6实验框架代码”仓库下载代码,务必在这套代码上完成实验,使用其他xv6仓库代码的同学极有可能通不过实验考核!!! 在实验开始之前,请同学们务必先按顺序阅读指导书,掌握实验平台的搭建/使用方法,掌握Linux系统下的一些基本命令/操作,熟练使用GDB调试工具。对于有兴趣有余力的同学,挑战并完成2020版本的xv6实验的所有任务,若能完成会有意想不到的惊喜!
为了帮助同学们理解xv6的概貌、代码结构以及调试方法,我校OS课题组、各级学长助教们合力为大家录制的XV6讲解视频和调试视频,推荐大家按需观看。
如果同学们对本课程实验内容、实验安排、实验指导书或者代码框架等各方面有宝贵的意见或建议,请私信老师或助教。
1. 课程信息¶
- 课程名称:操作系统(实验)
- 学期:2025秋季
- 理论课教师:邹翔宇、卢瑶、夏文、陈斌、刘川意、陈芳林、陈俊杰(按任课班级顺序)
- 实验课教师:仇洁婷、苏婷、匡慈维
2. 实验相关链接¶
- 实验代码 下载地址:https://gitee.com/ftutorials/xv6-oslab24-hitsz.git
- 实验课件、报告及工具 下载地址(需校内网):https://file.cs-lab.top/s/xcAKpIRmnrFUOPe
- 实验提交 地址(需校内网): http://labgrader.hitsz.edu.cn:8000/#/login
- 2020版本的xv6实验仓库 下载地址:https://gitee.com/ftutorials/xv6-labs-2020.git
3. 获取XV6实验框架代码¶
在下载实验代码前,请先搭建好xv6实验平台,搭建方法参考实验平台搭建以及环境配置。
如果你已经进入实验平台,请在命令行终端中执行:
git clone https://gitee.com/ftutorials/xv6-oslab24-hitsz.git
获取框架代码,将克隆xv6-oslab24-hitsz到当前目录。如遇问题请联系老师或助教。
4. 视频链接¶
4.1 xv6讲解视频链接¶
-
【HITSZ操作系统课程组讲解XV6(一)启动过程】
-
【HITSZ操作系统课程组讲解XV6(二)进程管理】
-
【HITSZ操作系统课程组讲解XV6(三)内存管理】
也可以观看B站上的MIT 6.S081/Fall 2020课程视频,通过学习这门课程可以让你对xv6操作系统有一个全面的认识。
4.2 xv6调试演示视频链接¶
-
【使用gdb调试xv6启动流程(1)】 https://www.bilibili.com/video/BV1zAt6e3EfU/?share_source=copy_web&vd_source=a822dcda3537564ccdd0bb45aa0afe33
-
【使用gdb调试xv6启动流程(2)】 https://www.bilibili.com/video/BV1MrtUe7ELC/?share_source=copy_web&vd_source=a822dcda3537564ccdd0bb45aa0afe33
-
【1. VSCode调试xv6内核代码】 https://www.bilibili.com/video/BV1ZB4y1E7X5?share_source=copy_web&vd_source=a822dcda3537564ccdd0bb45aa0afe33
-
【2. VSCode调试xv6用户代码】 https://www.bilibili.com/video/BV1i14y1Y7ZZ?share_source=copy_web&vd_source=a822dcda3537564ccdd0bb45aa0afe33
-
【3. VSCode调试系统调用过程(包含pagetable和汇编)】 https://www.bilibili.com/video/BV12P411J7xq?share_source=copy_webvd_source=a822dcda3537564ccdd0bb45aa0afe33
-
【4. VSCode调试系统调用——从内核到用户,再从用户返回内核】 https://www.bilibili.com/video/BV1ug411m7ir?share_source=copy_web&vd_source=a822dcda3537564ccdd0bb45aa0afe33vd_source=a822dcda3537564ccdd0bb45aa0afe33
5. 各班级课表¶
- 课表有冲突的同学,可自行对照课表选择合适时段上课,但换课需提前告知老师,避免被误记为缺课。
- 各班人数已接近实验室容量,非必要请勿换课,以防座位不足。
- 若需换课,建议优先选择 T2210 实验室(容量相对较大)的班级。
实验一班(实验授课教师:苏婷,仇洁婷)¶
| 课次 | 周次 | 星期 | 节次 | 实验室 |
|---|---|---|---|---|
| 1 | 3 | 2 | 第五节-第八节 | T2210 |
| 2 | 5 | 2 | 第五节-第八节 | T2210 |
| 3 | 8 | 2 | 第五节-第八节 | T2210 |
| 4 | 10 | 2 | 第五节-第八节 | T2210 |
| 5 | 12 | 2 | 第五节-第八节 | T2210 |
| 6 | 14 | 2 | 第五节-第八节 | T2210 |
实验二班(实验授课教师:仇洁婷,匡慈维)¶
| 课次 | 周次 | 星期 | 节次 | 实验室 |
|---|---|---|---|---|
| 1 | 2 | 6 | 第五节-第八节 | T2210 |
| 2 | 4 | 5 | 第九节-第十二节 | T2210 |
| 3 | 7 | 5 | 第九节-第十二节 | T2210 |
| 4 | 9 | 7 | 第五节-第八节 | T2210 |
| 5 | 12 | 1 | 第一节-第四节 | T2210 |
| 6 | 14 | 1 | 第一节-第四节 | T2210 |
实验三班(实验授课教师:仇洁婷,苏婷)¶
| 课次 | 周次 | 星期 | 节次 | 实验室 |
|---|---|---|---|---|
| 1 | 2 | 7 | 第五节-第八节 | T2210 |
| 2 | 4 | 6 | 第九节-第十二节 | T2210 |
| 3 | 7 | 2 | 第五节-第八节 | T2210 |
| 4 | 9 | 6 | 第五节-第八节 | T2210 |
| 5 | 11 | 6 | 第五节-第八节 | T2210 |
| 6 | 13 | 5 | 第一节-第四节 | T2210 |
实验四班(实验授课教师:仇洁婷,匡慈维)¶
| 课次 | 周次 | 星期 | 节次 | 实验室 |
|---|---|---|---|---|
| 1 | 2 | 6 | 第九节-第十二节 | T2210 |
| 2 | 4 | 7 | 第九节-第十二节 | T2210 |
| 3 | 7 | 7 | 第一节-第四节 | T2210 |
| 4 | 9 | 7 | 第一节-第四节 | T2210 |
| 5 | 12 | 1 | 第九节-第十二节 | T2210 |
| 6 | 14 | 1 | 第九节-第十二节 | T2210 |
实验五班(实验授课教师:苏婷,匡慈维)¶
| 课次 | 周次 | 星期 | 节次 | 实验室 |
|---|---|---|---|---|
| 1 | 2 | 5 | 第九节-第十二节 | T2608 |
| 2 | 4 | 5 | 第五节-第八节 | T2608 |
| 3 | 7 | 7 | 第五节-第八节 | T2608 |
| 4 | 9 | 5 | 第九节-第十二节 | T2608 |
| 5 | 12 | 3 | 第一节-第四节 | T2608 |
| 6 | 14 | 3 | 第一节-第四节 | T2608 |
实验六班(实验授课教师:苏婷,匡慈维)¶
| 课次 | 周次 | 星期 | 节次 | 实验室 |
|---|---|---|---|---|
| 1 | 2 | 5 | 第五节-第八节 | T2608 |
| 2 | 4 | 4 | 第五节-第八节 | T2608 |
| 3 | 7 | 4 | 第五节-第八节 | T2608 |
| 4 | 9 | 4 | 第五节-第八节 | T2608 |
| 5 | 11 | 4 | 第五节-第八节 | T2608 |
| 6 | 13 | 4 | 第五节-第八节 | T2608 |
实验七班(实验授课教师:仇洁婷,苏婷)¶
| 课次 | 周次 | 星期 | 节次 | 实验室 |
|---|---|---|---|---|
| 1 | 3 | 1 | 第九节-第十二节 | T2608 |
| 2 | 4 | 7 | 第一节-第四节 | T2608 |
| 3 | 7 | 5 | 第五节-第八节 | T2608 |
| 4 | 9 | 5 | 第五节-第八节 | T2608 |
| 5 | 11 | 5 | 第五节-第八节 | T2608 |
| 6 | 13 | 5 | 第五节-第八节 | T2608 |
致谢¶
在实验教学过程中,我们有幸邀请到了一些本科生助教和研究生助教,这些同学共同完成了实验指导书的编写、实验代码的修改、调试和实验环境的搭建。感谢这些同学对实验做出的贡献。
特别感谢对本课程实验贡献的助教同学:
- 17级:胡博涵、施杨
- 18级:李程浩、宫浩辰、潘延麒、黎庚祉、刘定邦
- 19级:赵鹏宇、陈一邹、叶自立、张艺枫
- 20级:曾培鑫、陈佳豪、满洋、杨大荣
- 21级:陈睿玮、石全、王华杰、区文灏
未来更多的可能,期待由现在的你们来书写!