计算机原理
1. 段页式存储管理
2. 内存映射方式
主存到cache的地址映射方式:参考
全相联、组相联:参考
总结:参考
3. linux进程空间布局
linux内存管理剖析:参考
详解(slab\dma等)
linux进程管理
linux用户空间与内核空间:参考(段页式机制、原理图)
linux内核线程与普通线程:参考(进程空间图)
为什么要有内核空间、用户空间:参考
从文件锁看linux内核的文件数据结构:参考
4. 五种IO模型
5. 汇编层面看函数调用流程
x29\x30 分别指向栈底和栈顶(从30开始执行到29返回) 嵌套调用时, ret是call的时候x30保存了被call函数的结束地址(顶部), 执行到下个ret指令时执行下个所指的ebp,esp ebp是栈底指针(实际指向函数结束的地方),记录它的旧值, 像链表一样在栈中标记出每个函数结束的地方 esp/sp是栈顶指针, 用于开辟栈空间, 永远指向栈顶
调用ret发生了什么? 参考
调用ret其实就是修改了指令寄存器IP, 栈顶指针 SP, 退回到了上个未执行完的函数或者执行下个待执行的函数
开发中常见的汇编指令:参考
常用寄存器及其说明: 参考
生成的汇编所用到的即不是物理地址也不是逻辑地址而是相对地址: 参考, 比如数组的访问就借助于基址变址运算符
linux内核的原子操作:参考
6. 现代cpu结构
抽象内存屏障,参考: