DOS

Материал из «Знание.Вики»
Скриншот FreeDOS
Персональный компьютер IBM 5150 PC с загружаемой ОС DOS

DOS (англ. Disk Operating System — «дисковая операционная система») — семейство операционных систем (ОС), предназначенных для работы на компьютерах, совместимых с архитектурой IBM PC. Эти системы берут начало от MS-DOS и PC DOS, с которыми они полностью совместимы[1]. DOS предоставляет пользователю текстовую оболочку для взаимодействия и использует файловую систему FAT (англ. File Allocation Table — «таблица размещения файлов») для управления файлами на диске. Данная ОС поддерживает выполнение только одной программы в каждый момент времени и функционирует в режиме реального адреса процессора.

DOS господствовала на рынке персональных компьютеров, совместимых с IBM PC, на протяжении полутора десятилетий с момента их появления. Наибольшую известность получили варианты этой ОС, разработанные компаниями Microsoft и IBM. В дальнейшем другие производители создали собственные реализации DOS, полностью совместимые с оригиналом, в числе которых DR-DOS, FreeDOS и прочие.

История DOS

Истоки

DOS берёт своё начало от операционной системы CP/M[2], разработанной компанией Digital Research в 1970-х годах для 8-битовых микрокомпьютеров. В 1980 году, когда IBM начала разработку персонального компьютера IBM PC на базе процессора Intel 8086, она обратилась к Digital Research с предложением адаптировать CP/M для нового компьютера. Однако сделка не состоялась из-за разногласий по поводу лицензирования.

Тогда IBM привлекла к разработке ОС компанию Microsoft. Не имея на тот момент собственной системы, Microsoft приобрела у Seattle Computer Products систему QDOS (Quick and Dirty Operating System), которая была создана Тимом Патерсоном как клон CP/M для 8086. Microsoft адаптировала QDOS для IBM PC, добавив поддержку новых функций и выпустила в августе 1981 года под названием MS-DOS 1.0. IBM лицензировала эту систему, добавила свои утилиты и выпустила под названием PC DOS 1.0.

MS-DOS и PC DOS развивались параллельно, иногда обгоняя друг друга по функциональности. MS-DOS продавалась производителям IBM PC-совместимых компьютеров, а PC DOS была эксклюзивом для компьютеров IBM.

Период расцвета (1983-1991 гг.)

Основные этапы разработки и выпуска MS-DOS[3]:

  • В марте 1983 года вышла MS-DOS 2.0, впервые добавившая поддержку иерархической файловой системы (деревья каталогов), блочных драйверов устройств и жёстких дисков объёмом до 16 МБ. Были добавлены новые команды и функции прикладного программного интерфейса API (англ. application programming interface), такие как вывод на принтер. PC DOS 2.0 вышла позже и включала дополнительные утилиты IBM.
  • MS-DOS 3.0 (1984 год) расширила поддержку жёстких дисков до 32 МБ на раздел, добавила логические диски и поддержку сетей. PC DOS 3.0 позволила использовать профили оборудования для разных конфигураций и улучшила работу с национальными языками. Версии 3.1–3.3 добавляли поддержку новых устройств, таких как 3.5″ дисководы 720 КБ.
  • Выход MS-DOS 4.0 в 1988 году стал неудачным из-за нестабильности и проблем с обратной совместимостью, в результате большинство производителей продолжало ставить MS-DOS 3.3, пока Microsoft не выпустила исправления в версии 4.01. Версия 4.0 поддерживала разделы дисков объёмом до 2 ГБ и впервые включала графическую оболочку DOS Shell. В то же время IBM выпустила свою DOS 4.0, которая значительно отличалась от MS-DOS, будучи переписана с нуля специалистами IBM и оптимизирована для PS/2.
  • В июне 1991 года Microsoft выпустила MS-DOS 5.0 — первую коробочную версию для розничной продажи. DOS 5.0 впервые позволила загружать части ОС в верхнюю память (UMB и HMA), освободив больше основной памяти для программ. Был добавлен полноэкранный редактор и возможности восстановления системы.
  • PC DOS 5.0 (1991 год) в свою очередь впервые стала полностью совместимой с MS-DOS на уровне API и формата исполняемых файлов, позволив запускать программы для MS-DOS. Также появились новые утилиты, такие как сжатие дисков.

Закат эпохи DOS (1993-2000 гг.)

MS-DOS 6.0 (1993 год) стала последней крупной версией. Она включала встроенную поддержку сжатия дисков DoubleSpace, дефрагментацию диска, резервное копирование и антивирус. Однако вскоре Microsoft была вынуждена убрать DoubleSpace из-за иска о нарушении патентов со стороны Stac Electronics и выпустила DOS 6.21 без этой функции. В DOS 6.22 включили альтернативный компрессор DriveSpace. Это стало последней отдельной версией MS-DOS.

PC DOS продолжала выходить отдельно, добавляя поддержку PCMCIA-устройств, улучшенную поддержку сетей, загрузку с CD-ROM, APM для энергосбережения, утилиты для системных администраторов. PC DOS 7.0 (1995 год) поддержала длинные имена файлов (до 255 символов) и файловую систему FAT32 (использует 32-разрядную адресацию кластеров — единиц хранения данных на дисках компьютеров).

Начиная с Windows 95, MS-DOS уже не выходила как отдельный продукт, а встраивалась в виде 16-битовой подсистемы в Windows 95, 98 и ME, которые использовали MS-DOS 7.0, 7.1 и 8.0 соответственно. Финальным релизом PC DOS стала версия 2000 (7.0 rev.1) в 1998 году[4].

После 2000 года

С повсеместным переходом на многозадачные ОС с графическим интерфейсом, такие как Windows и Linux, популярность DOS на настольных ПК практически сошла на нет. Тем не менее, системы DOS по-прежнему используются во встроенных системах, загрузочных дисках, для некоторых специализированных задач.

В 1994 году стартовал проект FreeDOS под лицензией GNU GPL с целью создать полностью свободную замену MS-DOS. FreeDOS активно развивается по сей день и даже предустанавливается на некоторых современных компьютерах. DR-DOS, изначально разработанная Digital Research, а затем Novell и Caldera, продолжает развиваться в варианте для встраиваемых систем[5].

Для запуска старых DOS-приложений и игр на современных ОС используются эмуляторы, такие как DOSBox и DOSEMU. Благодаря им DOS-программы могут работать на несовместимом оборудовании, например, под Linux или на процессорах не семейства x86.

Технические характеристики и архитектура

DOS относится к семейству операционных систем с монолитным ядром, предназначенных для работы на IBM PC-совместимых компьютерах. Изначально разрабатывалась для процессоров Intel 8086/8088 и работает в реальном режиме процессора, имея прямой доступ к оборудованию и адресуя до 1 МБ оперативной памяти.

Основные компоненты DOS включают в себя[6]:

  • Модуль интерфейсов ввода-вывода (IO.SYS или IBMBIO.COM) — содержит базовые драйверы устройств и процедуры инициализации.
  • Модуль ядра (MSDOS.SYS или IBMDOS.COM) — обрабатывает вызовы функций DOS от приложений, управляет памятью, процессами, файловой системой.
  • Командный процессор (COMMAND.COM) — предоставляет интерфейс командной строки для взаимодействия с пользователем, запускает программы и обрабатывает пакетные файлы.
  • Встроенные и внешние утилиты — предоставляют сервисные функции, такие как форматирование дисков, отображение каталогов и др.
  • Файл конфигурации (CONFIG.SYS) — содержит настройки DOS и позволяет загружать дополнительные драйверы устройств.
  • Пакетный файл автозапуска (AUTOEXEC.BAT) — содержит команды, которые выполняются при старте системы.

DOS поддерживает файловую систему FAT (12, 16, а в поздних версиях — 32 бит) и использует буквы латинского алфавита для обозначения логических дисков. Изначально использовала формат имён файлов 8.3 (8 символов на имя, 3 на расширение), позже была добавлена поддержка длинных имён файлов.

Для идентификации файлов и каталогов используется иерархическая структура путей с обратным слешем [ \ ] в качестве разделителя. Ряд имён устройств, таких как COM1, LPT1, CON, PRN, AUX и NUL зарезервированы системой и не могут быть использованы для именования файлов.

DOS является однозадачной и однопользовательской системой. Она не поддерживает многозадачность, виртуальную память и защиту памяти процессов, что облегчает разработку программ, но снижает стабильность и безопасность. Тем не менее, поздние версии DOS могут загружать драйверы и программы в верхнюю память (UMB и HMA), освобождая больше основной памяти для приложений.

Взаимодействие с пользователем и программами

DOS предоставляет текстовый интерфейс командной строки (англ. Command line interface, CLI). Пользователь взаимодействует с системой, вводя текстовые команды и имена программ, которые нужно запустить. Также поддерживаются пакетные файлы с расширением .bat (от англ. batch file) для автоматизации последовательностей команд.

Прикладной программный интерфейс (API) DOS включает функции для управления файлами, каталогами, устройствами, памятью, процессами, а также функции ввода-вывода через последовательные и параллельные порты, клавиатуру, дисплей и принтер. Большая часть функций вызывается через программные прерывания (INT 21h для функций DOS, INT 10h для видеосервисов BIOS и т.д.).

Поскольку в DOS отсутствует полноценная поддержка оборудования, разработчики программ часто обращаются к BIOS (от англ. basic input/output system — «базовая система ввода-вывода») или напрямую к портам ввода-вывода для работы с устройствами, особенно с видеокартой, мышью, звуковыми картами. Это обеспечивает гибкость и производительность, но снижает переносимость программ между компьютерами с разным оборудованием.

Для расширения функциональности DOS программы могут использовать механизм резидентой программы TSR (Terminate and Stay Resident). TSR-программы остаются резидентно в памяти после завершения работы и могут обрабатывать аппаратные и программные прерывания, обеспечивая фоновые задачи, такие как горячие клавиши, буфер обмена, отложенная печать и т.д.

Начиная с DOS 5.0 пользователи могут запускать некоторые версии Windows в режиме расширенной DOS (386 Enhanced Mode)[7], что позволяет одновременно работать с DOS и Windows-программами, используя многозадачность и расширенную память. Однако DOS-приложения по-прежнему ограничены 640 КБ основной памяти и реальным режимом процессора.

Для разработки программ под DOS доступны различные языки программирования (Assembler, C, Pascal, Basic) и интегрированные среды, такие как Borland Turbo C, QuickBasic, Watcom C. Для создания текстового и графического интерфейса часто используются библиотеки Turbo Vision и Borland BGI соответственно.

Критика

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

Работа DOS ограничена объёмом доступной оперативной памяти. Изначально она могла адресовать до 1 МБ памяти, из которых только 640 КБ доступны для программ[8], а остальное зарезервировано для системы. С ростом требований приложений этот объём становился недостаточным. Поддержка расширенной памяти (EMS) и старших адресов (HMA и UMA) смягчала, но полностью не решала проблему.

В DOS отсутствует полноценная поддержка аппаратных устройств, кроме базовых функций работы с дисками, дисплеем и клавиатурой. Взаимодействие с другим оборудованием, таким как мыши, принтеры, видео и звуковые карты, возлагается на разработчиков приложений. Это приводит к несовместимости программ с различными аппаратными конфигурациями.

DOS использует файловую систему FAT с ограничениями на имена файлов в формате 8.3 (8 символов на имя, 3 на расширение). Поддержка длинных имён файлов появилась только в поздних версиях. Средства структурной организации данных и способы ограничения размера дискового пространства (дисковые квоты) в DOS отсутствуют.

Интерфейс командной строки DOS неудобен для неопытных пользователей, так как требует знания команд и их параметров. Хотя этот недостаток отчасти компенсируется файловыми менеджерами и графическими оболочками, такими как Norton Commander, полноценной интеграции DOS с GUI нет.

Встроенные средства автоматизации и создания сценариев в виде пакетных файлов примитивны и неудобны по сравнению с командными оболочками Unix-систем. Функции обработки ошибок, управления потоком выполнения, передачи параметров в них существенно ограничены.

Несмотря на широкое распространение и важную роль в популяризации персональных компьютеров, с развитием более совершенных многозадачных ОС недостатки DOS вынудили пользователей переходить на другие, более удобные и совершенные системы, такие как Microsoft Windows и Unix-подобные ОС.

Литература

  • Murdock, Everett. DOS the Easy Way: a complete guide to Microsoft's MS-DOS. — EasyWay Downloadable Books, 2008. — 334 с. — ISBN 0923178023.
  • В.Э.Фигурнов. Часть 3. Основы работы в среде MS DOS // IBM PC для пользователя. — М.: Инфра-М, 1999. — 480 с. — ISBN 5-86225-471-4.

Примечания

WLW Checked Off icon.svg Данная статья имеет статус «готовой». Это не говорит о качестве статьи, однако в ней уже в достаточной степени раскрыта основная тема. Если вы хотите улучшить статью — правьте смело!