В эпоху ранних персональных компьютеров DOS была одной из самых популярных операционных систем. Однако её возможности вызывали множество ограничений, особенно если говорить о работе с жёсткими дисками. Одним из наиболее ярких технических барьеров являлась неспособность DOS корректно работать с более чем двумя жёсткими дисками. Эта проблема долгое время оставалась незамеченной, а позже превращалась в серьёзный вызов для пользователей, которым требовалось расширить объём хранения в своих системах. Исторически BIOS первых моделей IBM PC, таких как PC/XT и PC/AT, поддерживала максимум два жёстких диска.
Хотя INT 13h интерфейс BIOS предполагал возможность расширения, реальные аппаратные возможности и конструктивные особенности систем того времени не позволяли полноценно использовать больше пары дисков. Обуславливалось это многими факторами, включая физический размер устройств, ограниченный слотами в корпусах и мощностью блоков питания. 5¼-дюймовые жёсткие диски того времени были достаточно громоздкими, и их одновременный запуск создавал серьезную нагрузку на питание. Поэтому даже при необходимости расширять память чаще всего покупали один крупный диск, а не несколько маленьких. В программном обеспечении, а именно в версии DOS до пятой, существовала довольно существенная техническая ошибка.
При загрузке система обращалась к INT 13h, чтобы получить список доступных жестких дисков, их количество и параметры. Однако DOS не проверяла валидность возвращаемой BIOS информации и ограничивала число используемых устройств двумя. При подключении большего количества дисков, DOS могла зависать при запуске, погибая на ранних этапах инициализации. Это ошибка заметно влиялась на стабильность и ограничивала возможности расширения хранилищ данных. Интересно, что эта ошибка долго оставалась незамеченной, так как многодисковых конфигураций попросту не существовало в массовом использовании.
К тому же сами платформы ПК и их BIOS не предполагали поддержку более двух накопителей, а платы питания и корпуса имели очевидные конструктивные ограничения. Этот парадокс технического, а не архитектурного ограничения создавал заблуждения, что DOS просто не рассчитана на работу с большим количеством дисков. Ситуация стала меняться с появлением новых систем и устройств. Примером является Compaq Deskpro 386/25, который впервые представил опцию расширительного блока с поддержкой до четырёх жёстких дисков, а также SCSI контроллеры, таких как Adaptec AHA-1540 и AHA-1542. Оба продукта столкнулись с одной и той же проблемой: базовый DOS не мог корректно работать с более чем двумя дисками.
Производители решили эту проблему по-своему. Compaq решил не выставлять дополнительные диски через BIOS, тем самым избегая ограничения самой DOS. Вместо этого они предложили собственный драйвер EXTDISK.SYS, который позволял операционной системе распознавать и использовать все диски, подключённые через расширительное устройство. Аналогичный путь выбрала компания Adaptec: их драйверы ASPI4DOS.
SYS и ASPIDISK.SYS обеспечивали поддержку нескольких дисков, обходя ограничения BIOS и DOS. Публикация исходных текстов MS-DOS 4.0 раскрыла в деталях причину проблемы. В файловой системе FAT DOS рассчитывала различные параметры кластера и другие данные на основе информации, полученной о дисках.
Если драйверы инициализировали не все диски или искажали данные, система попадала в бесконечный цикл или просто зависала. Это наблюдалось в рутине создания дисковых параметров (DPB), где незаполненные или пустые структуры приводили к ошибкам. Проблема была системной и проявлялась во всех версиях DOS с поддержкой жёстких дисков до пятой версии включительно. В частности, MS-DOS 4.01 и её региональные варианты зависали при подключении третьего и четвёртого жёсткого диска.
В то же время в некоторых версиях IBM DOS, например в японской сборке 4.05/V, уже была включена поддержка до семи накопителей после установки специального обновления — исправляющего пакетного диска (CSD) UR29015. Это обновление как раз и исправляло критическую ошибку, зарегистрированную в официальных APAR IBM. Фактически, IBM, по всей видимости, решила проблему раньше Microsoft, выпустив корректирующие сервисные диски ещё в 1989 году, позволяющие системе стабильно работать с несколькими накопителями. При выходе MS-DOS 5.
0 ситуация с поддержкой дисков улучшилась. По исследованиям из ранних бета-версий DOS 5.0 уже видны по крайней мере четыре диска через BIOS, и системные драйверы не зависают при более чем двух носителях. В документации дублёров (OEM Adaptation Kit) четко прописано исправление большого количества ошибок и подготовка к поддержке расширенных систем, что говорит о комплексном обновлении ядра DOS. Производители контроллеров SCSI постепенно интегрировали поддержку большого количества дисков осознанно.
Начиная с модели AHA-154xC Adaptec позволил включать опцию, которая разрешала BIOS показывать больше двух накопителей в системе, что делало использование специализированных драйверов в DOS необязательным. Аналогичные функции стали появляться и в продуктах BusLogic, что упростило жизнь пользователям с большими конфигурациями хранения. Рынок клонов BIOS с поддержкой более двух IDE-дисков начал активно развиваться только с середины 90-х и предполагал установку DOS 5.0 или выше. Это позволило постепенно отказаться от ограничений, которые стояли на пути развития систем и усложняли модернизацию ПК-пространств.
В худших случаях пользователь мог вручную отключить обнаружение третьего и четвёртого дисков в BIOS, чтобы сохранить совместимость. Техническое наследие и уроки того периода остаются актуальными для понимания эволюции ПК-архитектуры и ОС. Проблема многодисковых конфигураций в DOS — хорошая иллюстрация того, как технические ограничения аппаратных платформ, ошибки в программном обеспечении и отсутствие ожиданий пользователей взаимно влияли на развитие компьютерной индустрии. Сейчас вопрос о поддержке более двух жестких дисков кажется тривиальным, ведь современные операционные системы легко масштабируются под десятки накопителей, эффективно управляют RAID-массивами и виртуализацией дискового пространства. Однако изучение истории DOS и её ограничений помогает лучше понять фундамент, на котором строились современные компьютерные системы.
Таким образом, поддержка более двух жёстких дисков в DOS стала возможна благодаря ряду обновлений и специализированных драйверов от производителей оборудования, исправлениям ошибок в операционной системе и возникновению новых архитектур BIOS. Это позволило преодолеть искусственные ограничения первой волны ПК, обеспечив плавный переход к современным решениям хранения данных. Важно помнить, что информация о природе таких ограничений и способах их обхода не только интересна с точки зрения истории, но и полезна для энтузиастов, желающих работать с ретро-компьютерами и восстановить старые конфигурации.