背景
动手实现一个简单的Lab,主要依赖于课本第八章的内容 感觉主要是05比较难。。发现执行的顺序不太对。。原因是SIGCHLD里面waitpid参数没写对。。 后面的就相对简单了 累计大概花了10个小时的样子
阅读更多背景
怎么算微分。。通常有三种方法。
- Symbolic Differentiation
- Numerical Differentiation
- Automatic Differentiation (auto diff)
c8589036cb6d845eb07a05441e2d32f8.md.png (图片已丢失: c8589036cb6d845eb07a05441e2d32f8.md.png)
7f409550ef544562ea67816c7a884fcb.md.png (图片已丢失: 7f409550ef544562ea67816c7a884fcb.md.png)
auto diff中两种主流的方式分别是forward-mode …
阅读更多背景
动手实现一个memory allocator,体会core到爆炸的乐趣(不是
trace file 结构分析
trace file 是对allocator的输入的描述,可以从mdriver.c中的
阅读更多背景
CSAPP 处理器那章快看完了,猛然发现竟然还有个attacklab.. 之前以为每一章只有一个lab
这个lab是教大家如何找到程序的漏洞并实施攻击。 知道如何实施攻击,才能更好地写出安全的代码。
阅读更多花了三个月的时间,终于跟完了这门编程语言课. 课程成绩.png (图片已丢失: xDFXnKT3yWGvdQp.png) 课程内容非常赞,而且也充分发挥了coursera平台的作用. 非要说缺点的话,就是这门课时间有点短,以及peers’ assignments总是找不到人…
阅读更多2019年2月24:完成了除了"Challenge"以外的全部练习和问题. 总共花费15个小时.
2019年2月26:完成"Challenge 2"(应该是最简单的一个orz,只花了不到一个小时)
Part 1: Physical Page Management
操作系统必须时刻追踪哪些物理内存在使用,哪些物理内存没有在使用。
阅读更多说起C语言的变长参数,可能听起来比较陌生,因为很少会需要自己实现。不过想一下scanf和printf,参数个数的确是不固定的。
stdarg.h 中提供以一套机制来实现变长参数。以及,要说明的是,变长参数不是什么黑魔法,原理依赖于stack frame的结构,具体可以参考x86-calling-conventions 简单来说,由于函数参数入栈的顺序是固定的,**因此一旦我们知道某函数帧的栈上的一个固定参数的位置,我们完全有可能推导出其他变长参数的位置 **
阅读更多x86的调用约定主要说的是这几件事:
* The order in which atomic (scalar) parameters, or individual parts of a complex parameter, are allocated * How parameters are passed (pushed on the stack, placed in registers, or a mix of both) * Which registers the called function must preserve for the caller (also known as: callee-saved …
阅读更多花费了30+小时,终于搞定了orz
Part 1: PC Bootstrap
The PC’s Physical Address Space
8086/8088时代
1+------------------+ <- 0x00100000 (1MB) 2| BIOS ROM | 3+------------------+ <- 0x000F0000 (960KB) 4| 16-bit devices, | 5| expansion ROMs | 6+------------------+ <- 0x000C0000 (768KB) 7| VGA Display …
阅读更多