DOS
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 он называется
[13], в других системах может называться иначе, напримерIO.SYS
в PC DOS. Содержимое этого файла постоянно находится в памяти компьютера после загрузки DOS и предоставляет основные API системы. Этот файл не может быть просто скопирован на диск, так как должен находится в определённом его секторе, для этого используется специальная команда SYS.IBMBIO.SYS
- Файл ядра операционной системы
- В MS-DOS он называется
[13]. Как и предыдущий файл, постоянно загружен в память и не может быть просто скопирован на диск. Windows 95 тоже содержит файл с таким названием, однако он содержит лишь параметры загрузки, а ядро DOS перенесено вMSDOS.SYS
IO.SYS
- Командный процессор
- Обрабатывает команды, вводимые в командную строку. В MS-DOS называется
[13]. Умеет обрабатывать несколько базовых команд (Type, Dir, и т. д.), не найдя нужной команды пытается запуститьCOMMAND.COM
или.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 возможно переходить только между каталогами текущего раздела, переход на другой раздел осуществляется конструкцией
, например <буква диска>:
[15].
C:
Стандартный ввод-вывод
DOS включает гораздо более бедные возможности ввода-вывода, чем к примеру unix. В DOS имеется несколько стандартных устройств, имеющих зарезервированное имя:
(принтер), PRN
(параллельные порты), LPT1…4
(последовательные порты), COM1…4
(интерфейс консоли, при чтении он возвращает ввод с клавиатуры, при записи — выводит текст на экран) и CON
(пустое устройство). Файлы с такими именами, даже с указанием расширения, невозможно создать ни в одном каталоге[16]. Для перенаправления ввода-вывода в командной строке используются символы NUL
(вывод в файл или на устройство), >
(вывод в конец файла), >>
(чтение из файла или устройства) и <
(передача вывода из одной команды на вход другой)[17]. В отличие от unix, в программах для DOS эти средства ввода-вывода используются достаточно редко, в основном программы обращаются к более низкоуровневым API системы либо к оборудованию напрямую.
|
Резидентные программы
Одна из особенностей DOS — возможность программы стать резидентной. Для этого при завершении основной программы и передаче управления командному процессору DOS, программа сообщает, что всю её, или какую-то часть нужно оставить в памяти. Как правило, резидентные программы переводят на себя какой-либо вектор прерывания, с помощью которого и происходит взаимодействие между запущенной программой и резидентной. Аналогичным образом работают драйвера устройств, однако последние загружаются только при запуске ОС[18]. DOS не имела штатных средств контроля запущенных резидентных программ и их принудительной выгрузки, а также не имела никакой защиты памяти. Этим пользовались многие ранние вирусы.
Критика
В компании Microsoft MS-DOS рассматривался как временное решение с дальнейшим переходом на более совершенную систему Xenix, однако данная система так и не стала популярной. Уже к концу 80-х архаичность DOS-систем, используемых на PC становилась объектом критики, так как конкурирующие платформы давно обзавелись многозадачными операционными системами с графическим интерфейсом. Windows, вплоть до Windows 95 не были полноценными операционными системами и требовали для своей работы установленный DOS. С другой стороны, даже после появления Windows 95, DOS-подобные операционные системы продолжали использовать по причине их простоты и низких системных требований, возможности получать прямой доступ ко всему оборудованию компьютера, а также стабильности на фоне ранних Windows.
Примечания
- ↑ Murdock, 2008, p. 1.
- ↑ 2,0 2,1 Фигурнов, 1999, с. 112.
- ↑ Таненбаум, 2010, с. 932.
- ↑ Mary Bellis. The Unusual History of MS-DOS The Microsoft Operating System . Дата обращения: 2 сентября 2008. Архивировано 27 апреля 2012 года.
- ↑ (1982-08-23) «Bill Gates, Microsoft and the IBM Personal Computer». InfoWorld.
- ↑ (January 1982) «Of IBM, Operating Systems, and Rosetta Stones». BYTE.
- ↑ (October 1983) «The Unix Tutorial / Part 3: Unix in the Microcomputer Marketplace». BYTE.
- ↑ (1984-12-10) «Unix and the Single User». InfoWorld.
- ↑ (1995-08-17). "What's happening to OS/2". comp.os.os2.advocacy. (Google Groups). Архивная копия от 30 января 2018 на Wayback Machine
- ↑ (1991-07-27) «Microsoft Widens Its Split With I.B.M. Over Software». The New York Times.
- ↑ (1999-05-28) «I.B.M. Executive Describes Price Pressure by Microsoft». New York Times.
- ↑ Фигурнов, 1999, с. 114.
- ↑ 13,0 13,1 13,2 13,3 Фигурнов, 1999, с. 115.
- ↑ Фигурнов, 1999, с. 116.
- ↑ Фигурнов, 1999, с. 141.
- ↑ Фигурнов, 1999, с. 89.
- ↑ Фигурнов, 1999, с. 131.
- ↑ Фигурнов, 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.