3.3 Операционные системы семейства DOS
3.3.1 Итак, под операционной системой (ОС) понимается комплекс программ, предназначенный для следующих целей:
управление работой устройств компьютера как частей единого целого;
управление процессом исполнения программ;
управление файловой системой;
поддержание пользовательского интерфейса, т.е. способа взаимодействия человека с компьютером и приложениями.
В основе любой операционной системы компьютеров типа IBM PC лежит базовая система ввода-вывода (BIOS) — набор программ, записанных в микросхемах памяти ROM. BIOS проверяет исправность устройств после включения питания, вызывает загрузчик операционной системы, выполняет операции ввода-вывода данных.
3.3.2 Исторически первой массовой ОС для персональных компьютеров была операционная система MS-DOS, появление которой вызвано созданием в 1981 году фирмой IBM (International Business Machine) персонального компьютера IBM PC.
В состав DOS входят программа-загрузчик, располагающаяся в MBR, системные файлы IO.SYS и MSDOS.SYS, командный процессор COMMAND.COM, файлы внешних команд, драйверы различных устройств.
Загрузка ОС MS DOS осуществляется тремя способами:
включение питания компьютера;
нажатие на кнопку RESET на корпусе компьютера (на большинстве новых моделей этой кнопки нет или она сделана незаметной);
одновременное нажатие клавиш Ctrl+Alt+Delete.
Загрузка DOS начинается с тестирования оборудования средствами BIOS. Если не обнаружено ошибок — загрузка продолжается. С системного диска считываются файлы IO.SYS и MSDOS.SYS. После этого проверяется наличие в корневом каталоге загрузочного диска файла CONFIG.SYS. Если такой файл существует, исполняются его команды. Затем загружается командный процессор COMMAND.COM и проверяется наличие в корневом каталоге загрузочного диска файла AUTOEXEC.BAT. Если файл существует, он исполняется. С помощью файлов CONFIG.SYS и AUTOEXEC.BAT пользователи могут настраивать DOS для своих целей. Особенности такой настройки описаны в литературе [1,3].
После завершения загрузки на экран выводится приглашение DOS. Форма приглашения зависит от того, какой диск в данный момент является активным, В простейшем случае оно выглядит следующим образом:
c:\>
Это означает, что активным (выбранным в настоящий момент) является логический диск c:, с которого обычно осуществляется загрузка ОС. В ответ на приглашение DOS можно ввести любую команду или имя исполняемого файла. Общий формат команды DOS выглядит следующим образом:
имя команды [имена или маски файлов] [параметры]
Обязательным является только указание имени команды. Если команда внешняя, то есть хранится в виде отдельного исполняемого файла, в качестве имени может быть указан путь к этому файлу. Следующий элемент - [имена файлов или маски] - может указывать, какие файлы должны быть обработаны командой (например, если это команда копирования файлов с одного диска на другой). Параметры или режимы команды уточняют требуемые от нее действия. В большинстве команд DOS параметры указываются в виде /X, где X - буква или специальный символ. Так, большинство команд DOS, запущенных с параметром /?, выдают краткую справку о своем назначении и режимах работы. Например, введя в строке приглашения
copy /?
и нажав Enter, мы можем получить справку по команде с именем copy. Сказанное справедливо и для сеанса DOS, встроенного в операционные системы семейства Windows. Подробнее команды DOS-совместимых систем описаны в литературе (см., например, [1,2]).
3.3.3 MS-DOS-совместимые ОС имеют достаточно сложную схему работы с оперативной памятью. Это связано с тем, что изначально DOS создавалась для работы всего с 640 Кб оперативной памяти. Современные ОС семейства Windows в режиме совместимости с DOS также вынуждены учитывать особенности работы с памятью приложений DOS.
Процессоры адресуют оперативную память, разбивая ее на отдельные участки размером 64 Кб – сегменты. В рамках сегмента для адресации отдельной ячейки достаточно 2-байтового числа – смещения, указываемого в байтах относительно начала сегмента. Первая ячейка имеет смещение 0. Физический адрес ячейки памяти строится следующим образом:
SSSSh:OOOOh = сегмент:смещение.
Реальный адрес ячейки строится как номер сегмента, сдвинутый на 8 бит вправо плюс смещение, например, адрес b800:0001 это b8000+0001=b8001. Таким образом, сегментная адресация позволяет адресовать до 1 Мб оперативной памяти. 32-разрядная адресация современных процессоров – «плоская», то есть, ячейка памяти адресуется непосредственно 32-битным числом. Такая адресация позволяет адресовать непосредственно до 4 Гб оперативной памяти.
Рассмотрим терминологию, принятую в MS-DOS для обозначения разных видов памяти.
Базовая, или стандартная, память (conventional memory) представляет собой «нижние» 640 Кбайт оперативной памяти. Базовая память полностью находится в пределах адресуемой памяти микропроцессоров 8086/88 (1 Мбайт, или 1024 Кбайт). Для использования ее программам DOS не нужны никакие дополнительные программы-драйверы. В основной памяти обычно находится ядро MS-DOS, системные области, буферы, драйверы внешних устройств, командный процессор command.com и программы пользователя для MS-DOS.
Областью старших адресов, известной также как область верхней памяти (Upper Memory Area, UMA), называется часть оперативной памяти, находящаяся между адресами 640 и 1024 Кбайт. Данная часть памяти используется видеоадаптером и базовой системой ввода-вывода, для прикладных программ MS-DOS она недоступна. По этой причине при указании общего объема памяти компьютера область верхней памяти (объемом 384 Кбайт) обычно не учитывается. Например, компьютер, в котором установлено четыре банка памяти по 1096 байт (то есть по 4 Мбайт), во время процедуры тестирования при начальной загрузке может отображать не 16 384 Кбайт памяти, а всего 16 000.
Стандартные видеорежимы компьютеров IBM используют участки области старших адресов, начиная с адреса A000:0000 (графические) или B800:0000 (текстовые).
В действительности, если не используется «теневое» (shadow) копирование видео- и системного ROM в RAM, то отводимые для этой операции участки области верхней памяти остаются свободными. Специальное программное обеспечение позволяет использовать свободные участки верхней памяти (так называемые блоки верхней памяти — Upper Memory Blocks, UMB) для загрузки резидентных программ и устанавливаемых драйверов устройств на компьютерах с микропроцессорами 80386 и выше. Кроме того, это возможно на некоторых компьютерах 80286.
Вся память, адресуемая выше 1024 Кбайт, называется расширенной памятью (extended memory, XMS). Согласно общепринятой спецификации расширенной памяти XMS 3.0, дополнительная память делится на две области - область высокой памяти объемом 64 Кбайт (High Memory Area, HMA) и собственно расширенную память, которую обычно называют XMS.
DOS и Windows 95 и выше позволяет использовать HMA для загрузки большей части ядра операционной системы реального режима. XMS-память используют только некоторые утилиты MS-DOS, такие как SMARTDrive и RAMDrive. С адреса F000:0000 начинается ROM BIOS память, предназначенная только для чтения и содержащая информацию об основных характеристиках устройств компьютера.
XMS-память располагается в слотах системной платы. Управляется драйвером HIMEM.SYS, поддерживающим также HMA.
Дополнительная память (expanded memory; EMS) – это память, отображаемая в основное адресное пространство через "окна" в зарезервированной области от 640 до 1024 Кб; эта память непосредственно не адресуется процессором; располагается на отдельной микросхеме, вставляемой в слот системной платы. Управляется драйвером EMM386.EXE. В настоящее время устарела.
|