MS-DOS

MS-DOS () — однозадачная дисковая операционная система для компьютеров на базе архитектуры x86. MS-DOS положила начало семейству DOS-совместимых операционных систем и была самой популярной операционной системой для IBM PC-совместимых компьютеров с 1980-х до середины 1990-х годов, пока её не вытеснили операционные системы с графическим пользовательским интерфейсом, в основном из семейства Microsoft Windows.

Описание 
В 1981 году корпорация IBM разместила запрос на создание операционной системы, которая должна была использоваться в новом семействе компьютеров IBM PC. Microsoft выкупила права на операционную систему 86-DOS у  и начала работу по её модификации под требования IBM. Впоследствии IBM лицензировала MS-DOS и выпустила её в августе 1981 года под наименованием PC DOS 1.0. В дальнейшем разработка MS-DOS и PC DOS велась Microsoft и IBM совместно до 1993 года, когда были выпущены два раздельных релиза — 6.0 от Microsoft и 6.1 от IBM.

За время существования MS-DOS вышло восемь основных релизов (1.00, 2.00 и т. д.) и два десятка промежуточных (3.10, 3.30 и т. д.), пока в 2000 году Microsoft не прекратила её разработку. Изначально MS-DOS ориентировалась на процессор Intel 8088, использовавшийся в первом IBM PC, и работала только с дискетами, на которых располагались как сама ОС, так и программы и данные пользователей. Последующие версии обзавелись возможностью работы с различными типами накопителей, такими как жёсткий диск и CD-ROM, добавилась поддержка новых процессоров и компьютерных архитектур. Это был ключевой продукт фирмы, дававший ей существенный доход и маркетинговый ресурс, в ходе развития Microsoft превратилась из разработчика языка программирования в крупную компанию, производящую самое разнообразное программное обеспечение. MS-DOS также стала базовым слоем для ранних версий Windows, запускавшихся как графический пользовательский интерфейс поверх командной строки.

Последней коробочной версией стала 6.22, однако MS-DOS продолжала служить загрузчиком для Windows 95 (версии 7.0 и 7.1), Windows 98 (версия 7.1) и Windows Me (версия 8.0).

25 марта 2014 года музей компьютерной истории в Маунтин-Вью с разрешения компании Microsoft обнародовал исходный код операционной системы MS-DOS (версии 1.1 и 2.0), вышедшей в 1981 году, а также текстового редактора Word (1.1а) для Windows. В 2018 году был опубликован исходный код MS-DOS версий 1.25 и 2.0 под свободной лицензией MIT.

История MS-DOS 

MS-DOS является переименованной версией 86-DOS, написанной Тимом Патерсоном из Seattle Computer Products. Разработка 86-DOS заняла всего шесть недель и представляла собой клон CP/M от Digital Research, портированный для использования на процессоре 8086 и содержащий всего два отличия от оригинала: улучшенную логику буферизации дисковых секторов и новую файловую систему FAT12. Первая версия 86-DOS вышла в августе 1980 года. Согласно подписанному в ноябре 1980 года договору с IBM, от компании Microsoft требовалось предоставить операционную систему для нового компьютера IBM PC, основанного на Intel 8086. Для этого Microsoft в мае 1981 года наняла Тима Патерсона для завершения адаптации 86-DOS к прототипу IBM PC, а затем в июле того же года полностью выкупила права на 86-DOS 1.10 за $75 тыс.. Microsoft сохранила нумерацию версий, но переименовала ОС в MS-DOS. В августе 1981 года лицензированная корпорацией IBM MS-DOS 1.10/1.14 под наименованием PC DOS 1.0 начала поставляться с новыми персональными компьютерами IBM PC. Причину, почему Microsoft была вынуждена купить стороннюю разработку, а не писать заново, пояснил сам Билл Гейтс: его компания не имела возможности успеть с написанием операционной системы в срок. В результате авральной работы им удалось переработать 8-битную QDOS (позднее названную 86-DOS) для микропроцессоров 8088/8086 и заключить договор с IBM о реализации продукта.

В версии 2.0, приуроченной к выпуску компьютера IBM PC XT с жёстким диском, MS-DOS кардинально расширила функциональность ОС, отчасти адаптировав недостающее из Unix (например, подкаталоги, работа с файлами через дескрипторы, перенаправление ввода-вывода, обращение к устройствам по именам и т. п.). Масштаб внесённых изменений подчёркивает и тот факт, что больша́я часть поздних программ, в том числе для последних версий MS-DOS, имеет в требованиях строчку «DOS 2.0 или выше».

Первоначально MS-DOS разрабатывалась как операционная система, способная работать на любых компьютерах с процессором 8086. Microsoft повторяла модель распространения CP/M, когда для каждого компьютера с различным аппаратным обеспечением использовалась своя версия MS-DOS. Для этого ОС имела модульную структуру с минимальным набором драйверов для дисковых накопителей и консоли, интегрированных в ядро, и устанавливаемых драйверов других устройств, загружаемых и доступных во время загрузки. OEM-производители использовали комплект разработчика, предоставляемый Microsoft, для создания собственной версии MS-DOS со стандартным ядром, но с драйверами устройств ввода-вывода, характерными для их оборудования. Производителями такая версия обычно поставлялась на дискетах вместе с компьютерами. Таким образом, существовало множество версий MS-DOS для различных архитектур, и следует отличать IBM PC-совместимые и MS-DOS-совместимые компьютеры. Некоторые компьютеры, например Tandy 2000, могли выполнять программное обеспечение, написанное только для MS-DOS, но не такое, где бы использовались особенности архитектуры IBM PC.

Конструкция операционной системы предполагает хорошую совместимость, если программы для своей работы используют только стандартные вызовы MS-DOS. Подобная философия в дальнейшем была реализована в Windows NT (см. Слой аппаратных абстракций). Тем не менее в MS-DOS большая скорость работы программ достигается только через прямой доступ к аппаратному обеспечению (память видеоадаптера, чтение и запись портов), что было особенно характерно для игр того времени, требующих значительных ресурсов компьютера. Доминирование IBM PC-совместимой архитектуры привело к распространению многочисленных клонов, и необходимость в отдельных аппаратно-зависимых версиях операционной системы отпала. Важной частью совместимости являлось сохранение неизменными функций ROM BIOS, используемых множеством выпущенных программ, обходивших медленные системные вызовы MS-DOS.

Впоследствии зависимость от архитектуры IBM вызвала ряд серьёзных проблем в индустрии при смене оригинального дизайна IBM PC. Так, первоначально не предполагалось использовать более 640 Кбайт оперативной памяти (барьер 640 Кбайт), поскольку более высокие области ОЗУ были зарезервированы для периферийных устройств и ПЗУ. Производителям пришлось изобретать различные схемы обхода данного препятствия (EMS, XMS и т. п.) для доступа к дополнительной памяти. Если бы первоначальная идея с независимостью от аппаратного обеспечения была продолжена, то подобной проблемы удалось бы избежать. Таким образом, MS-DOS — это операционная система, работающая в реальном режиме процессора с архитектурой x86, в котором она способна адресовать не более 1 Мбайт ОЗУ.

Для компьютеров, произведённых IBM, устанавливалась версия под названием PC DOS. Для сторонних производителей Microsoft предлагала версию DOS уже под именем MS-DOS. Благодаря сотрудничеству IBM и Microsoft, вплоть до версии 5.0 системы PC DOS и MS-DOS практически не отличались. Первой коробочной версией MS-DOS стала 5.0 в варианте Upgrade, до этого все релизы распространялись только как OEM-продукт компаниями-производителями персональных компьютеров.

История версий

Дистрибутив MS-DOS 
Минимальный набор файлов MS-DOS:
 файлы ядра:
 IO.SYS — расширение BIOS;
 MSDOS.SYS — обработка прерываний (в версиях 7.0, 7.01 и 8.0 интегрирован в IO.SYS);

 командный процессор:
 COMMAND.COM — поддержка интерфейса командной строки.

Строго говоря, для запуска MS-DOS наличие файла COMMAND.COM необязательно. Его можно заменить другим командным процессором, способным выполнять нужные команды. В своё время сторонними разработчиками было выпущено множество командных процессоров. Наиболее распространённым командным процессором, выпущенным сторонней фирмой, был NDOS.COM (лицензированный 4DOS) из пакета Norton Utilities фирмы Symantec.

Помимо указанных файлов команда SYS.COM и FORMAT.COM с ключом /S, начиная с версии 6.0, дополнительно переносят на системный диск файл DBLSPACE.BIN (6.0 — 6.2) или DRVSPACE.BIN (6.22), отвечающие за работу со сжатыми дисками в форматах Microsoft DoubleSpace или DriveSpace соответственно.

Файлы конфигурации
Для задания конфигурации ОС используются конфигурационные файлы специального формата:
 CONFIG.SYS — конфигурирование системы и загрузка драйверов устройств на этапе инициализации MSDOS.SYS.
 AUTOEXEC.BAT — стартовый пакетный файл. Выполняется при запуске командного процессора во время загрузки системы.

Также в дистрибутив входят следующие драйверы и программы:
 ANSI.SYS — расширенный драйвер консоли (экрана и клавиатуры).
 COUNTRY.SYS — файл с таблицами локализации, алфавитами сортировки.
 DISPLAY.SYS — драйвер дисплея; в частности, загружает локализованные шрифты.
 DBLSPACE.EXE — Microsoft DoubleSpace, программа сжатия данных (6.0 — 6.2).
 DEFRAG.EXE — Microsoft Defragmenter, дефрагментатор дисков.
 DOSSHELL.EXE — MS-DOS Shell, оболочка, использующая двухпанельный принцип с псевдографическим интерфейсом. В MS-DOS 6.2 была перенесена в дополнительный пакет MS-DOS Resource Kit.
 DRVSPACE.EXE — Microsoft DriveSpace, программа сжатия данных (6.22).
 HIMEM.SYS — драйвер дополнительной (extended) и HMA-памяти.
 HELP.COM — интерактивный справочник MS-DOS Help.
 EMM386.EXE — драйвер эмуляции расширенной памяти (expanded memory) и управления верхней (UMB) памятью.
 INTERLNK.EXE, INTERSVR.EXE — подсистема межкомпьютерной связи Interlnk.
 KEYB.COM — драйвер переключения языковых раскладок клавиатуры.
 KEYBOARD.SYS — файл с описаниями языковых раскладок клавиатуры, оформленный как драйвер.
 *.CPI — загружаемые шрифты кодовых страниц экрана и клавиатуры.
 MEMMAKER.EXE — Microsoft MemMaker, оптимизатор верхней памяти.
 MODE.COM — программа настройки ряда параметров экрана и портов ввода-вывода системы: последовательного, параллельного.
 MSAV.EXE — Microsoft Anti-Virus for MS-DOS, антивирус.
 MSD.EXE — Microsoft Diagnostics, информационная утилита, отображающая конфигурацию ПК.
 MSBACKUP.EXE — Microsoft Backup for MS-DOS, резервирование и восстановление информации.
 MWAV.EXE — Microsoft Anti-Virus for Windows, антивирус.
 MWBACKUP.EXE — Microsoft Backup for Windows, резервирование и восстановление информации.
 MWUNDEL.EXE — Microsoft Undelete for Windows, восстановление удалённых файлов.
 POWER.EXE — драйвер управления энергопотреблением.
 RAMDRIVE.SYS — драйвер электронного диска.
 SCANDISK.EXE — Microsoft Scandisk, сканер-корректор дисков.
 SMARTDRV.EXE — Microsoft SmartDrive, программа кэширования дисков.
 VSAFE.COM — VSafe, резидентный вирус-фильтр.
 UNDELETE.EXE — Microsoft Undelete for MS-DOS, восстановление удалённых файлов.
 QBASIC.EXE — язык программирования от Microsoft для написания программ.

Надстройки и расширения сторонних производителей 

Многозадачность
 DESQVIEW
 DV/X

Сетевые клиенты и серверы
 Lantastic
 Personal Netware

Соединения компьютер-компьютер
 Laplink
 Norton Link

Расширение памяти
В связи с развитием архитектуры IBM PC/XT появилась расширенная, а затем, в компьютерах AT, и дополнительная память, которую было возможно использовать в компонентах ОС и программах с помощью механизмов EMS, XMS, HMA, UMA/UMB, которые обеспечиваются BIOS расширенной памяти и драйверами DOS — менеджерами памяти от Microsoft (HIMEM и EMM386) или сторонними менеджерами (например, QEMM).

Оболочки
Для MS-DOS, предоставляющей пользователю лишь интерфейс командной строки, был создан целый ряд так называемых оболочек, то есть программ, которые позволяют сделать работу с файлами более наглядной и удобной. Наиболее известные из них:

 Norton Commander — наиболее популярный в России коммерческий файловый менеджер. Все операции с файлами производятся на двух панелях с помощью горячих клавиш и, позднее, мыши и меню. Последние версии включают множество плагинов, значительно расширяющих функциональность. По образу Norton Commander позже было создано множество интерфейсов файловых менеджеров и других программ для различных операционных систем.
 Volkov Commander — клон Norton Commander. В отличие от Norton Commander, поддерживает длинные имена файлов (для версии 4.99 alpha). Очень компактен. Базовый комплект включает только сам файловый менеджер с минимальным, но достаточным набором функций, и занимает на диске около 64 Кбайт. Функциональность расширяется подключением других приложений.
 DOS Navigator — дальнейшее развитие идеи Norton Commander. Бо́льшая функциональность. Бо́льшее количество панелей. Поддержка текстовых режимов SVGA (132×25 — 132×60). Оконный интерфейс с многозадачностью для плагинов. Расширение благодаря лёгкому и удобному подключению плагинов и приложений сторонних разработчиков.

Проблемы запуска приложений MS-DOS под Microsoft Windows 

Разработчики приложений под MS-DOS часто использовали недокументированные возможности и функции, а также прямое обращение к аппаратным средствам в обход операционной системы. Это стало причиной того, что в операционных системах Windows 9x и более новых не всегда удаётся запустить приложение, написанное для MS-DOS.

Ещё одна проблема, с которой сталкиваются пользователи при работе с приложениями MS-DOS на современных компьютерах, — значительная разница в быстродействии. За последние годы быстродействие компьютеров значительно возросло. Поэтому многие игры для MS-DOS на современном компьютере работают слишком быстро, так что пользователь не успевает увидеть происходящее на экране и проанализировать игровую ситуацию. Причина этому — использование циклов для формирования задержек. Современные процессоры выполняют их слишком быстро, а часто и вообще игнорируют (работа интеллектуального оптимизатора). По этой же причине некоторые приложения прекращают работу, выводя ошибку деления на ноль.

Для решения вышеназванных и целого ряда других проблем работы с приложениями MS-DOS под управлением Windows NT и Unix-подобных ОС применяются специальные эмуляторы. На данный момент наиболее известный из них — DOSBox, позволяющий настраивать индивидуальные параметры запуска каждого DOS-приложения: быстродействие эмулируемого компьютера, эмулируемая звуковая и видеокарта и т. п. Иногда используются замедлители процессора.

Также существует улучшенная версия DOSBox-X, которая позволяет сэмулировать огромный перечень оборудования и DOS-систем, а также имеет доступ к сети.

Помимо эмулятора DOSBox, существует эмулятор VDOS, который основан на эмуляторе DOSBox, но, в отличие от этого эмулятора, имеет полный доступ к сети и оборудованию.

Конкуренты MS-DOS

DR-DOS 
DR-DOS (она же Novell DOS и OpenDOS) — совместимая с MS-DOS дисковая операционная система, разработанная компанией Digital Research и унаследовавшая многие черты своей предшественницы — операционной системы CP/M. Особенностями этой ОС являются расширенные возможности, включая встроенный язык скриптов REXX, впервые появившаяся утилита сжатия дисков Stacker, компактный код программ.

PC DOS 
IBM PC DOS (IBM Personal Computer Disk Operating System) — дисковая операционная система для персональных компьютеров фирмы IBM. PC DOS была создана на основе операционной системы 86-DOS от Seattle Computer Products. Функциональные отличия от MS-DOS незначительны.

FreeDOS 
FreeDOS — свободная операционная система, совместимая с MS-DOS. FreeDOS распространяется на условиях GNU General Public License, включает несколько программ под другими свободными и проприетарными лицензиями. Проект был начат в 1994 году программистом Джимом Холлом (Jim Hall) как PD-DOS, но вскоре название было изменено на FreeDOS. Версия FreeDOS 1.0 вышла в свет 3 сентября 2006 года.

Novell DOS 
В том же 1991 году Digital Research была куплена компанией Novell, которая переименовала DR-DOS в Novell DOS, и в свет вышла версия Novell DOS 6.0, а затем — Novell DOS 7.0.

См. также 
 Список команд DOS
 Расширитель DOS
 FreeDOS

Примечания

Ссылки 
  — Исходный код MS-DOS 1.25 и 2.0
 Операционная система MS-DOS Александр Фролов, Григорий Фролов
 Тонкая настройка и оптимизация MS-DOS Александр Фролов, Григорий Фролов
 Наилучшее использование файлов CONFIG.SYS и AUTOEXEC.BAT
 KB71986 MS-DOS 5.0 Internal and External Commands
 MS-DOS отмечает тридцатилетие Компьюлента, 27 июля 2011

Операционные системы Microsoft
Дисковые однозадачные операционные системы
DOS
Программы, разработка которых прекращена
Неподдерживаемые ОС Microsoft