一般信息
MIT catalog description
Prereq.: C, 6.033, 6.005, and 6.004 G (H) 3-6-3 6 EDP
6.828 研究了操作系统工程中的基本设计和实现思路。讲座基于对 UNIX 和研究论文的研究。主题包括虚拟内存,线程,上下文切换,内核,中断,系统调用,进程间通信,协调以及软件和硬件之间的交互。个别实验任务涉及在 C 中实现小型操作系统,其中包含一些 x86 组件。
学生可以利用 6.828 来满足计算机系统的工程专注度要求。
Who should take 6.828?
6.828 主要面向想要详细了解操作系统的高年级和工学硕士。我们也欢迎博士生,但请注意 6.828 不是 TQE 的“核心”主题。
Communication
我们将在课程网站上分发作业,并通过 piazza 发布所有公告。课程网站有该学期的时间表。
Grading policy
6.828 的成绩将基于两个测验的结果(一个在学期期间,一个在决赛周)(35%); 实验 1 到 5(40%); 作业任务,纸质问题和课堂/ piazza 参与(合计10%); 和实验挑战问题和最终项目实验(合计15%)。您必须提交所有实验才能通过课程。从历史上看,学生在 6.828 中表现良好,许多学生都获得 A(例如,2017年大多数学生获得 A)。
Labs
要上交每个实验,请在您的实验目录中运行 make handin。必须在实验到期当天晚上 11:59 之前收到。您可以在截止日期前尽可能多次上交。该 handin 网站为你最终实验提交打分并显示你的最后实验成绩。
这个学期你总共有 72 个小时。每迟到一小时超过 72 小时,你的实验成绩将被扣分 1%。我们使用时间和最高的实验提交成绩来计算您的最终实验。如果你因为生病、工作面试、麻省理工学院的体育比赛、其他课程的最后期限等原因而耽误了上课时间,我们会要求你写一封学生主任的信。
Homework
家庭作业旨在让您思考课程主题和/或动手。编程作业和论文问题应在指定截止日期的讲座开始前(即下午1点)到期。我们不会为正确性评分您的答案,而只是检查您是否付出了合理的努力。
Textbooks
6.828 使用以下两本书:
- xv6: A simple, Unix-like teaching operating system by R. Cox, F. Kaashoek, and R. Morris.
- The C programming language (second edition) by Kernighan and Ritchie. Prentice Hall, Inc., 1988. ISBN 0-13-110362-8, 1998.
此外,该课程依赖于大量有关 x86 指令,PC 硬件规格等的参考资料。所有这些材料都可在 参考 页面上找到。
Collaboration
你不在测验上合作,欢迎您与其他学生讨论家庭作业和实验,但您的所有书面作业和代码必须是您自己的,并且必须仔细确认其他人的所有贡献,无论是来自同学还是来自您阅读的来源。请不要查看其他任何实验或家庭作业的代码。请随时询问并回答关于 Piazza 的问题,关于实验,家庭作业,阅读和课程。
不要将您的实验或家庭作业解决方案发布在可公开访问的网站(例如 GitHub)或文件空间(例如 Athena Public 目录)上。