Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

QifanWang/learning-csapp

Repository files navigation

learning-csapp

这是我阅读深入理解计算机系统 CS:APP 并完成所有 lab 的代码,lab源代码在此

针对这九个 lab 我记录的笔记在对应的笔记地址中,

实验名 描述 笔记地址
Data lab 使用高度受限的c语言子集,实现简单的逻辑函数、二元补码函数和浮点函数。帮助学生理解C数据类型的位级表示以及数据操作的位级行为。 caspp-data-lab
Bomb lab "二进制炸弹"是作为目标代码文件提供的程序。运行时,提示用户输入6个不同的字符串。如果其中任何一个不正确,炸弹就会"爆炸",打印一条错误消息,并将事件记录到积分服务器上。学生必须通过分解和逆向工程程序来"拆除"他们自己的独特炸弹,以确定6个字符串应该是什么。该实验教学生理解汇编语言,并强迫他们学习如何使用调试器。 csapp-bomb-lab
Attack lab 为学生提供了一对具有缓冲区溢出错误的独特定制生成的 X86-64 二进制可执行文件,称为 targets。其中,一个目标容易受到代码注入攻击的影响。另一个容易受到 return-oriented 的编程攻击。要求学生通过根据代码注入或 return-oriented 的编程来挖掘漏洞以修改目标的行为。该实验向学生教授堆栈的规则,并指出编写容易受到缓冲溢出攻击的代码的危险。 csapp-attack-lab
Architecture Lab 为学生提供一个迷你的默认 Y86-64 数组复制函数和工作管道的 Y86-64 处理器设计,该设计以数组元素的时钟周期( cycles per array element CPE)运行这个复制函数。学生需要修改函数和处理器设计来最大程度地减少CPE。 csapp-arch-lab
Performance Lab 学生需要优化应用核函数的性能,如卷积或矩阵转置。这个实验提供了一个清晰的缓存属性的演示,并为他们提供了低级程序优化的经验。 caspp-arch-lab
Cache Lab 学生编写一个通用的缓存模拟器,然后优化一个小的矩阵转置核,以最大限度地减少模拟缓存的失败次数。本实验室使用Valgrind工具生成地址跟踪。 csapp-cache-lab
Shell Lab 学生实现具有作业控制的简单 Unix shell 程序,包括 ctrl-c 和 ctrl-z 键击,fg, bg和jobs命令。使学生对Unix进程控制、信号和信号处理有一个清晰的概念。 caspp-shell-lab
Malloc Lab 实现简单的malloc、free和realloc。本实验让学生清楚地了解数据的布局和组织,并要求评估空间和时间效率之间的不同权衡。 csapp-malloc-lab
Proxy Lab 实现一个并发缓存Web代理。该实验室学生了解网络编程世界,并将课程中的许多概念联系在一起,例如字节序,缓存,进程控制,信号,信号处理,文件I/O,并发和同步。 csapp-proxy-lab

About

These are notes and code of CS:APP3e labs.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

Contributors

AltStyle によって変換されたページ (->オリジナル) /