对于 linux 系统 api, 尝试理解函数参数和函数之间的内在联系,为什么要用这些参数而不是另一些参数,了解 api 之间的一些共性。
一个扩展性良好的程序,结构都有一些共性,就像是一个国家,有好的法律和基础设施,实际上到后来,运行在上面的都是一个个相对独立的程序,之间的耦合性很低
前提是开发一套规范和基础设施很重要, 很多数据结构也有相似性,比如 PE 文件结构,他里面就定义了很多段,这些定义都包含在头部中,而且灵活性很强
有些库函数的返回值因为有 false 和 true 之分,因此对这些函数的处理在实际的工程代码中是无论如何都逃不掉的。
最近才理解了 为什么 offset + VA = 线性地址,这里面也是因为有很多 convention, 首先 image 的基地址是从 0x400000 开始的,这个地址的高10位 是 0000000001, 低22位全是0,在保护模式下,线性地址的高十位是 PDE index,这样 操作系统只控制 PDE BASE,也就是不同的 CR3 就可以了