Giter VIP home page Giter VIP logo

exely / csapp-labs Goto Github PK

View Code? Open in Web Editor NEW
2.3K 29.0 435.0 4.17 MB

Solutions and Notes for Labs of Computer Systems: A Programmer's Perspective 3rd Editon // 《深入理解计算机系统》第三版的实验文件、解答与笔记

Perl 4.46% Makefile 22.99% C 54.44% Lex 0.27% Yacc 0.20% HCL 11.34% Tcl 4.74% Python 0.50% Shell 1.03% HTML 0.01% Raku 0.02%
csapp notebook linux c computer-architecture computer-science

csapp-labs's Introduction

CSAPP-Labs

这个项目是我对《深入理解计算机系统》第三版配套实验的解答和我写的笔记,实验文件在目录labs下,来源Lab Assignments

目录:

包含所有的lab文件,以及CMU给的参考文档,也包含我写的解答文件,我的实验环境是 Ubuntu 16.04 amd-64,其中source保存了所有lab的原文件;

是我写的笔记:

涉及了位运算,补码和浮点数等内容,都是C语言程序设计题。

拆除二进制炸弹,可以大大提升看汇编代码的能力。

这个lab主要涉及了栈随机化,不可执行等栈保护的方法和使栈溢出、ROP攻击等内容。

Architecture Lab,涉及了Y86-64指令集,和SEQ和PIPE的实现方式,以及程序优化等内容,可以熟悉汇编和硬件语言HCL

这个lab在CMU已经被Cache Lab取代了,考虑到Cache Lab比较难,可以先做这个lab练练手。基于书上第五、六章对程序进行优化,主要用了循环分块消除缓存不命中和消除分支预测错误等方法。

Part A要求写一个缓存模拟器,Part B要求优化矩阵转置函数,减少缓存不命中数。这个lab可以加深对缓存的理解。已写完Part A。

csapp-labs's People

Contributors

exely avatar valkierja avatar xinghyfish avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

csapp-labs's Issues

archlab中循环展开优化bug解决

笔记中提到的archlab的Part C部分循环展开优化时,将8次展开和4次展开相结合出现的问题(参考文件labs/archlab/sim/pipe/mncopy.ys)应该是由于跳转的名称出现重复(8次和4词都从ele1开始编号,但是终止语句并不相同)导致问题。经过实验把4次循环的ele名称和之前的区分开来即可通过全部测试并将Average CPE降到8.64。

attack lab第三题是直接修改了strncmp的参数吧

直接将strncmp的第二个参数sval修改为我们的cookie
使得匹配成功
对把


哦 , 这个hexmatch已经默认将两个待匹配的字符串设置为相等的直了
中间用sprintf把s改为hex
所以只需要把cookie的hex给rdi,rdi会给rsi

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.