选修原因
开始学习 CS144 这门课程并不是因为想学计网(当然可能也是有点想的,因为发现自己在这方面还是很欠缺),而是因为这门课程的实验是使用 C++ 来构建出一个 TCP 协议栈。回顾前两年的学习,我发现我没有一门语言称得上擅长,C 无法做到 xv6 中那样熟练,Java 也并不清楚其各种机制特性,Python 也只是明白基础语法而无法做到 Pythonic,甚至连最常使用的 C++ 也只是 C with STL 甚至 STL 也并不是那么熟练。因此选择了这门课程来锻炼自己的 C++ 能力。
环境准备
方案一
按照课程官网说明,我们可以使用官方准备好的 VM 直接进行操作,具体可参见课程网站Setting up your CS144 VM (stanford.edu)
我没有采用这个方案,因为我电脑上的
VM太过拉跨……日常死机,可能是电脑配置太差劲了
方案二
如果你有一台 Linux 系统的电脑,直接用(可惜我没有)
方案三
使用 docker 进行实验,你可以从头开始配置环境,也可以使用好心人配置好上传的 docker。用 docker 而不是 WSL 的原因是我有点害怕实现协议栈时会导致电脑网络出问题,而使用 docker 并不会出现这种问题,直接重新构建 container 就行。
此方案的使用方法为:
安装 docker 后,打开 cmd ,输入命令:
docker pull vidocqh/cs144:latest随后创建容器:
docker container run -v -it vidocqh/cs144:lastest /bin/bash这样就可以开始 Lab0 了
F&Q
Bug
不用
WSL1还有一个很重要的原因是因为实验必须依赖真实的Linux环境,否则会出现一系列莫名其妙过不去的点,但这些过不去的点又和你编写的代码没有一点关系,为了身心健康考虑还是不要使用WSL1了。但是 WSL2 可以