复读大三

开学的时候我感到很想完成几门早有耳闻的北美CS课程的实验6.s081MIT操作系统课cs144斯坦福计算机网络15-213CMU计算机系统结构6.824MIT分布式系统构建一个真正 work 的系统同时认真把它搞透于是想到了一个命题我大四课这么少用来复读大三怎么样如果大三可以重来我会做些什么呢

目标

考虑到我同时需要科研以及工作效率并不如想象中高我定下了一个看起来可行性很高实现后也很有收获的目标完成 6.s081cs14415-213 三门课程的实验完成质量需要比较高这里提出几点要求

  1. 严格按照要求完成实验主要关注分数要求所有通过性测试必须通过跑分性测试达到较高分数线和任务点要求如 6.s081 的两个功能选择一个实现不能不选
  2. 清楚明白地了解自己在做什么不能做完实验还感到有哪里含糊不清楚如果有疑问至少需要具体地列出来并在能力范围内尝试解决

更高的要求包括阅读源码从零复现系统不做硬性要求

视前几周的精力情况决定要不要做6.824第二周需要先尝试起来把 Raft 的论文读起来

计划

目前的计划每周每门课一个lab除 6.824 外第一周已经做完了 cs144 Lab0-26.s081 Lab015-213 bomb lab(4/6)data lab以前做过不再重做6.828 lab1 是以前做过的按照第一周的进度来看这个计划还是很有希望按期执行的不过预测后期难度会增加尤其是 OS…如果出现这种情况可以2周/1.5周一个lab

如果计划理想进行到了中后期 cs144 就做完了可以投入更多精力做 6.824

注意到这里没有编译原理有点尴尬…其实我是很想手搓编译器的而且不想用 yacc/bison除开科研可能需要的编译知识之外它的优先级可能和分布式系统相同暂时先不列入计划执行一段时间上面的计划再重新考量这个重新考量不晚于第三周周末

本文每周一更新


进度记录

2022.9.20

这周突然特别想手搓OS所以进度甚至比预想的还慢…cs144和6.s081推进了一个实验没有问题但是csapp没有做这周目标和上周一样其中csapp的目标是做完bomb lab并再做一个不过手搓OS进度还挺好的快要进入用户态了

2022.12.18

成功地复刻了之前的每个学期都没能坚持学完网课的历史…好在这学期不是一事无成这里来总结一下

手搓 OS 在虚拟机里已经跑得很不错了有了用户态多进程系统调用文件系统终端下一步工作包括文件系统的写出多核调度与内核锁搭建测试框架尝试了 USB 驱动但是比较困难暂时放下

bomb lab 做完了但也就止步于此其他 lab 没做

6.824 lab 2B 今天刚刚做完通过了 200 轮测试感觉神清气爽啊

科研方面在做一个DSLDSL编译后会生成一套网络协议栈的源码已经在实现编译后的系统原型了目前只差定时器和拥塞控制了通过阅读 RFC对 TCP 的理解比大三上课时高了不少