DOS

Материал из Википедии — свободной энциклопедии
Перейти к навигацииПерейти к поиску
У этого термина существуют и другие значения, см.DOS (значения).
FreeDOS. Показана начальная загрузка, инициализация драйвера мыши, вывод команд ver и dir

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

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

Содержание

История

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

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

SCP86-DOS. Показан запускассемблера от Seattle Computer Product и утилиты HEX2BIN

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

PC DOS версии 1.0. В приглашении — только буква диска, первая версия не поддерживала подкаталоги

При разработке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.

DR-DOS 8.0

Чтобы вернуть себе позиции на рынке,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]. В системе отсутствуетслой аппаратных абстракций. Поддержка большинства устройств, за исключением самых базовых функций, таких каквывод текста на экран, работа состандартной клавиатурой ифайловой системой FAT, возложена на пользовательское ПО[12].

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

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

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

Составные части DOS

[править |править код]
Модуль интерфейсов ввода-вывода
В MS-DOS он называетсяIO.SYS[13], в других системах может называться иначе, напримерIBMBIO.SYS в PC DOS. Содержимое этого файла постоянно находится воперативной памяти после загрузки DOS и предоставляет основныеAPI системы. Этот файл не может быть просто скопирован на диск, так как должен находится в определённом его секторе, для этого используется специальная команда SYS.
Файл ядра операционной системы
В MS-DOS он называетсяMSDOS.SYS[13], в PC DOS —IBMDOS.COM. Как и предыдущий файл, постоянно загружен в память и не может быть просто скопирован на диск. 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 поддерживает два вида бинарных исполняемых файлов — с расширением.COM и.EXE, а также один скриптовый (состоящий из команд оболочки) — с расширением.BAT.

Файлы типа.COM унаследованы от CP/M. Они представляют собой программу непосредственно в том виде, в каком она будет загружена в сегмент оперативной памяти. Длина.COM-файла не может превышать размер одного сегмента (64 К) за вычетом 256 байт.

Файл типа.EXE имеет более сложный формат и не ограничен по размеру. Этот файл должен начинаться с сигнатурыMZ (0x4D,0x5A), за которой следует 26-байтный заголовок, содержащий метаданные, включая необходимый объём памяти, начальное значение сегментного регистра и т.д. После заголовка идёт таблица расположения сегментов в формате «двухбайтное смещение/двухбайтный сегмент», и затем, после выравнивания на 512 байт, начинается сама программа.

Стандартный ввод-вывод

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

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

Резидентные программы

[править |править код]
Основная статья:Резидентная программа

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

Критика

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

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

Примечания

[править |править код]
  1. Murdock, 2008, p. 1.
  2. 12Фигурнов, 1999, с. 112.
  3. Таненбаум, 2010, с. 932.
  4. Mary Bellis. The Unusual History of MS-DOS The Microsoft Operating System . Дата обращения: 2 сентября 2008. Архивировано 31 октября 2022 года.
  5. Freiberger, Paul (23 августа 1982).Bill Gates, Microsoft and the IBM Personal Computer.InfoWorld: 22.Архивировано 18 марта 2015. Дата обращения: 29 января 2015.
  6. Morgan, Chris (Январь 1982).Of IBM, Operating Systems, and Rosetta Stones.BYTE: 6. Дата обращения: 19 октября 2013.
  7. Fiedler, Ryan (Октябрь 1983).The Unix Tutorial / Part 3: Unix in the Microcomputer Marketplace.BYTE: 132. Дата обращения: 30 января 2015.
  8. Howitt, Doran (10 декабря 1984).Unix and the Single User.InfoWorld: 28.Архивировано 29 января 2018. Дата обращения: 7 февраля 2015.
  9. Letwin, Gordon (17 августа 1995).What's happening to OS/2.Newsgroupcomp.os.os2.advocacy.Usenet: DDFvKo.G4M@lab.lwpi.com.Архивировано 7 марта 2023. Дата обращения: 6 ноября 2013.Источник . Дата обращения: 27 апреля 2022. Архивировано 30 января 2018 года.
  10. Pollack, Andrew (27 июля 1991).Microsoft Widens Its Split With I.B.M. Over Software.The New York Times.Архивировано 2 ноября 2010. Дата обращения: 2 сентября 2008.
  11. Brinkley, Joel (28 мая 1999).I.B.M. Executive Describes Price Pressure by Microsoft.New York Times.Архивировано 11 декабря 2008. Дата обращения: 2 сентября 2008.
  12. Фигурнов, 1999, с. 114.
  13. 1234Фигурнов, 1999, с. 115.
  14. Фигурнов, 1999, с. 116.
  15. Фигурнов, 1999, с. 141.
  16. Фигурнов, 1999, с. 89.
  17. Фигурнов, 1999, с. 131.
  18. Фигурнов, 1999, с. 116−117.

Литература

[править |править код]
Источник —https://ru.wikipedia.org/w/index.php?title=DOS&oldid=150760355
Категории:
Скрытые категории: