DOS

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Скриншот FreeDOS

DOS (англ. Disk Operating System — «дисковая операционная система», ДОС) — семейство операционных систем для PC-совместимых компьютеров, происходящих от MS DOS и PC DOS и совместимых с ними[1][2]. До появления Windows 95 системы класса DOS были наиболее популярными операционными системами для PC, несмотря на их ограничения. После широкого распространения Windows и других многозадачных ОС, DOS сохранили ограниченное распространение как системы для низкопроизводительных машин, а также как предустановленные системы для ноутбуков, рассчитанные на дальнейшую замену современной операционной системой. Для запуска программ, рассчитанных на работу с DOS под другими операционными системами существуют эмуляторы, такие как DOSBox.

Существовали другие операционные системы с аббревиатурой DOS в названии, например, Apple DOS, TR-DOS, но они несовместимы с MS-DOS и между собой, потому не относятся к данному понятию.

История[править | править код]

Аббревиатура DOS впервые использовалась в названии операционной системы DOS/360 (англ.), точнее это было семейство операционных систем, включавших BOS/360 (базовая ОС), TOS/360 (ОС для магнитных лент) и т. д. Позже аббревиатура DOS стала использоваться в названии множества операционных систем, все они были несовместимы между собой и могли иметь различные реализации взаимодействия с пользователем — например, ProDOS для компьютеров Apple IIGS имела встроенную графическую оболочку.

В 1979 году компания SCP стала выпускать комплекты для сборки компьютеров на основе процессора Intel 8086. Не дождавшись, когда Digital Research, владевшая правами на CP/M, портирует эту систему на новый процессор, программисты компании написали собственную ОС. Она получила неофициальное название QDOS (англ. Quick and Dirty OS — быстрая и «сырая» ОС), и в дальнейшем стала продаваться как 86-DOS.

При разработке IBM PC было необходимо быстро разработать для него операционную систему. Изначально предполагалось заказать порт CP/M у Digital Research, но компаниям не удалось договориться об условиях лицензирования. Задачу перепоручили компании Microsoft, где было решено купить права на 86-DOS и адаптировать её для новой машины[3]. Однако программисты Microsoft не справились с задачей в срок, из-за чего вмешались уже программисты компании IBM. Совместными усилиями компаний была рождена операционная система, которая первоначально получила название PC-DOS, однако сторонним клиентам она продавалась под названием MS DOS[4]. В течение года Microsoft заключила множество договоров об OEM-поставке MS DOS на компьютеры 70 различных компаний[5]. В основном это были OEM-версии DOS, адаптированные под конкретные машины, но с начала 90-х Microsoft начала продавать «коробочные» версии MS-DOS 5.0.

Когда в Digital Research осознали, что PC DOS во многом похожа на CP/M, они стали угрожать судебными исками. В IBM решили пойти на компромисс: покупателям разрешено будет выбирать между PC DOS и CP/M-86 (англ.), однако из-за более высокой цены (на $200 больше, чем у PC DOS) покупатели предпочитали разработку IBM/Microsoft.

Чтобы вернуть себе позиции на рынке, Digital Research выпустила несколько операционных систем, совместимых с MS DOS и CP/M-86: Concurrent DOS, FlexOS, DOS Plus и Multiuser DOS, позже — DR-DOS, совместимую только с MS-DOS. В конце концов компанию Digital Research приобрела Novell и её продукты стали выпускаться от её имени.

В самой Microsoft MS-DOS не считали перспективным продуктом, планируя в будущем заменить DOS на более перспективную ОС Xenix[6][7]. В компании IBM долго не хотели ничем заменять DOS[8], но после того, как AT&T начала продавать свою версию Unix, было решено начать разработку OS/2[9]. Тем не менее, IBM и Microsoft не смогли договориться о том, будет ли наследником DOS Windows или OS/2[10], в результате чего пути компаний разошлись, MS-DOS и PC DOS в дальнейшем развивались независимо[11]. Последней версией MS-DOS стала 6.22, после чего она перестала продаваться как отдельный продукт, войдя в состав Windows 95 как её подсистема, в то время как компания IBM позже выпустила PC DOS 2000 (он же PC DOS 7.1), а в качестве OEM развивала её до версии 7.10.

После того, как Microsoft объявила о прекращении разработки MS-DOS, программисты Джим Холл, Пат Виллани и Тим Норман начали разработку аналога, который бы публиковался под свободной лицензией. Этот проект позже получил название FreeDOS.

Несмотря на выход Windows 95 и прекращение поддержки MS DOS компанией Microsoft, программы под DOS продолжали выходить ещё какое-то время. В частности, это были компьютерные игры, которые под DOS могли более полно использовать ресурсы оборудования, а также прикладные программы для слабых машин.

Описание[править | править код]

DOS — семейство операционных систем с монолитным ядром, предназначенных для работы с PC-совместимыми компьютерами[2]. В системе отсутствует слой аппаратных абстракций. Поддержка большинства устройств, за исключением самых базовых функций, таких как работа с клавиатурой, текстовым дисплеем и файловой системой, возложена на пользовательское ПО[12].

DOS работают в реальном режиме адресации x86, что позволяет использовать для нужд операционной системы не более 1 МБ адресного пространства, с учётом специальных областей памяти становится доступно не более 640КБ ОЗУ. Доступ к остальной оперативной памяти осуществляется с помощью специальных драйверов, наподобие HIMEM.SYS. Как правило используются только 16-битные команды процессора для сохранения совместимости с 8088.

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

Основной способ взаимодействия с пользователем — через ввод команд. Возможно использование программ-оболочек, таких, как Norton Commander, но они не являются частью системы.

Составные части DOS[править | править код]

Модуль интерфейсов ввода-вывода
В MS-DOS он называется IO.SYS[13], в других системах может называться иначе, например IBMBIO.SYS в PC DOS. Содержимое этого файла постоянно находится в памяти компьютера после загрузки DOS и предоставляет основные API системы. Этот файл не может быть просто скопирован на диск, так как должен находится в определённом его секторе, для этого используется специальная команда SYS.
Файл ядра операционной системы
В MS-DOS он называется MSDOS.SYS[13]. Как и предыдущий файл, постоянно загружен в память и не может быть просто скопирован на диск. Windows 95 тоже содержит файл с таким названием, однако он содержит лишь параметры загрузки, а ядро DOS перенесено в IO.SYS
Командный процессор
Обрабатывает команды, вводимые в командную строку. В MS-DOS называется COMMAND.COM[13]. Умеет обрабатывать несколько базовых команд (Type, Dir, и т. д.), не найдя нужной команды пытается запустить .COM или .EXE файл с подходящим названием из текущего каталога, либо из прописанных в переменных окружения.
Файл конфигурации
Содержит данные о загружаемых драйверах и системные настройки. Типичное название: CONFIG.SYS.
Сценарий запуска
Пакетный файл, запускающийся при старте системы. Типичное название AUTOEXEC.BAT.
Встроенные утилиты
В DOS входят различные утилиты, как программы проверки и форматирования дисков. С точки зрения пользователя не отличаются от команд оболочки, но являются отдельными исполняемыми файлами, расположенными в каталоге, который задаётся переменными окружения, поэтому часто эти утилиты называют внешними командами DOS[13].
Драйверы устройств
DOS поддерживает довольно небольшое количество стандартных устройств, в основном это касается драйверов локализованной клавиатуры или нестандартных дисковых накопителей. Поддержка большинства прочих устройств, таких как мышь или звуковая карта возложена на конечное ПО.
Загрузочный сектор
не входит в файловую систему но располагается на диске в первом секторе. Его задача — найти системные файлы DOS, загрузить их в память и передать им управление[14].
BIOS
Несмотря на то, что BIOS не является строго говоря частью DOS, некоторые функции операционной системы, в частности API для основных устройств ввода-вывода: клавиатуры, текстового и основных графических режимов, выполняет именно она.

Особенности работы[править | править код]

Работа с файлами[править | править код]

За исключением первых версий, DOS умеет работать с иерархической файловой системой — без специальных драйверов поддерживаются системы типа FAT. Командная оболочка не различает регистр файлов. Ранние версии DOS поддерживали не более 8 символов в имени файла и ещё 3 символа в расширении. В качестве разделителя пути используется символ обратного слеша (в отличие от прямого слеша в unix), так как прямой слеш используется для указания ключей запуска.

В отличие от unix, DOS не имеет системного корневого каталога, каждый примонтированный раздел файловой системы имеет свой корневой каталог. Разделы обозначаются буквами от A до Z, причём первые две буквы принято назначать дисководам гибких дисков. С помощью команды cd возможно переходить только между каталогами текущего раздела, переход на другой раздел осуществляется конструкцией <буква диска>:, например C:[15].

Стандартный ввод-вывод[править | править код]

DOS включает гораздо более бедные возможности ввода-вывода, чем к примеру unix. В DOS имеется несколько стандартных устройств, имеющих зарезервированное имя: PRN (принтер), LPT1…4 (параллельные порты), COM1…4 (последовательные порты), CON (интерфейс консоли, при чтении он возвращает ввод с клавиатуры, при записи — выводит текст на экран) и NUL (пустое устройство). Файлы с такими именами, даже с указанием расширения, невозможно создать ни в одном каталоге[16]. Для перенаправления ввода-вывода в командной строке используются символы > (вывод в файл или на устройство), >> (вывод в конец файла), < (чтение из файла или устройства) и | (передача вывода из одной команды на вход другой)[17]. В отличие от unix, в программах для DOS эти средства ввода-вывода используются достаточно редко, в основном программы обращаются к более низкоуровневым API системы либо к оборудованию напрямую.

Резидентные программы[править | править код]

Одна из особенностей DOS — возможность программы стать резидентной. Для этого при завершении основной программы и передаче управления командному процессору DOS, программа сообщает, что всю её, или какую-то часть нужно оставить в памяти. Как правило, резидентные программы переводят на себя какой-либо вектор прерывания, с помощью которого и происходит взаимодействие между запущенной программой и резидентной. Аналогичным образом работают драйвера устройств, однако последние загружаются только при запуске ОС[18]. DOS не имела штатных средств контроля запущенных резидентных программ и их принудительной выгрузки, а также не имела никакой защиты памяти. Этим пользовались многие ранние вирусы.

Критика[править | править код]

В компании Microsoft MS-DOS рассматривался как временное решение с дальнейшим переходом на более совершенную систему Xenix, однако данная система так и не стала популярной. Уже к концу 80-х архаичность DOS-систем, используемых на PC становилась объектом критики, так как конкурирующие платформы давно обзавелись многозадачными операционными системами с графическим интерфейсом. Windows, вплоть до Windows 95 не были полноценными операционными системами и требовали для своей работы установленный DOS. С другой стороны, даже после появления Windows 95, DOS-подобные операционные системы продолжали использовать по причине их простоты и низких системных требований, возможности получать прямой доступ ко всему оборудованию компьютера, а также стабильности на фоне ранних Windows.

Примечания[править | править код]

  1. Murdock, 2008, p. 1.
  2. 1 2 Фигурнов, 1999, с. 112.
  3. Таненбаум, 2010, с. 932.
  4. Mary Bellis. The Unusual History of MS-DOS The Microsoft Operating System. Дата обращения: 2 сентября 2008. Архивировано 27 апреля 2012 года.
  5. Freiberger, Paul (1982-08-23). “Bill Gates, Microsoft and the IBM Personal Computer”. InfoWorld: 22. Архивировано из оригинала 2015-03-18. Дата обращения 2015-01-29. Используется устаревший параметр |url-status= (справка)
  6. Morgan, Chris (January 1982). “Of IBM, Operating Systems, and Rosetta Stones”. BYTE: 6. Дата обращения 2013-10-19.
  7. Fiedler, Ryan (October 1983). “The Unix Tutorial / Part 3: Unix in the Microcomputer Marketplace”. BYTE: 132. Дата обращения 2015-01-30.
  8. Howitt, Doran (1984-12-10). “Unix and the Single User”. InfoWorld: 28. Архивировано из оригинала 2018-01-29. Дата обращения 2015-02-07. Используется устаревший параметр |url-status= (справка)
  9. (1995-08-17). "What's happening to OS/2". comp.os.os2.advocacy. (Google Groups). Архивная копия от 30 января 2018 на Wayback Machine
  10. Pollack, Andrew (1991-07-27). “Microsoft Widens Its Split With I.B.M. Over Software”. The New York Times. Архивировано из оригинала 2010-11-02. Дата обращения 2008-09-02. Используется устаревший параметр |url-status= (справка)
  11. Brinkley, Joel (1999-05-28). “I.B.M. Executive Describes Price Pressure by Microsoft”. New York Times. Архивировано из оригинала 2008-12-11. Дата обращения 2008-09-02. Используется устаревший параметр |url-status= (справка)
  12. Фигурнов, 1999, с. 114.
  13. 1 2 3 4 Фигурнов, 1999, с. 115.
  14. Фигурнов, 1999, с. 116.
  15. Фигурнов, 1999, с. 141.
  16. Фигурнов, 1999, с. 89.
  17. Фигурнов, 1999, с. 131.
  18. Фигурнов, 1999, с. 116−117.

Литература[править | править код]

  • В.Э.Фигурнов. Часть 3. Основы работы в среде MS DOS // IBM PC для пользователя. — М.: Инфра-М, 1999. — ISBN 5-86225-471-4.
  • Murdock, Everett. DOS the Easy Way. — EasyWay Downloadable Books, 2008. — С. 1. — ISBN 0923178023.
  • Э. Таненбаум. Современные операционные системы = Modern operating systems. — 3-е издание. — Питер, 2010. — 1120 с. — (Классика Computer Science). — ISBN 978-5-49807-306-4.
  • Васятко В.Н., Шелепова Е.Н., Панушкина О. В., Константинова С.С. и др. MS-DOS 6.0 Справочное руководство для пользователей компьютеров IBM PC. — ВА-Принт, 1994. — ISBN 5-85734-023-3.
  • Гордеев А. В. Операционные системы: Учебник для вузов. — 2-е. — Санкт-Петербург, 2007. — ISBN 978-5-94723-632-3.
  • Microsoft, Antitrust and the New Economy: Selected Essays / David S. Evans. — Springer US, 2002. — ISBN 9780792376675.