桌面电脑操作系统开发笔记(4)——进入32位保护模式
要获得32位的内存寻址能力和将内核层和应用层隔离开,就需要进入32位保护模式。要进入64位保护模式,也要先进入32位保护模式。
要进入32位保护模式,首先要解决一个历史遗留问题,就是A20地址线的问题。这个问题产生的原因在这篇文章中有详细的说明:http://blog.csdn.net/ruyanhai/article/details/7181842
通常有三种方法打开A20地址线:通过BIOS中断服务int 15h,AX=2401h、通过8042键盘控制器、通过端口92h。
OSdev Wiki中对这三种方法有详细的说明:http://wiki.osdev.org/A20_Line
我认为,BIOS开启A20的中断服务应该已经普遍可用而且比较可靠,是优先选择的方法。其次比较可靠的方法是通过8042,但对8042编程比较复杂。Linux内核也是依次选择BIOS中断服务、8042和端口92h三种方法,参见