CSAPP
文章平均质量分 81
康宇
这个作者很懒,什么都没留下…
展开
-
[CSAPP] Shell Lab 实验笔记
shlab这节是要求写个支持任务(job)功能的简易shell,主要考察了linux信号机制的相关内容。难度上如果熟读了《CSAPP》的“异常控制流”一章,应该是可以不算困难的写出来。但如果读书不仔细,或者实践的时候忘记了部分细节,那就可能完全不知道怎么下手,或者得改bug改到吐了。我自己写了大概八个小时,其中仅一半的时间都在处理收到SIGTSTP后莫名卡死的问题,最后才发现是课本没看仔细,子进程停止后也会向父进程发送SIGCHLD。在实验中我们需要实现job、fg、bg、kill四个内建命令和对执行本地原创 2020-10-07 16:41:04 · 2187 阅读 · 0 评论 -
C++ 栈内存与堆内存小探究
实验方式:尝试以不同方式创建超大号二维数组测试代码:#include <iostream>using namespace std; const int maxn=1000000;class C{ int arr[maxn];};//int a[maxn]; 全局大数组//C a; 含大数组的全局对象 int main(){ //int a[maxn]; 局部大...原创 2019-05-31 21:38:43 · 3026 阅读 · 0 评论 -
[CSAPP] Cache Lab 实验笔记
cachelab这节先让你实现个高速缓存模拟器,再在此基础上对矩阵转置函数进行优化,降低高速缓存不命中次数。我的感受如上一节,实在是不想研究这些犄角旮旯的优化策略了。前期准备我实验的时候用到了valgrind和python,都可以用apt-get大法直接安装Prat A: 高速缓存模拟器C语言图书管理系统级别的题目,照着课本硬模拟就行。讲义里说可以用malloc动态分配cache大小,但这东西规模很小,我直接预定义成了个大二维数组。唯一能说的新东西就是getopt了,解答了我一直以来对程序参数处理的原创 2020-07-07 22:22:13 · 1120 阅读 · 0 评论 -
[CSAPP] Performance Lab 实验笔记
perflab这节的任务是利用书中知识,来对图像处理中的Rotate和Smooth操作函数进行优化。这次没对上电波,觉得学了一堆屠龙之技。于我个人理解,现在计算机配置比以前高多了,连SWAP分区都几近废弃了,对于一般开发者来讲,代码效率瓶颈首先是架构,其次是算法,最后才是书里教的这些小细节。而且这节也没个具体的分数标准,优化了半天也不知道自己写的算啥水平,缺了前面几节那种攻克难题的成就感。不过也有可能是因为我太菜了 XD前期准备这次的开发环境被我迁移到了WSL上,系统版本为ubuntu 18.04 LT原创 2020-07-06 22:42:12 · 3347 阅读 · 1 评论 -
[CSAPP]Architecture Lab实验笔记
archlab属于第四章的内容。这章讲了处理器体系结构,就CPU是怎样构成的.看到时候跃跃欲试,以为最后实验是真要去造个CPU,配套资料也是一如既往的豪华,合计四十多页的参考手册,一大包的源码和测试程序.意料之外是具体考你的不是"炼丹"(指沙土炼硅造芯),而是处理器级别的优化,要把处理器的性能榨干才能得满分.不愧是CMU,榨得我已经一滴脑汁也没有了,最后还只得了八成的分.通过上次实验我知道了CMU喜欢给头铁之人留几个零头,所以剩下两成分我也不追求了.(耻辱下播)原创 2020-06-26 23:40:08 · 1556 阅读 · 1 评论 -
[CSAPP]Attack Lab实验笔记
attacklab这节玩的是利用一个字符串进行缓冲区溢出漏洞攻击,就小时候想象中黑客干的事儿.做题的时候好几次感叹这些人的脑洞,"这都可以攻击?还能这么注入?这还可能借力打力?"等自己注入的时候却是"啊?怎么又段错误了?怎么又算错地址了?"也是一次有趣的经历了.小插曲:我拿到文件的时候直接去读得readme,看完了还迷惑这readme咋就这么点信息.后来知道了实验都要配合着writeup讲义看,不禁感叹我前两个实验没看讲义还能做出来真是个奇迹!### level1第一步先反汇编拿到ctarget的原创 2020-06-06 23:01:02 · 926 阅读 · 0 评论 -
[CSAPP]Bomb Lab实验笔记
bomblab这节搞的是二进制拆弹,可以通俗理解为利用反汇编知识找出程序的六个解锁密码.早就听闻BOMBLAB的大名,再加上我一直觉得反汇编是个很艰难的工作,开工前我做好了打BOSS心理准备.实际上手后发现比想象的要简单.我觉得这多亏了作者没有搞代码优化,让我能比较轻易的还原出源代码,甚至一眼看出所用的数据结构.但凡它搞一点儿代码混淆,都会把这次实验变成一次苦痛之旅.前置小技巧1.gdb调试汇编我试了一番后觉得用以下几条指令在全屏模式下调试是体验最好的gdb -tui ./bomb #带文字原创 2020-06-05 22:19:25 · 1434 阅读 · 1 评论 -
[CSAPP]Data Lab实验笔记
前天讲到要刚CSAPP,这一刚就是两天半.CSAPP果然够爽,自带完整的说明文档,评判程序,辅助程序.样例直接百万组走起,管饱!datala讲的是整数和浮点数怎么用二进制表示的,考验的是用基本只用位运算来实现一些看似稀松平常的操作.实际体会就是看题五秒钟,脱发两小时.当然做出来的成就感也是爆棚的.求异或根据离散数学等值演算写出公式//1/* * bitXor - x^y using only ~ and & * Example: bitXor(4, 5) = 1 * Le原创 2020-06-03 14:08:43 · 932 阅读 · 0 评论