Windows 设备驱动程序的发展进化之实模式windows

Windows实模式(Real-Mode Windows)  –

实模式 (Real mode) 是 Intel 80286 和之后的 x86 兼容 CPU 的操作模式。实模式的特性是一个 20 比特的区段存储器地址空间 (意思为只有 1 MB的存储器可以被寻址),可以直接软件访问 BIOS 例程以及周边硬件,没有任何硬件等级的存储器保护观念或多任务。

从一开始,MS-DOS 和系统基本输入输出系统(BIOS) 就已经提供了许多硬件设备的驱动程序。BIOS 通过一些常用的软件中断,开放出驱动程序的服务 ,像INT 10h 是显示系中断,INT 13h是磁盘子系中断,INT 16h 是键盘中断等等。BIOS 也处理硬件中断,并承担对“可编程中断控制器”(Programmable Interrupt Controller ,PIC )的管理任务。MS-DOS 也通过软件中断(如 INT 21h 、INT 25h 、INT 26h )提供了系统服务 ,并提供一个机制(CONFIG.SYS 中的 device= 语句),让新的或强化后的驱动程序能在启动时被加载进操作系统内核。

所有的 80286 系列和 之后的 x86 CPU 都是以实模式下开机;80186 和早期的 CPU 仅仅只有一种操作模式,也就是相当于后来芯片的这种实模式。 286 架构导入 保护模式,允许硬件等级的存储器保护。然而要使用这些新的特色,需要额外先前不需要的软件指令。

由于 x86 CPU(微处理器)主要的设计规格,是能够完全地向前兼容于针对先前所有 x86 芯片所撰写的软件,因此 286 芯片的开机是处于 ‘实模式’ ,即关闭新的存储器保护特性的模式,所以可以运行针对旧的CPU所设计的软件。到现在为止,即使最新的 x86 CPU 一开始在电源打开处于实模式下,也能够运行针对先前任何芯片所撰写的软件。 IBM引进的PC-BIOS与DOS 操作系统 (MS-DOS, DR-DOS 等等) 都是在实模式下运作。

早期的 Microsoft Windows 版本 (主要地只是图形用户界面外壳,而事实上不是操作系统) 也在实模式下运行,直到 Windows 386是第一种在保护模式下运行的Windows系列的操作系统。Windows 3.0进一步增强了这方面功能,能够在实模式或是保护模式下运行。

Windows 3.0 在保护模式下有两种运行”喜好” – “标准模式”,也就是使用保护模式来运行;而 “386-增强模式”,允许使用 32 位寻址,因此无法在 286 上运行 (尽管都有保护模式,但是 286 只是 16 位芯片;32 位的暂存器在 80386 系列中推出)。

Windows 3.1 不再允许在实模式下运行,只能在保护模式下运行,因此也是第一个最少需要 80286 处理器的主流作业环境(不管Windows/286,因为并非主流产品)。

几乎所有的现今 x86 操作系统(Linux、Windows 95 和之后、OS/2 等等)都会在启动后将 CPU 切换到保护模式。X86-64CPU上的长模式操作系统,把保护模式也作为启动中的一个踏脚石。

80286的地址总线为24比特宽,即使在实模式下也是在使用24比特的内存地址读写内存数据。所以80286及以后的CPU实模式运行时,需要控制A20地址线是否被使用。

Windows 设备驱动程序的发展进化之windowsb标准模式

此条目发表在 windows驱动开发 分类目录,贴了 标签。将固定链接加入收藏夹。

发表评论