1 Star 50 Fork 5

林夕 / csapplab

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
readme.md 2.19 KB
一键复制 编辑 原始数据 按行查看 历史
林夕 提交于 2022-04-26 12:58 . 修改了环境配置细节

CSAPP目前来看一共分为8个lab官网为CS:APP3e, Bryant and O'Hallaron (cmu.edu)

这个项目是我学习CSAPP的时候做的全部lab,平均分为98分,整体代码基本上是关键部分都有详细注释的,并且都会readme.md的说明及思路。我这些实现的代码都比较简洁,并且在shell和proxy扩展了lab,使得那两份代码能支持更多一些的实用性功能。

如果你是Ubuntu系列的话,我已经写好了脚本,运行下面的命令,即可安装CSAPP的所有lab,以及相关的环境,和中文版的文档翻译。

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

也可以在我的知乎专栏CSAPPLab - 知乎 (zhihu.com) 上看到8个lab的更加清晰的介绍。每一个lab我都会给出我的优化思路,已经优化的过程和细节描述,并给出环境配置的一些坑,是很有帮助的。

lab完成情况,得分都已经换算成了百分制。

  1. lab1datalab 100/100
  2. lab2bomb 100/100
  3. lab3attack 100/100
  4. lab4archlab 97/100
  5. lab5cachelab 100/100
  6. lab6tshlab 100/100
  7. lab7malloclab 90/100
  8. lab8proxylab 100/100

最后的得分情况为:98分

下面从我的个人经历来说说做完这些lab大概可以获得的能力:

  1. 对计算机补码,二进制操作会有更加深刻的认识,对浮点数存储方式能有清晰的了解,并且明白union的实现。
  2. 能够具有翻译汇编(反汇编的能力)和掌握使用gdb调试的基本功。
  3. 能够了解到CPU的运行方式,对CPU识别指令的过程,以及栈溢出攻击有所了解
  4. 能够加深对流水线,以及底层优化指令运行方法的理解,提高优化代码的能力。
  5. 学习到LRU的实现,了解cache的工作原理,写出让cache命中率更高的代码
  6. 能学到信号的使用,信号量的处理,管道的使用
  7. 学到内存管理的知识,加深对对指针和链表的理解。
  8. 学到多进程(多线程)编程的思想,学习到客户端、服务端开发的雏形
C
1
https://gitee.com/lin-xi-269/csapplab.git
git@gitee.com:lin-xi-269/csapplab.git
lin-xi-269
csapplab
csapplab
master

搜索帮助