选修原因

开始学习 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 ,输入命令:

Terminal window
docker pull vidocqh/cs144:latest

随后创建容器:

Terminal window
docker container run -v -it vidocqh/cs144:lastest /bin/bash

这样就可以开始 Lab0

F&Q

Bug

不用 WSL1 还有一个很重要的原因是因为实验必须依赖真实的 Linux 环境,否则会出现一系列莫名其妙过不去的点,但这些过不去的点又和你编写的代码没有一点关系,为了身心健康考虑还是不要使用 WSL1 了。

但是 WSL2 可以