setup 程序打开 A20 实现32位寻址
目录
教学视频
Linux内核启动过程:setup程序打开A20实现32位寻址
1. 打开A20实现32位寻址
打开 A20,意味着 CPU 可以进行32位寻址,最大寻址空间为4 GB。内存寻址范围从5个F扩展到 8 个F,即 0xFFFFFFFF——4 GB。
早期 Linux 最大只能支持 16 MB 的物理内存,但是其线性寻址空间已经是4 GB。
代码实现如下
实模式下 CPU 寻址范围为0~0xFFFFF,共 1 MB 寻址空间,需要0~19号共20根地址线。进入保护 模式后,将使用 32 位寻址模式,即采用 32 根地址线进行寻址,第21根(A20)至第32根地址线的 选通控制将意味着寻址模式的切换。
注意, 早期的微机80286 有24根物理线进行寻址,所以最多物理内存访问支持24bit地址空间,即0XF