逻辑地址通过段式内存管理转换成线性地址
线性地址通过页式内存管理转换成物理地址
GDTR寄存器存的是线性地址
1.ALU(算术逻辑单元)、数据总线、地址总线区别?
cpu的几位指cpu一次可以处理多少位的数据 = ALU宽度 = 指针长度,
数据总线长度指一次可传输多少位的数据,
地址总线长度指可以访问的最大内存空间
比如80286的cpu是16位,内存地址空间是20位的。
2.80286的ALU(算术逻辑单元)是16位的,为什么地址总线是20位?
3.GDTR寄存器存的是线性地址,它是指向GDT;CR3寄存器存的是物理地址,指向PGD目录,但CR3所需要的物理地址通过线性地址-0xc0000000得到,从linux/include/asm-i386/mmu_context.h中asm volatile(“movl %0,%%cr3”: :“r” (__pa(next->pgd)));看出,
i386的地址转换:先段式映射,之后再页式映射
其他产品的cpu只要支持其中一种就可以,段式映射或者页式映射
未完待续,随时更新。。。