在个人计算发展的早期阶段,DOS操作系统作为最流行的计算环境之一,其对于硬件支持的限制深刻影响了PC的存储扩展和性能。本文将聚焦于DOS系统中关于超过两块硬盘支持所遭遇的技术瓶颈及相关解决策略,揭示当时的技术背景和行业应对的智慧。 DOS系统诞生之初,硬盘技术尚处于高速演进阶段。通常,PC机箱由于空间限制及技术标准,通常只能安装两块全高5¼英寸硬盘。即使是1980年代末期的IBM PS/2 Model 80这类高端机型,也仅支持两块此类硬盘。硬盘数量的限制不仅仅是物理空间的约束,还受制于电源供应以及硬盘启动时机问题。
早期硬盘缺乏错峰启动设计,若同时启动多台硬盘,会给AT标准电源带来较大压力,难以稳定供电,这使得安装多于两块硬盘在技术上变得极为复杂。 然而,DOS系统对硬盘数量的限制更深层次的原因来源于BIOS接口及操作系统对硬盘服务中断调用INT 13h的支持不足。虽然PC/XT和PC/AT BIOS规范理论上支持多块硬盘,但早期的实现多限于两块。DOS在启动过程中会调用INT 13h函数来检测系统中硬盘数量,但2.0至4.x版本的DOS系统最多只初始化和配置两块硬盘,且不对BIOS返回的硬盘数量进行有效验证,导致在检测到多于两块硬盘时系统极易出现死机或无法正常启动的状况。 这一限制在当时并未引起广泛重视,主要由于市场中几乎不存在拥有多于两块硬盘的PC机器。许多技术文档和用户认知将此种限制视为理所当然的事实,就像早期DOS不支持大扇区数的磁盘一样,是“公认”的限制。
直到1988年前后,随着硬件技术的进步,多硬盘配置开始出现,诸如Compaq的Deskpro 386/25带有扩展单元,支持多达四块硬盘,这些局限才开始被暴露出来。 面对这一挑战,硬件厂商采取了软件和固件层面的创新。Compaq率先开发了EXTDISK.SYS驱动程序,这一DOS设备驱动帮助系统绕过了对BIOS中硬盘数量的限制,允许DOS系统识别并管理多于两块的硬盘。这种驱动不通过传统BIOS所暴露的硬盘接口进行访问,而是直接通过硬件接口,实质上扩展了DOS的硬盘支持能力。 与此同时,Adaptec作为SCSI硬盘控制器领域的重要厂商,通过其AHA-1540/1542系列主机总线适配器(HBA)遇到了类似的DOS限制。由于这种卡的BIOS固件仍然限制最多支持两块硬盘,Adaptec配套开发了ASPI4DOS.SYS(高级SCSI编程接口驱动)和ASPIDISK.SYS(DOS硬盘设备驱动),使得DOS能够通过软件层面访问SCSI设备,从而有效突破了硬盘数量上限的瓶颈。
这两套驱动程序功能极为相似于Compaq的EXTDISK.SYS,都依赖于绕过传统BIOS接口的访问手段,直接和硬件通信,实现对多硬盘的管理。 在技术实现层面,DOS的核心初始化程序(以MSINIT.ASM代码文件为例)在检测硬盘数量时,调用INT 13h功能后,未对返回值做有效检查,硬盘数被存储后,DOS最多仅为两个硬盘配置参数和数据结构,而其他硬盘由于缺乏相应初始化引发文件系统参数错误,最终导致启动或者操作失效甚至进入死循环的错误状态。这种设计缺陷被视作DOS 2.0至4.x的固有缺陷,于1989年以前一直未得到全面解决。 IBM在自身的DOS 4.x版本中发现并修复了上述多硬盘支持的错误。通过发布纠正服务包(CSD) UR29015,带有APAR IR86346修正,DOS 4.0实现了官方支持多达七块固定磁盘的能力。这个修正版首次在1989年9月发布,大幅提升了DOS对多硬盘系统的稳定支持。
相较之下,微软官方的MS-DOS 4.01(1989年4月版)以及俄罗斯版本的4.01均未及时获得此修正,导致这些版本依然在多硬盘环境中存在死机风险。 到了MS-DOS 5.0版本,微软彻底解决了硬盘支持数量的限制问题。伴随硬件市场需求的增长和硬件接口扩展,DOS自身开始支持通过BIOS直接识别并正确初始化多硬盘硬件资源,满足用户对存储容量的需求。MS-DOS 5.0之所以能避免此类死机问题,与此前厂商如Compaq和Adaptec驱动方案的成功经验密不可分,微软借鉴并内置了相应机制,使得系统直接支持四块甚至更多硬盘而无需依赖额外驱动。 此外,硬盘控制器和BIOS固件的升级也为多硬盘支持奠定了基础。Adaptec的AHA-154xC版本允许用户在BIOS中选择是否启用多于两块驱动的支持,开启后,所有硬盘均能作为独立的BIOS驱动器进行识别,免除传统限制。
BusLogic等厂商也推出了类似的解决方案,确保新硬件与DOS 5.0或更新版本实现良好兼容。 克隆BIOS制造商则是在1994年以后才开始普遍支持超过两块IDE硬盘,这一时期DOS 5.0的市场普及率已经较高,用户对多硬盘的需求也逐渐显现。克隆BIOS的更新进一步减少了对厂商专有驱动的依赖,使得普通用户能够通过标准DOS配置管理多硬盘系统。 硬件上的多硬盘支持对当时市场产生了深远影响。用户能够通过安装多个硬盘驱动器实现更大存储容量,支持更为复杂和庞大的文件系统,使得PC用户的存储应用跳脱了早期的局限。尤其对专业用户,如图像处理、大型数据库、服务器和多媒体存储设备等领域,多硬盘的支持显得至关重要。
总结来看,DOS系统对于超过两块硬盘的支持问题,既是技术发展的必然产物,也是一段经典的计算机历史。早期硬件限制与操作系统设计缺陷相互影响,促使厂商和开发者不断创新,最终突破限制。此外,这段历史也反映出计算机行业在硬件和软件协调发展中的挑战与合作。通过不断演进的驱动程序、BIOS固件升级和操作系统内核改进,DOS环境逐步实现了对多硬盘的大规模支持,满足了用户日益增长的存储需求。 对于计算机爱好者、历史研究者以及复古计算机系统维护者而言,理解DOS时代多硬盘支持的技术细节和发展历程,不仅有助于深入理解PC平台的硬件架构与软件设计,同时亦为现代存储技术的发展提供重要借鉴和启示。