深入理解计算机系统查漏补缺

本文概述了《深入理解计算机系统》一书的前6章学习笔记,涵盖从预处理器到链接器的编译过程,数据类型与转换,数组越界与安全,ELF文件结构,链接机制,虚拟内存管理,以及并发编程中的QNX多线程资源管理器等内容。
摘要由CSDN通过智能技术生成

认真看了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多线程资源管理器学习

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值