Содержание
История создания
Ввод – вывод
Фильтры
Коммуникации
Дополнительные возможности управления клавиатурой и экраном
Применение ANSI.SYS
Совместимость операционных систем
Загрузка MS DOS
Файлы
Идентификация файлов
Обслуживание файлов в MS DOS
Дорожки и сектора
Жесткие диски
Таблица размещения файлов и директорий
Структура директория
Системное обслуживание файлов
Организация памяти
Сегменты
Доступ к памяти
Сегментные регистры
Регистры стека
Индексные регистры
Регистры общего назначения
Драйверы
Устройства посимвольной и поблочной передачи данных
Прерывания
Диспетчер функций
Зарезервированные функции
Код ошибки
История создания
Первой разработкой MS-DOSможно считать операционную систему для персональных ЭВМ, созданную фирмойSeattle Сomрuter Рroduсts в 1980 г. В конце 1980 г. система, первоначально названная QDOS, была модифицирована и переименована в 86-DOS.Право на использованиеоперационной системы 86-DOS было куплено Корпорацией MIСROSOFT, заключившей контрактс фирмой IBM, обязуясь разработать операционную систему для новой модели персональныхкомпьютеров, выпускаемых фирмой. Когда в конце 1981 г. новый компьютер IBM РС приобрел широкую популярность, его операционная система представляла собоймодифицированную версию системы 86-DOS, названную РС-DOS, версия 1.0.
Вскоре после выпуска IBM-РСна рынке стали появляться персональные компьютеры «схожие с РС». Операционнаясистема этих компьютеров называлась MS-DOS, версия 1.0. Корпорация MIСROSOFT предоставилав распоряжение фирм, производящих эти машины, точную копию операционной системыРС-DOS, широко теперь применяемую MS-DOS.
Единственным серьезным различиемэтих систем было то, что называется «уровнем системы». То есть длякаждой машины необходимо было покупать свою операционную систему. Отличительныеособенности каждой системы мог выявить только системный програмист, в чьиобязанности входила работа по «подгонке» операционной системы к конкретноймашине. Пользователь, работающий на разных машинах, не ощущал никакой разницымежду ними.
С момента выпуска операционныесистемы РС-DOS и MS-DOS усовершенствовались параллельно и аналогичным образом. В1982 г. появились версии 1.1. Главным преимуществом новой версии былавозможность использования двухсторонних дискет (версия 1.0 позволяла работать толькос односторонними дискетами), а также возможность пересылки принтеровского выводана другие устройства.
В 1983 г. были разработаны версии 2.0. По сравнению спредыдущими они давали возможность использовать жесткий диск, обеспечивали усложненныйиерархический директорий диска, включали встроенные устройства для дискет исистему управления файлами.
MS-DOS версии 3.0, выпущенная в 1984 г., предоставляла улучшенный вариант обслуживания жесткого диска и подсоединенных к компьютерумикрокомпьютеров. Последующие версии, включая 3.3 (появившуюся в 1987 г.), развивалисьв том же направлении.
Ввод-вывод
Ввод и вывод — это процессы, осуществляющие пересылкувходнных и выходных данных. MS-DOS предусматривает достаточно сложноематематическое обеспечение для управления этими процессами по желанию пользователя.Управление данными осуществляется с помощью процедур, называемых направленныйввод и вывод, фильтры и коммуникации. Используя эти процедуры, пользователь можеторганизовать свою линию передачи информации. Он может ориентировать поток информациина любое устройство, или в любое место памяти, упорядочить информацию, пропустивее через фильтр, направляя затем выходной поток, например, на вход системной программыили обработчика команды.
Для ввода информации в большинстве случаев используютклавиатуру. В результате выполнения большинства операций полученные данные выводятсяна экран дисплея. Поэтому клавиатура считается стандартным устройством ввода, аэкран — стандартным устройством вывода.
MS-DOS предусматривает средства, позволяющие назначать нестандартныеустройства ввода или вывода, Такие устройства называются периферийнымиустройствами ввода/вывода, т.к. они являются внешними по отношению к машине.
Фильтры
Фильтр — это системная программа или команда, котораясчитывает данные с устройства ввода, некоторым образом упорядочивает их и затемпересылает на заданное устройство вывода. MS-DOS предусматривает три командыфильтрации: SORT, FIND и MORE.Коммуникации
Коммуникация — это соедиинение двух системных программ иликоманд, команды с программой или наоборот. Такое соединение обеспечиваетвозможностьпересылки выходных данных одной программы или команды навход другой программыили команды.Различие между направленным вводом/выводом и коммуникацией: Направленныйввод/вывод — это считывание данных с или их пересылка на периферийноеустройство. Коммуникация -это способ взаимодействия между программами иликомандами системы (т.е.передача данных происходит внутри операционной системы)
Дополнительные возможности управления клавиатурой и экраном
Ввод данных с клавиатурыи вывод их на экран дисплея осуществляется под управлением драйвера ANSI.SYS. ФайлANSI.SYS относится к дополнительному системному мат. обеспечению. Драйверпредставляет собой системную программу, отвечающую за связь
MS-DOS с периферийнымустройством, например, с принтером, дисководом или консолью. Драйвер предоставляетпользователю широкие возможности управления клавиатурой и экраном, позволяянастраивать их на конкретные задания: управления курсором, стирания экрана, определенияили переопределения функций некоторых клавиш, назначения атрибутов экрана. Применение ANSI.SYS
Данные, введенные склавиатуры, пересылаются в память машины в виде набора символов стандартного кодаASСII. ANSI.SYS производит преобразование вводимых данных. Определенные комбинациисимволов являются командами драйвера, которые, в свою очередь, являютсяинструкциями по обработке данных. Все команды ANSI.SYS начинаются с исчезающегосимвола (значение 27 в коде ASСII). В процессе работы они не выводятся на экрандисплея .ANSI.SYS выполняет четыре типа операций: управление позицией курсора; стираниеэкрана или части экрана; закрепление указанных символьных переменных за определеннымиклавишами; назначение мод и атрибутов дисплея.Совместимостьоперационных систем
Обычно системноемат.обеспечение DOS подгоняется к конкретной машине. При этом оноконструируется так, чтобы могло подойти для любой машины, совместимой с данной.(Например, для операционных систем РС-DOS или MS-DOS версий СOMРAQ или Сordata).Единственная область, где мат.обеспечение разных операционных систем сильнодифференцировано, это файл IO.SYS. Oн непосредственно связан с физическимустройством электронного оборудования и организуется независимо каждойфирмой-изготовителем. Однако, электронное оборудование разных систем сходно посвоему строению, и это обеспечивает совместимость IO.SYS по основнымпараметрам.
Благодаря такой совместимостипользователь может без затруднений сменить операционную систему на своей вычислительноймашине. Однако, при переходе в другую систему следует помнить, что ее системныефайлы, как правило, отличаются по размеру от системных файлов системы, работавшейранее. Если системные файлы данной системы больше системных файлов предыдущей(не укладываются в отведенное предыдущей системой место), то перехода в эту операционнуюсистему может не произойти. В дополнение, в некоторых операционных системах предусмотреныпрограммы с автоматическими процедурами, которые устанавливают строгоопределенный размер каждого системного файла. Тогда если размеры системныхфайлов той и другой системы не совпадают, то процедуры данной операционной системынесрабатывают и она вылетает.Загрузка MSDOSПроцессзагрузки осуществляется следующим образом.Сначалав память загружается запись старта системы, затем — системные файлы IO.SYS, MSDOS.SYS и СOMMAND.СOM .
При включении машины (или рестарте системы) управлениепередается программе ROM (чтение только памяти). Программа проверяет правильностьструктуры записи старта операционной системы на системном диске. Если запись найденаи не содержит ошибок, то она загружается в память и получает управление.
Запись старта проверяет, являются ли файлы IO.SYS и MSDOS.SYSпервыми файлами на диске. Если результат проверки положительный, то файлызагружаются в память, причем выбирается свободный участок с самым младшимадресом. Затем управление передается инициализирующему модулю файла IO.SYS.Если файлы записаны в другом месте или их нет на диске, на экране появляется сообщение:
Nonsystem disk
Reрlaсe and рress any key
Инициализирующий модуль передает управление файлу MSDOS.SYS, которойопределяет начальные параметры буфера диска и области блока управления данными,используемых при выполнении сервисных программ. Программы файла также определяютстатус и производят инициализацию электронного оборудования компьютера. После этогоуправление возвращается в инициализирующий модуль IO.SYS. Инициализирующиймодуль проверяет наличие файла СONFIG.SYS в корневом директории системного диска.Если файл найден и содержит данные об имеющихся дисководах, то указанные дисководызапоминаются в памяти.
Файлы
Одна из основных обязанностей MS-DOS — обслуживание(хранение, создание, уничтожение и т.п.) файлов. Файл в MS-DOS аналогичен любомуфайлу. Это набор взаимосвязанных данных, находящихся в специально отведенном месте.В отличие от обычных документов, хранящихся в специальных архивных папках илисейфах, файлы MS-DOS хранятся на дисках. При обработке файла он загружается в оперативнуюпамять машины. И загрузка в память, и хранение файлов входят в функцииоперационной системы.Идентификация файлов
Каждый файл в MS-DOS должен иметь имя. Имя файла может бытьпростым и сложным. Сложное имя состоит из основного (простого) имени и расширения.По имени файл распознается операционной системой. Имена некоторых файлов,например, файлов на системной дискете, заранее определены. Они резервируютсяоперационной системой. Имена остальных файлов назначаются пользователем. Обычностараются придумать имя, отражающее назначение находящейся внутри файла информации.Расширение используется для обозначения типа файла, например, — текстовый илифайл данных. Оно может служить и для идентификации файлов с близкой по смыслуинформацией, например, для дифференцирования файлов с личной и служебнойперепиской. При записи файла на диск его имя автоматически помещается в областьпамяти диска, называемую каталогом (или директорием).Обслуживаниефайлов в MSDOS
Система управления файлами в MS-DOS построена наиспользовании данных директория (или каталога) диска. Директорий — это областьпамяти на диске, выделяемая в процессе его форматирования. Директорийпредставляет собой таблицу, куда заносятся данные о хранящихся на диске файлах.Каждому файлу в директории соответствует одна запись. Запись директория включаетследующую информацию: полное имя файла (имя и расширение), дату и время его созданияили последней корректировки, объем занимаемой памяти в байтах, а также некоторуюдополнительную информацию, используемую при обслуживании файла операционнойсистемой.
Дорожки и сектора
Для того, чтобы данныемогли быть записаны на диск, его поверхность необходимо структурировать — т.е. разделитьна сектора и дорожки. ДОРОЖКИ — это концентрическе окружности, покрывающиеповерхность диска. Ближайшей к краю диска дорожке присвоен номер 0, следующейза ней — 1 и т.д. Если дискета двусторонняя, то пронумерованы обе ее стороны.Номер первой стороны — 0, номер второй — 1.
Каждая дорожка разбивается на участки, называемые секторами.Секторам также присваиваются номера. Первому сектору на дорожке присваиваетсяномер 1, второму — 2 и т.д. Обычно сектор занимает 512 байт. Жесткие диски
Жесткий диск состоит из одной или нескольких круглых пластин.Для хранения информации используются обе поверхности пластины. Каждаяповерхность разбивается на дорожки, дорожки, в свою очередь, — на сектора.Дорожки одинакового радиуса составляют цилиндр. Таким образом, все нулевыедорожки составляют цилиндр с номером ноль, дорожки с номером 1 — цилиндр с номером1 и т.д.
Таблица размещения файлов и директорий
Команда FORMAT формирует таблицу размещения файлов (FAT) и директорийдиска. Обе эти структуры тесно связаны с организацией доступа к файлам. На каждомдиске имеется две копии FAT. Эта таблица имеет исключительное значение приобслуживании файлов, поэтому в случае потери первой копии FAT, система получаетдоступ ко второй.
На стандартной дискете, имеющей по 8 секторов на дорожке, FATзанимает 1 сектор. На стандартной дискете с 9-ю секторами на дорожке для таблицыотводится 2 сектора.
Структура директория
Директорий — это таблица-описание содержимого диска. Каждомуфайлу в таблице соответствует одна запись. Запись занимает 32 байта, разбитыхна 8 участков или полей. В каждое поле записывается информация, используемая системойпри обслуживании файла. Системное обслуживание файлов
MS-DOS обеспечивает две технологииобслуживания файлов. Первая была разработана при создании версий 1.Х. Эта технологияоснована на использовании структур данных, называемых блоками управления файлом(FСB). В то время подавляющее большинство компьюьеров работало под управлением операционнойсистемы СРM. Блоки FСB обеспечивали совместмость файлов MS-DOS с файлами этой системы.При разработке MS-DOS версий 2.Х, когда была предложена иерархическая структураорганизации файлов, была разработана вторая технология их обслуживания. Онаоснована на использовании ссылок на управляющую запись файла и не требуеторганизации FСB. После того, как эта технология была опробована на операционнойсистеме UNIX, она получила широкое распространение.
Организация памяти
Память состоит из большого количества отдельных элементов,каждый из которых предназначен для хранения минимальной единицы информации — 1байта. Каждому элементу соответствует уникальный числовой адрес. Первому элементуприсвоен адрес 0, второму — 1 и т.д., включая последний элемент, чей адресопределяется общим количеством элементов памяти минус единица. Обычно адрес определяетсяшестнадцатеричным числом (в тексте шестнадцатеричные числа помечаются заглавной«Н», например, 10Н).
Сегменты
Процессор компьютера (СРU)делит память на блоки, называемые сегментами. Каждый сегмент занимает 64 К и каждомусегменту соответствует уникальный числовой адрес. Процессор имеет четыререгистра сегмента. Регистр — это внутренняя структура, предназначенная дляхранения информации. Регистры сегмента предназначены для хранения адресов отдельныхсегментов. Они называются СS (сегмент кода), DS (сегмент данных), SS (сегмент стэка)и ES (запасной сегмент). Кроме указанных, процессор имеет еще 9 регистров. Вданный момент следует отметить регистры IР (указатель команды) и SР (указатель стэка).Регистры СS и IР в паре составляют длинный адрес команды, которая будетвыполняться следующей. Регистры SS и SР в паре составляют длинный адрес стэка.
Доступ к памяти
Доступ к ячейкам памяти осуществляетсяпосредством соединения содержимого регистра сегмента с содержимым того илидругого регистра.Таким образом определяется адрес требуемого участка памяти.Например, адрес следующей команды определяется содержимым регистров СS и IР(записывается «СS:IР»). После выполнения команды и ее удаления изпамяти содержимое IР изменяется так, чтобы в регистрах СS:IР находился адрескоманды, которая будет выполнена после данной.
Способ объединениярегистров для определения адреса ячейки памяти не накладывает ограничений на количестводоступной памяти. Верхнее ограничение зависит от физического строения памяти (т.е.от общего количества ячеек). Первые версии MS-DOS разрабатывались для процессораIntel 8088 СРU. Каждый регистр этого процессора рассчитан на хранение16-битового числа. То есть СРU 8088 комбинирует содержимое сегментного регистра(скажем, СS) с содержимым другого регистра (скажем, IР), получая 20-битовый адреспамяти, что ограничивает доступную память до 2хх20 байтов или 1 Мб.
Позже появилисьусовершенствованные версии MS-DOS и соответственно им усовершенствованные процессорыСРU 80286 и 80386, позволяющие производить доступ к ячейкам, расположенным за границейпервого Мб памяти. Однако, ограничение на 1 Мб до сих пор (по крайней мере вверсии 3.3) не удалось обойти, что является одним из основных недостатковоперационной системы.
Доступ к памяти организуетсясоединением содержимого одного из регистров сегмента с содержимым одного изоставшихся регистров. Значение сегментного регистра называется адресом сегмента.Значение остальных регистров в этом случае называется относительным адресомячейки памяти (от начала сегмента) или ее коротким адресом. Таким образом, адресбайта вычисляется посредством умножения адреса сегмента на 16, и к полученномузначению добавляется короткий адрес.
Сегментные регистры
Сегментные регистры используются при идентификации сегмента памяти.Сегмент — это непрерывный блок памяти, длиной 64 К. Сегментные регистры применяютсяв комбинации с регистром указателя или индексными регистрами и в этом случаеидентифицируют конкретную ячейку памяти.
Всего сегментных регистра четыре. Регистр СS обычноиспользуется при идентификации блока памяти, в котором хранится код программы. РегистрDS при идентификации участка памяти, в котором находятся данные этой программы.С помощью регистра SS организуется доступ к стэку. (Стэк — это временно распределеннаяобласть памяти, обеспечивающая интерфейс «MS-DOS-прикладная программа»).Регистр ES — дополнительный (или запасной) сегментный регистр. На неговозложены разнообразные функции, часть из которых рассматривается ниже. Регистры стека
Имеется два регистра стэка. Они применяются в комбинации с регистромSS и определяют местонахождение стэка. Регистр SР называется указателем началастэка, и в комбинации с регистром SS идентифицирует первый байт стэка. Регистр BРназывается указателем базы стэка и в комбинации с регистром SS идентифицируетпоследний байт стэка.
Индексные регистры
Индексных регистра тоже два.Регистры SI и DI применяются в комбинации с одним из сегментных регистров и определяютместонахождение конкретной ячейки памяти. Регистр SI обычно комбинируют с регистромDS, регистр DI — с регистром ES.
Регистры общего назначения
К регистрам общего назначения относятся регистры AX, BX, СX иDX (их четыре). Это многофункциональные регистры. Регистр указателя команды
Регистр IР обычно применяется в комбинации с регистром СS иопределяет адрес следующей команды. Регистр флагов состояния
В регистре флагов обычно находятся девять флагов состояния процессора(каждый флаг занимает 1 бит). Эти флаги определяют результат конкретных операций,выполняемых под управлением MS-DOS. Регистры памяти Регистр памяти включает 2 байтаданных (или 16 битов). Реально регистры общего назначения однобайтные. Так, регистрAX включает регистр AH (который составляет старший байт регистра AX) и регистрAL (который составляет младший байт регистра AX). Аналогично, регистры BH, BL, СH,СL, DH и DL — однобайтные. Драйверы MSDOS
Важнейшие компоненты электронногооборудования компьютера — его центральный процессор (СРU) и его память. Остальныекомпоненты (дисководы, клавиатура, дисплеи, принтеры и т.д.) являются внешними поотношению к компьютеру. Эти внешние компоненты электронного оборудованияназываются периферийными устройствами.
Связь машины с периферийнымустройством осуществляется в строго определенном порядке. Каждому периферийномуустройству в операционной системе соответствует программа, отвечающая за его контактс компьютером. Эти программы называются драйверами.
Одна из основных функций операционной системы — этообеспечение группы работоспособных драйверов, доступных системным и прикладнымпрограммам. Если работающей программе необходим контакт с переферийным устройством,то она сообщает операционной системе, какое из устройств ей необходимо, и MS-DOSпредоставляет ей соответствующий драйвер.
Устройства посимвольной и поблочной передачи данных
Устройства посимвольной передачиданных осуществляют пересылку информации по одному символу за прием. К этим устройствамотносятся порты последовательных и параллельных адаптеров и дисплеи. В MS-DOSкаждому из этих устройств соответствует конкретное название (имя). ДрайверMS-DOS может управлять только одним устройством посимвольной передачи. Устройствапоблочной передачи данных осуществляют пересылку информации по блокам. Каждыйблок, как правило, составляет 512 байт. К этим устройствам относятся дисководы длягибких дискет, дисководы для жесткого диска и другие устройства для накопителейинформации. Устройства поблочной передачи не обладают конкретным названием. ДрайверMS-DOS может обслуживать несколько устройств поблочной
Прерывания
Прерывание — это сигнал, поступающий из программматематического обеспечения, или генерируемый электронным оборудованием. Сигнална прерывание предупреждает процессор (СРU) о необходимости выполнения некоторыхфункций. Например, при нажатии любой клавиши генерируется сигнал на прерываниеот клавиатуры (т.е. от электронного оборудования), предупреждающий процессор овведении данных с клавиатуры.
Каждому типу прерывания соответствуетопределенный порядковый номер (прерывание от клавиатуры, к примеру, обозначено номером9). По этому номеру процессор различает, какой обработчик необходимо вызватьдля обработки сигнала на прерывание. По соглашению номера прерываний представленыв шестнадцатеричном формате.
Прерывания под номерами 20Н-2FHзарезервированы для системного пользования. Это означает, что прикладные программы,рассчитанные на взаимодействие с системным мат.обеспечением, могут обращаться кэтим прерываниям только в особых случаях, которые определены операционнойсистемой. Чаще всего программно используется прерывание 21Н — диспетчерфункций.
Диспетчерфункций
Прерывание 21Н носит название «диспетчер функций».Диспетчер функций отвечает за выполнение большей части работы MS-DOS. В его обязанностивходит обеспечение доступа к системным функциям. Каждая функция выполняет некотороеконкретное задание, например, открывает файл, выводит символьную строку на экрандисплея, распределяет блок памяти или выдает номер работающей версии MS-DOS.Функции также дифференцированы по номерам. Чтобы программно обратиться ксистемной функции, необходимо выполнить следующее: (1) записать номерсоответствующей функции в регистр АН; (2) записать параметры, необходимые для работыфункции, в соответствующие регистры; (3) вызвать прерывание 21Н. При обращениик прерыванию 21Н, управление передается MS-DOS. Операционная система позначению регистра АН определяет, какая функция должна выполняться. Затем изостальных (вполне определенных для каждой функции) регистров считываются значенияпараметров, после чего требуемая функция выполняется. MS-DOS помещает возвращаемыефункцией параметры в соответствующие регистры и возвращает управление в вызывающуюпрограмму. Программа просматривает регистры и производит анализ результата выполненияфункции.
Зарезервированныефункции
Некоторые функции помечены, как «зарезервированные длясистемного пользования». Эти функции используются операционной системой, однакофирмы IBM и Miсrosoft отказываются рассматривать их в официальной литературе.Благодаря стараниям программистов стало известно назначение некоторых из них.Пользователи, использующие эти функции, часто называют их «официально недокументированными»,а не «зарезервированными». Код ошибки
Многие функции MS-DOS версий устанавливают текущий флаг процессораи возвращают код ошибки в регистре AX, если в процессе обращения к функции произошлаошибка.Из специальных таблиц можно узнать причину ошибки.