Операционная система 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. Если файлы записаны в другом месте или их нет на диске, на экране появляется сообщение:
Non system 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, если в процессе обращения к функции произошла ошибка.Из специальных таблиц можно узнать причину ошибки.