В этом параграфе мы остановимся на базовых принципах организации операционной системы MS DOS. Как уже упоминалось ранее, длительное время она явно "господствовала" на подавляющем большинстве персональных компьютеров. С Наступлением эры графических операционных сред DOS отошла в тень. Однако ее роль в обеспечении процессов управления ЭВМ по-прежнему остается достаточно ощутимой. Более того, практика показывает, что знание основ DOS способствует более глубокому пониманию того, как функционирует программное обеспечение последующих поколений.
4.3.1. Основные составные части MS DOS
Перечислим основные составные части DOS:
1. Модуль расширения системы ввода/вывода (I0.SYS).
2. Базовый модуль операционной системы (MSDOS.SYS).
3. Командный процессор (или командная оболочка) (COMMAND.COM).
4. Внешние команды и драйверы, утилиты - файлы с расширением * .СОМ, *. EXE,
* .SYS.
5. В отдельную составную часть также могут быть выделены инструментальные средства
DOS (система программирования, текстовый редактор, отладчик DEBUG, реализующий
простейшие функции тестирования и отладки программ).
В основу разделения DOS на перечисленные блоки был положен принцип модульности:
разработчиками в идеологию системы была изначально заложена возможность относительно
безболезненной замены одного блока при сохранении неизменными остальных. В частности,
блок I0.SYS объединил процедуры ввода/вывода, которые являются наиболее зависимыми
от конкретных аппаратных устройств персонального компьютера и потенциально должны
быть более "гибкими", чем основывающиеся на них процедуры из базового
модуля MSDOS.SYS. Необходимо также сказать несколько слов о программном обеспечении,
которое находится "ближе" к аппаратным ресурсам компьютера, чем DOS.
Это загрузчик и базовая система ввода/вывода. Они записаны в так называемую
постоянную память компьютера и являются его неизменяемыми атрибутами (по крайней
мере, в обычных условиях эксплуатации).
Загрузчик, как нетрудно догадаться по названию, является небольшой программой,
осуществляющей инициализирующие действия компьютера сразу после включения питания.
BIOS - базовая система ввода/вывода (Basic Input/Output System) называется так
потому, что включает в себя обширный набор модулей, благодаря которым операционная
система и другие прикладные программы могут взаимодействовать с различными устройствами
компьютера (дисплеем, клавиатурой, дисководом, принтером, таймером и т.д.).
Еще раз подчеркнем, что, с одной стороны, BIOS можно рассматривать как составную
часть аппаратных средств, а с другой - она является программным обеспечением.
Большинство современных видеоадаптеров, а также контроллеры накопителей имеют
собственную систему BIOS, которая обычно дополняет системную. Во многих случаях
программы, входящие в конкретную BIOS, заменяют соответствующие программные
модули основной BIOS. Вызов программ BIOS, как правило, организован в форме
так называемой обработки аппаратных и программных прерываний.
ПРИМЕЧАНИЕ
Аппаратные прерывания (interrupt) - это события, инициируемые техническими устройствами
(клавиатурой, мышью и т. п.), требующие программной обработки. Программные прерывания
принципиально отличаются от аппаратных тем, что наступают по командам программ.
По наступлении прерывания вызывается связанная с ним процедура-обработчик.
Выделение BIOS в отдельный модуль позволяет обеспечить независимость программного
обеспечения от специфики конкретной модели компьютеров.
Кратко перечислим вспомогательные функции BIOS:
- поиск на гибком и на жестком диске программы-загрузчика операционной системы
и загрузка с диска в оперативную память;
- тестирование аппаратной части (в том числе оперативной памяти);
- инициализация векторов прерывания нижнего уровня.
BIOS содержит: специальные программы по управлению работой стандартными внешними
устройствами (драйверы - программы, расширяющие возможности операционной системы);
тестовые программы для контроля работоспособности аппаратуры; программу начальной
загрузки операционной системы. В качестве основных функций драйвера могут быть
названы:
- прием и обработка запроса к периферийному устройству;
- преобразование запроса в серию команд управления устройством;
- обработка сигнала прерывания.
Драйверы могут быть:
1. Стандартные (внутренние) - программы, находящиеся внутри BIOS или его
модуля расширения ЕМ BIOS. Они подключаются к системе автоматически
после перехода компьютера в рабочее состояние.
2. Загружаемые (внешние) - программы, находящиеся на диске и предназначенные
для управления внешними устройствами, которые отличаются от стандартных своими
техническими параметрами; подключаются к системе только тогда, когда они указаны
в файле конфигурации CONFIG.SYS.
4.3.2. Командный процессор Command.com
Остановимся более подробно на той роли, которую играет в работе операционной
системы командный процессор COMMAND.COM1. Выделение его в отдельный блок было
обусловлено желанием разработчиков MS DOS предусмотреть возможность гибкой замены
синтаксиса системы управляющих команд.
Взаимодействие пользователя с операционной системой осуществляется с помощью
командной строки. В начале командной строки всегда имеется приглашение (к вводу
команды) MS DOS. По умолчанию в качестве приглашения выводятся имена текущих
диска (логического устройства) и каталога. Приглашение заканчивается символом
>. В принципе, его внешний вид по желанию пользователя Может быть изменен:
в строке могут быть отображены текущее время и дата, путь, символы-разделители
и т. п. Простейший вид командной строки с набранной командой (dir/w) показан
на рис. 4.2.
Рис. 4.2. Командная строка MS DOS
Работа в операционной системе MS DOS организуется с помощью команд, которые
вызывают определенную последовательность действий компьютера.
Ввод команды осуществляется в командной строке в соответствии со следующими
правилами:
o команда DOS состоит из имени команды (вводится латинскими буквами, регистр
не имеет значения) и отделенных от него пробелом параметров (ключей, опций),
уточняющих действия команды;
o формат параметров определяется исключительно внутренней логикой работы команды.
В некоторых случаях они могут просто отсутствовать. Часто в качестве признака
начала параметра (или для отделения параметров друг от друга) используются символы
/ или -. В состав параметров могут входить имена файлов.
Для того чтобы получить контекстную справочную информацию по формату команды,
ее надо ввести с параметром / ?, как это показано на рис. 4.3:
Рис. 4.3. Получение справки по команде Сору
Для ввода команды следует:
- в соответствии с форматом в командной строке набрать имя и необходимые
параметры команды;
- нажать клавишу ввода - Enter. При отсутствии ошибок в формате команды
будет выполнено указанное действие, а при их наличии - выведено соответствующее
сообщение.
- результат выполнения команды dir, запущенной с параметром /w, задающим вывод
содержимого текущего каталога в несколько столбцов, показан на рис. 4.4.
При вводе команды пользователем управление передается командному процессору
Command.Com, первой функцией которого является синтаксический анализ. Можно
сформулировать несколько принципов классификации команд операционной системы
MS DOS:
1) по способу реализации: резидентные (внутренние, встроенные); транзитные (внешние,
утилиты, обслуживающие);
2) по функциональному назначению: команды для работы с каталогами, с файлами,
с дисками, для управления памятью и устройствами, для конфигурирования системы
и др.
Резидентные (встроенные) команды входят в состав командного процессора COMMAND.COM
и после окончания загрузки операционной системы MS DOS располагаются в оперативной
памяти, доступны в любой момент времени. В качестве примера встроенных команд
могут быть названы:
DIR - выводит информацию о содержании каталогов логических устройств; COPY -
выполняет операции копирования файлов и каталогов;
DEL - выполняет операции удаления файлов и каталогов;
REN - выполняет операции по переименованию файлов и каталогов;
CLS - очищает содержимое экрана;
DATE - вывод/корректировка текущей даты;
TIME - вывод/корректировка текущего времени;
PATH - вывод/задание списка каталогов, в котором (последовательно) будет искаться
файл с запускаемой программой, если он не найден в текущем каталоге и явно не
задано его полное имя.
Транзитные команды (утилиты) реализуются в виде файлов с расширениями *.СОМ
или *.ЕХЕ. С точки зрения процедуры запуска они ничем не отличаются от любых
других служебных и прикладных программ, не входящих в операционную систему.
Идеология реализации основной части функций операционной системы через внешние
утилиты, заложенная в MS DOS, позволила на начальном этапе развития обеспечить
исключительную компактность ее ядра, что было очень важно для первых моделей
персональных компьютеров, ограниченных по аппаратным возможностям. В дальнейшем
это обеспечило широкие возможности по наращиванию функциональности системы исключительно
за счет добавления все новых и новых утилит. Одновременно такая открытость в
организации MS DOS очень быстро сформировала развитой рынок дополнительного
сервисного программного обеспечения, предлагаемого независимыми по отношению
к Microsoft разработчиками. Среди наиболее "популярных" DOS-утилит
могут быть названы:
- FORMAT - программа форматирования внешних запоминающих устройств;
- SCANDISK - служебная программа проверки состояния дисков;
- FDISK - утилита для разбиения жестких дисков на логические разделы;
- XCOPY - утилита, реализующая расширенные операции копирования файлов и каталогов.
Особенностью MS DOS является то, что любая строка, не распознанная синтаксическим
анализатором в качестве внутренней команды, считается именем файла, содержащим
программу (служебную или прикладную), которую следует выполнить. Если такой
файл не удается найти, то выводится сообщение
Имя команды или файла указано неправильно или в англоязычных версиях
Bad command or file name
Правила формирования имен файлов были рассмотрены в 4.2.
Таблица 4.4 содержит стандартные типы расширений имен файлов, часто встречающихся
в MS DOS и DOS-совместимых операционных системах.
Таблица 4.4. Стандартные типы файлов и их расширения
Расширение | Тип файла |
*.СОМ | Исполняемый файл (компактный файл, размером до 64 Кбайт) |
*.ЕХЕ | Исполняемый файл |
*.ВАТ | Командные (пакетные) файлы, см. 4.3.3 |
*.DAT | Файл с данными |
*.НЕХ | Файл с данными, представляемыми в шестнадцатеричном формате |
*.OVR | Файл с оверлейными (догружаемыми в процессе выполнения) частями программ |
*.DLL | Файл с динамически компонуемыми библиотеками (Dynamic Linked Libraries). Содержит программные модули, общие для различных задач в формате MS Windows, которые ими вызываются в процессе выполнения |
*.ВАК | Резервная копия файла, сохраняемая перед началом каких-либо операций с ним (от англ, backup) |
*.SYS | Системный файл |
*.ТМР | Временный файл |
*.ТХТ | Текстовый файл |
*.DOC | Файл с документом (допустим в формате текстового процессора MS Word) |
*.BAS | Файл с текстом программы на языке BASIC |
*.PAS | Файл с текстом программы на языке Паскаль (Pascal) |
*.С | Файл с текстом программы на языке С |
*.OBJ | Объектный модуль - скомпилированная программная процедура, переведенная в машинные коды |
*.UB | Библиотека - объединенная в единый файл специального формата совокупность объектных файлов |
4.3.3. Создание командных файлов
Достаточно часто при работе с операционной системой возникает необходимость
организации автоматического выполнения целого ряда команд (одной за другой),
или, как еще говорят, пакетного выполнения. Средством пакетной обработки является
командный (пакетный) файл. Он облегчает работу пользователя за счет автоматизации
выполнения часто повторяющейся совокупности команд и освобождает его от необходимости
запоминания многих деталей и тонкостей форматов команд.
Командные файлы, работающие в операционной среде MS DOS, имеют расширение *.ВАТ
(от английского batch - пачка).
Командный файл с точки зрения внутреннего содержания представляет собой текстовый
файл и может быть создан в любом текстовом редакторе. Его текст
состоит из последовательности команд управления операционной системой, которые,
вообще говоря, могли быть введены пользователем с клавиатуры. Помимо этого в
командном файле могут содержаться специальные операторы, накладывающие простейшие
логические ограничения на процесс выполнения. Более подробно ознакомиться с
синтаксисом языка командных файлов можно в Руководстве пользователя по операционной
системе DOS.
При создании командного файла необходимо соблюдать некоторые правила:
командный файл может состоять из любых команд операционной системы MS DOS, имен
файлов запуска и сервисных программных средств;
каждая команда располагается на отдельной строке (при вводе команд могут использоваться
строчные и прописные буквы);
после ввода каждой команды нужно нажать клавишу Enter;
имя командного файла уникально в пределах каталога, где он находится.
Запуск командного файла: в командной строке задается только имя файла (без указания
типа) и нажимается клавиша ввода - Enter.
Для прерывания работы командного файла могут быть использованы комбинации клавиш
Ctrl+C или Ctrl+Break.
4.3.4. Командный файл автонастройки AUTOEXEC.BAT
Файл AUTOEXEC.BAT играет особую роль в операционной системе MS DOS: являясь
по содержанию обычным командным файлом, он автоматически выполняется при каждой
загрузке операционной системы. Его основное назначение состоит в сохранении
и оперативной установке значений параметров операционной среды для конкретного
пользователя конкретного компьютера.
Среди команд, которые особенно часто используются в составе AUTOEXEC.BAT, могут
быть перечислены:
- REM - комментарии; неисполняемая команда, служит для пояснения действий;
- PAUSE - прерывание выполнения командного файла до тех пор, пока не будет нажата
любая клавиша;
- CLS - очистка экрана;
- ECHO - вывод сообщений на экран;
- ECHO OFF - подавляет вывод на экран всех стоящих после нее команд;
- ECHO ON - поддерживает вывод на экран всех стоящих после нее команд;
- @ - запрет на индикацию одной команды, перед которой стоит этот символ;
- VERIFY ON или OFF - установка (ON)/отключение (OFF) режима контрольно го чтения
при операциях записи файлов (если данный режим включен, то он позволяет выявлять
возможные ошибки, но, естественно, замедляет работу);
- PATH [Путь] - задание последовательности каталогов, в которых будут последовательно
искаться исполняемые файлы, если пользователь при запуске не задает их полное
имя;
- PROMPT [параметры] - установка формата приглашения в командной строке DOS
(по умолчанию используется текущее логическое устройство и символ >, например,
С:\>);
- SET <Имя> = <3начение> - устанавливает имя и значение так называемой
переменной системной среды.
ПРИМЕЧАНИЕ
Переменные среды (enviroment variables) в операционных системах серии DOS являлись
простейшим способом передачи внешней управляющей информации программам (со стороны
ОС или других программ), или, другими словами, задавали среду их работы.
К одной из главных функций файла автозагрузки относится запуск так называемых
резидентных программ, которые после выполнения должны остаться в памяти машины
для реализации тех или иных служебных функций.
Очень часто из AUTOEXEC.BAT запускаются:
- антивирусные программы (например, VSAFE - резидентная команда слежения
за появлением вирусов);
- программы-оболочки (Norton Commander);
- драйверы клавиатуры, принтера (для печати русских букв) и т. п.
Пример возможного содержания файла AUTOEXEC.BAT представлен на рис. 4.5.
4.3.5. Файл конфигурации CONFIG.SYS
Файл CONFIG.SYS предназначен для настройки операционной системы на конкретную
конфигурацию аппаратуры компьютера. Так же, как и AUTOEXEC.BAT, он присутствует
практически на любом компьютере в главном каталоге на диске, с которого производится
загрузка операционной системы.
Среди основных отличительных особенностей CONFIG.SYS могут быть названы следующие:
- как правило, задаваемые в нем настройки действуют в течение всего сеанса работы
(то есть могут быть изменены только после перезагрузки компьютера);
- настройки CONFIG.SYS устанавливаются в автоматическом режиме перед выполнением
AUTOEXEC. ВАТ.
Основное назначение CONFIG.SYS состоит в организации загрузки в оперативную
память необходимых драйверов для управления аппаратной частью компьютера (подключение
различных видов памяти, клавиатуры, мыши, принтера).
Начиная с MS DOS версии 6.0, в CONFIG.SYS появилась возможность создания описаний
различных вариантов загрузки, из которых пользователь имеет возможность в режиме
диалога выбирать нужный на текущий сеанс работы.
CONFIG.SYS создается и редактируется в любом текстовом редакторе, при этом необходимо
соблюдать некоторые правила:
- файл CONFIG.SYS состоит из специальных команд операционной системы MS DOS
по настройке аппаратуры. Формат этих команд имеет особый вид: Имя команды =
значение;
- каждая команда располагается на отдельной строке (при вводе команд могут
использоваться строчные и прописные буквы);
- после ввода каждой команды нужно нажать клавишу Enter;
- порядок записи команд DEVICE и DEVICEHIGH в файле CONFIG.SYS очень важен:
сначала устанавливаются драйверы, позволяющие работать с разными видами
памяти, которые дополняют стандартную память объемом 640 Кбайт, а затем
устанавливаются драйверы, использующие эту память;
- после создания (редактирования) файла CONFIG.SYS необходимо перезагрузить
операционную систему для установки новой конфигурации настройки.
Перечислим "часто используемые" команды и устанавливаемые драйверы
в файле CONFIG.SYS:
BREAK = ON или OFF - установка/отмена режима возможности прерывания процесса
выполнения программ по нажатию комбинации клавиш Ctrl+Break (или Ctrl+C);
BUFFERS = <число> - выделение объема оперативной памяти в соответствии
с заданным в команде числом буферов (ячеек стандартной длины). Обычно рекомендуется
использовать не менее 40 буферов;
DEVICE = <имя драйвера> [параметры]> - подключение драйвера для управления
каким-либо устройством;
DEVICEHIGH = <имя драйвера> [параметры] - загружает драйвер устройства
в верхнюю память (UMB);
DOS = <параметры> - устанавливает режим использования области высокой
памяти (НМА) и обеспечения доступа к блокам верхней памяти (UMB);
FILES = число> - устанавливает максимальное число одновременно открытых файлов.
Обычно не менее 20;
NUMLOCK = ON или OFF - устанавливает состояние клавиши NumLock;
RЕМ или; -комментарии;
LASTDRIVE - установка количества букв логических дисков;
Драйверы, входящие в поставку операционной системы MS DOS:
ANSLSYS - поддерживает эмуляцию терминала ANSI;
DISPLAY.SYS - поддерживает переключение кодовых страниц для монитора;
HIMEM.SYS - управляет использованием расширенной (Extended) памяти;
EMM386.EXE - организует расширенную (Extended) память и обеспечивает доступ
к области верхней памяти на компьютерах с процессором 386 и выше, которые
имеют расширенную (Extended) память.
Пример возможного содержания файла CONFIG.SYS представлен на рис. 4.6.
Рис. 4.6. Пример файла CONFIG.SYS
4.3.6. Программные оболочки
Управление компьютером при помощи команд DOS требует определенной квалификации,
большой аккуратности и внимания. Для того чтобы сделать общение с компьютером
более простым, используются специальные программы-оболочки. Оболочка - это такая
программа, которая позволяет пользователю осуществлять вия по управлению ресурсами
компьютера в рамках более развитого (более 5ного и интуитивно понятного) интерфейса.
К числу наиболее популярных почек относится пакет Norton Commander (фирма Symantec).
Применение операционной оболочки Norton Commander значительно упрощает управление
компьютером, позволяет в наглядном виде получать информацию о его основных ресурсах
(и их загруженности), осуществлять все основные процедуры управления компьютером
(выбор диска, каталога; создание каталога; создание, просмотр, редактирование
текстовых файлов, копирование, перемещение, удаление, файлов и каталогов; поиск
файлов и каталогов; работа с архивными файлами; сравнение каталогов и т. п.).
Общий вид интерфейса Norton Commander, который зачастую знаком даже людям, весьма
далеким от компьютеров и программ, представлен на рис. 4.7.
Рис. 4.7. Norton Commander, интерфейс
Вопрос о том, какие именно качества Norton Commander обеспечили данной программной
оболочке столь грандиозную популярность среди пользователей, не получил однозначного
ответа даже к настоящему времени, когда, в общем-то, ее время уже прошло. По
мнению авторов, на первое место среди прочих достоинств Norton'a следует поставить
идею двухпанельного интерфейса, предоставляющего пользователю возможности по
одновременной манипуляции содержимым нескольких логических устройств. Действительно,
однопанельные оболочки, очень напоминавшие одну отдельно взятую панель Nortona,
существовали и до него, однако все они в подавляющем большинстве стали достоянием
истории, не оставив о себе сколько-нибудь значительных воспоминаний.
В завершение следует сказать, что широкая популярность данной оболочки у пользователей
привела к феномену появления программ, "похожих на Norton". Их авторы,
оставаясь в фарватере основной мультипанельной идеи, вносили определенные усовершенствования
(как правило, сервисного характера). Иногда данные усовершенствования оказывались
непринципиальными экзотическими излишествами, а иногда давали пользователям
ощутимый эффект в работе. Среди таких "клонов" Norton Commander могут
быть названы Volkov Commander (VC), DOS Navigator (DN), Far (File and archive
manager).
Также необходимо отметить, что Norton Commander явился не единственным шагом
фирмы Symantec по расширению функциональных возможностей служебного и системного
программного обеспечения, работающего в среде DOS. Другой ее известный продукт
- Norton Utilities - объединил в себе большое количество утилит, реализующих
многие важные и полезные функции, которые затруднительно или даже невозможно
осуществить с помощью штатных средств операционной системы.
Дело в том, что в его постановке и выводах произведена подмена, аналогичная подмене в школьной шуточной задачке на сообразительность, в которой спрашивается:
- Cколько яблок на березе, если на одной ветке их 5, на другой ветке - 10 и так далее
При этом внимание учеников намеренно отвлекается от того основополагающего факта, что на березе яблоки не растут, в принципе.
В эксперименте Майкельсона ставится вопрос о движении эфира относительно покоящегося в лабораторной системе интерферометра. Однако, если мы ищем эфир, как базовую материю, из которой состоит всё вещество интерферометра, лаборатории, да и Земли в целом, то, естественно, эфир тоже будет неподвижен, так как земное вещество есть всего навсего определенным образом структурированный эфир, и никак не может двигаться относительно самого себя.
Удивительно, что этот цирковой трюк овладел на 120 лет умами физиков на полном серьезе, хотя его прототипы есть в сказках-небылицах всех народов всех времен, включая барона Мюнхаузена, вытащившего себя за волосы из болота, и призванных показать детям возможные жульничества и тем защитить их во взрослой жизни. Подробнее читайте в FAQ по эфирной физике.