认真看了12379,4是组成原理不看,5是优化,6是存储器,8是异常控制流,10-12IO/网络/并发(qnx多线程资源管理器)
《深入理解计算机系统(CSAPP)》全书学习笔记(详细) - 知乎 (zhihu.com)
《深入理解计算机系统》第3版课本笔记(1—6章) - Yuhan's blog (yuhan2001.github.io)
1.从源程序到目标程序的四个阶段
预处理器,编译器,汇编器,链接器
2.处理器的核心是什么?它主要干什么
程序计数器,一个字,存储下一条指令的地址。
3.int, long long, char,short 可表示的范围分别是多少
10位,-20亿~20亿; 19位,千亿亿级; -128~127;-32768~32767
4.有符号转无符号数值如何变化?无符号转有符号数值如何变化?
int x= 2^(w-1), x = ux - 2^w;
5.编译器将数据结构的访问翻译成汇编指令(编译器根据数据类型计算数组或者结构体成员的偏移)
6.数组越界 p196覆盖caller中保存的状态
p198 对抗缓冲区溢出攻击:栈随机化、栈破坏检测
7.汇编语言实现数据结构的存储和访问,条件控制语句的跳转
8.elf只包含global和static数据。非static局部变量在栈中管理
9.链接器如何解析引用:一个可重定位目标文件的集合 E,一个未解析的符号 (即引用了但尚未定义的符号) 集合 U,已定义的符号集合 D
在命令行中,如果定义一个符号的库出现在引用这个符号的目标文件前,引用就不能被解析,链接会失败。因为初始时 U 是空的。
一般把库放在命令行的结尾。如果库之间相互依赖,则依赖者在前,被依赖者在后。如果双向引用,可以在命令行上重复库。
10.p564虚拟内存一部分虚拟页在主存,一部分在磁盘
11.p581linux通过链表组织虚拟内存‘
12.并发编程:qnx多线程资源管理器学习