卡内基·梅隆大学的这个CSAPP项目,几乎是计算机科学领域受众最广的项目了,在国内这个项目的参与者更是数不胜数,该项目涉及很多方面,例如汇编编译、操作系统、网络、并行等领域,项目使用的编程语言是C,分为八个Lab,深受CS专业、Java/Go以及11408选手们的爱戴。尽管博主是平平无奇的EE学生,四舍五入也算CS的半个同行了,这个项目在我这里优先级并不大,就当作一些阅读和记录随写了,时间会拉很长,可能做完这个项目就差不多过年了。

环境搭建

基本环境:

  • Ubuntu 18.04

  • VMware 16

  • Vscode+SSH

虽说博客很多,但是从环境搭建开始介绍的还真没多少,但还是找到了字节大佬的gitee仓库,大佬将安装命令都整理成脚本了,Ubuntu 20.04及以下的都可以直接使用这个脚本安装,因此我记录下的基本都是这个脚本的内容,请参考大佬的origin分支installAll.sh即可;

可以直接运行并安装:

1
wget https://gitee.com/lin-xi-269/csapplab/raw/origin/installAll.sh&&bash installAll.sh

脚本命令如下,强迫症患者可以根据自己需要进行选择,这里和大佬的脚本相比我忽略了lab4和lab8的一些命令安装,等做到了再补充;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#! /bin/bash
# DEBIAN_FRONTEND=noninteractive
# apt-get -y install sudo # 如果没有 sudo 的话,得在 root 权限下 安装一下
sudo apt-get update
#sudo apt-get -y install wget
# 清华源 如果需要可以打开
# wget https://gitee.com/lin-xi-269/tools/raw/master/os/QHubuntu20.04 && bash QHubuntu20.04
sudo apt-get install build-essential
sudo apt-get install gcc-multilib #多架构gcc,允许64编译器编译32位代码
sudo apt-get install git

mkdir csapplab
cd csapplab

labs=( "datalab" "bomblab" "attacklab" "archlab" "cachelab" "shlab" "malloclab" "proxylab" )
i=1
for dir in ${labs[*]} ;do
lab="lab"$i"$dir"
wget https://gitee.com/lin-xi-269/csapplab/raw/origin/$lab/install.sh -O install$lab.sh&& bash install$lab.sh && rm install$lab.sh
i=$((i+1))
done
文件夹下应该出现对应的8个实验文件夹和对应文件内容。

最顺利的一节,此外这个实验可以使用WSL或者Docker安装,如果没有大佬整理出这个脚本,估计WSL和Docker的方法更加简便。