在现代台式机和笔记本电脑上,很少需要考虑内存。我们都有很多千兆字节的东西,而且它就在那里。我们的操作系统承担了繁重的工作,确定什么在哪里以及什么需要分页到磁盘,我们只是继续阅读Hackaday ,这是最高尚的计算追求。但情况并非总是如此,特别是对于早期的 PC,8086 处理器的限制使得需要进行一些重大的体操来寻找额外的几千字节。 [Julio Merion]对 DOS 内存映射进行了有趣的概述,以及在物理上看不到太多内存的计算机上如何进行内存扩展。
8086 具有 20 位地址总线,最多可访问 1 MB。当 IBM 制造 PC 时,他们需要空间来容纳 BIOS、显示器以及扩展卡附带的各种附件 ROM。因此,他们为 RAM 分配了最大 640k 的映射,而许多早期机器出厂时的内存远小于此大小。比尔·盖茨 (Bill Gates) 曾说过 64 万对任何人来说都足够了,这句话可能是杜撰的,但随着 20 世纪 80 年代的过去,显然还需要更多。这篇文章介绍了内存扩展的工作原理,将 64k 页面映射到卡上的可切换 RAM,并介绍了 DOS 如何在支持它的后续处理器上管理超过 1 Mb 的扩展内存。我们依稀记得还有一个设备驱动程序,可以在显卡以文本模式运行时将未使用的显存映射为 EMS,但最好还是把这种恐怖抛在脑后。
8086 标头:Thomas Nguyen, CC BY-SA 4.0
原文: https://hackaday.com/2024/01/21/640k-was-never-enough-for-anyone-how-dos-broke-free/