Теоретическая часть
При включении питания компьютера управление передается процедуре начальной загрузки, расположенной в постоянном запоминающем устройстве, расположенном на материнской плате компьютера. Процедура начальной загрузки выполняет проверку аппаратных узлов компьютера, инициализирует внешние устройства и начинает процесс загрузки операционной системы.
Загрузка операционной системы начинается с того, что процедура начальной загрузки делает попытку прочитать самый первый сектор внешнего устройства хранения информации, который стоит первым в списке на загрузку. Если это дискета (либо CD или иной сменный носитель информации), и если дискета не системная, т. е., не содержит загрузочной записи, на экран выдается сообщение с просьбой заменить дискету. Если же дискеты в дисководе вообще нет, то BIOS смотрит в списке следующее устройство и т.д.
Допустим, ОС установлена на HDD. В таком случае BIOS читает с него основную загрузочную запись (Master Boot Record) – самый первый сектор на диске. Управление передается загрузчику, который находится в этом секторе. Загрузчик анализирует содержимое таблицы разделов (она также находится в этом секторе), выбирает активный раздел и читает загрузочную запись этого раздела. Загрузочная запись активного раздела (Boot Record) аналогична загрузочной записи, находящейся в первом секторе системной дискеты.
Загрузочная запись активного раздела считывает с диска файлы IO.SYS и MSDOS.SYS и загружает их в оперативную память компьютера. Затем анализируется содержимое файла конфигурации — CONFIG.SYS. В этом файле указаны драйверы и резидентные программы, которые необходимо загрузить в оперативную память. После загрузки драйверов и резидентных программ, указанных в файле CONFIG.SYS управление передается командному процессору COMMAND.COM, который инициализирует выполнение файла AUTOEXEC.BAT (если он есть в корневой папке диска). В командном файле AUTOEXEC.BAT могут быть перечислены программы, которые необходимо выполнить при загрузке операционной системы на компьютере. После загрузки командного процессора и выполнения начальных процедур, перечисленных в файле AUTOEXEC.BAT, подготовка системы к работе завершается.
Основные файлы DOS:
- io.sys – отвечает за работу с BIOS
- msdos.sys –API, управляет работой приложений
- command.com – командный интерпретатор – shell
По умолчанию DOS умеет работать только с основной оперативной памятью (первые 640 Кб). Оперативная память подразделяется на 3 части: основная (до 640 кб), верхняя (от 640 до 1024 Кб) и дополнительная (вся, что свыше 1 Мб). Также сам по себе DOS не умеет работать с CD-ROM, сетевыми адаптерами, звуковыми платами, модемами. Если говорить коротко – практически со всем неосновным оборудованием.
Для возможности работы с подобными устройствами требуется загрузка специальных драйверов. Конфигурация аппаратных и программных средств компьютера определяется в файле конфигурации CONFIG.SYS и в командном файле AUTOEXEC.BAT.
Если на компьютере работает несколько человек или вы используете несовместимые программные продукты, то вам приходится хранить несколько файлов конфигурации CONFIG.SYS и несколько командных файлов AUTOEXEC.BAT. По мере необходимости вам будет нужно переименовывать их и перезагружать компьютер.
В операционной системе MS-DOS имеется средство для определения в одном файле CONFIG.SYS нескольких различных конфигураций. Необходимая конфигурация выбирается с помощью меню, которое можно описать в файле CONFIG.SYS.
Для описания меню в MS-DOS определены несколько специальных команд:
Команды установки конфигурации компьютера и команды описания меню группируются в так называемых блоках команд и блоках описания меню. Блоки начинаются с заголовков. Заголовок состоит из имени блока, заключенного в квадратные скобки. Блок заканчивается либо заголовком следующего блока, либо концом файла.
Для определения в файлах CONFIG.SYS и AUTOEXEC.BAT нескольких конфигураций необходимо выполнить несколько действий:
- Определить в файле CONFIG.SYS блок описанияосновного меню. Описание меню начинается с заголовка [Menu] и следующимиза ним командами , , и . Командыиопределяютэлементы основного меню и соответствующие им имена блоков конфигурации.Командыиопределяют выбираемый поумолчанию элемент меню и цвет меню.
- Для каждого элемента меню создать блок команд, вкотором описать необходимую конфигурацию. Эта конфигурация будетустанавливаться, когда вы выберите соответствующий элемент меню. Каждыйблок должен начинаться с заголовка блока. Заголовок блока представляет собойимя блока заключенное в квадратные скобки.
- При необходимости, вы можете добавить к файлуCONFIG.SYS блок команд с зарезервированным именем [Common]. Команды изэтого блока выполняются при выборе любой конфигурации. Рекомендуетсядобавить в конце файла CONFIG.SYS пустой блок команд с именем [Common].
- Когда пользователь выбирает из меню конфигурациикакой-либо элемент, его имя запоминается в переменной окружения CONFIG. Спомощью команды GOTO %CONFIG% вы можете организовать выполнение различныхкоманд в зависимости от выбранной конфигурации. AUTOEXEC.BAT
Рассмотрим подробнее отдельные команды описания меню.
INCLUDE
Команда используется для включения команд одного блока конфигурации в другой. Формат данной команды представлен ниже:
INCLUDE=blockname
Единственный параметр blockname определяет имя включаемого блока конфигурации.
MENUCOLOR
Определяет цвет текста и цвет фона элементов меню. Эта команда может использоваться только внутри блока описания меню. Команда MENUCOLOR имеет следующий формат:
MENUCOLOR=x[,y]
Параметр x задает цвет текста элементов меню, а параметр y задает цвет фона меню. Цвет определяется числами от 0 до 15 в соответствии со следующей таблицей:
Число | Цвет | Число | Цвет |
Черный | серый | ||
Голубой | светло-голубой | ||
Зеленый | светло-зеленый | ||
Синий | светло-синий | ||
Красный | светло-красный | ||
Малиновый | светло-малиновый | ||
Коричневый | желтый | ||
Белый | ярко-белый |
Не задавайте одинаковых значений для x и y, так как в этом случае текст элементов меню сольется с фоном.
MENUDEFAULT
Определяет конфигурацию, загружаемую по истечении заданного времени, если пользователь не выбрал другую конфигурацию. Команда MENUDEFAULT может использоваться только внутри блока описания меню файла CONFIG.SYS. Формат этой команды представлен ниже:
MENUDEFAULT=blockname[,timeout]
Параметр blockname задает имя блока конфигурации, загружаемого по истечении времени, определенного параметром timeout. Параметр timeout задается в секундах и может быть от 0 до 90 секунд.
MENUITEM
Команда MENUITEM определяет элементы меню конфигурации. Эта команда может использоваться только внутри блока описания меню. В одном меню может быть до девяти элементов. Если этого вам недостаточно, вы можете воспользоваться дополнительным меню (команда ). Формат команды MENUITEM следует ниже:
MENUITEM=blockname[,menu_text]
Параметр blockname определяет имя блока конфигурации, соответствующего данному элементу меню. Когда пользователь выберет элемент меню, будут выполнены команды из блока конфигурации, имеющего имя blockname. Имя блока должно быть короче 70 символов и не должно содержать следующих символов: слеш (\), обратный слеш (/), двоеточие, точка с запятой, символ равенства и квадратные скобки.
Параметр menu_text определяет текст, который вы желаете отобразить в данном элементе меню. Если параметр menu_text не будет определен, то в меню отобразится название блока конфигурации. Текст, задаваемый параметром menu_text, должен быть короче 70 символов и может содержать любые символы.
SUBMENU
Команда SUBMENU добавляет новый элемент в главном меню задания конфигурации. При выборе элемента меню, заданного командой SUBMENU, появляется дополнительное меню.
Формат вызова данной команды представлен ниже:
SUBMENU=blockname[,menu_text]
Параметр blockname определяет имя блока описания дополнительного меню. В отличие от блока описания основного меню, имеющего имя [MENU], дополнительное меню должно иметь другое имя. Длинна имени блока дополнительного меню не должна превышать 70 символов. Имя блока не должно содержать символа слеша (\), обратного слеша (/), двоеточия, точки с запятой, символа равенства и квадратных скобок.
Необязательный параметр menu_text определяет текст, соответствующий новому элементу меню. Если вы не укажете параметр menu_text, то в новом элементе меню будет выведено имя блока описания дополнительного меню, заданное первым параметром команды SUBMENU.
Пример использования команд
Предположим, что на компьютере работают три человека. Первый работает в операционной системе Microsoft Windows и пользуется текстовым процессором Microsoft Word. Второй предпочитает использовать для редактирования документов текстовый редактор Лексикон. Третий не работает ни с Microsoft Windows ни с Лексиконом.
Приведем пример файла CONFIG.SYS, который может быть установлен на данном компьютере:
[Menu]menuitem=Windows, Конфигурация для Windowsmenuitem=Lexicon, Конфигурация для Лексиконаmenuitem=Standart, Стандартная конфигурация [Common]device=c:\dos\himem.sysdos=high [Windows]device=c:dos\emm386.exe NOEMSdos=high,umb [Lexicon]device=c:\dos\setver.sys [Standart]device=c:dos\emm386.exe NOEMSdos=high,umbdevicehigh=c:\dos\setver.sys
Данный файл CONFIG.SYS содержит описание трех различных конфигураций — конфигурации для работы в среде операционной системы Windows, конфигурации для работы с текстовым процессором Лексикон и конфигурации для работы в операционной системе MS-DOS.
Для всех трех конфигураций исполняются команды, находящиеся в блоке [Common]. Там расположены две команды: DEVICE=C:\DOS\HIMEM.SYS и DOS=HIGH. Эти команды загружают менеджер расширенной памяти HIMEM.SYS, и разрешают MS-DOS использовать область старшей памяти (HMA-High Memory Area).
После выполнения этих двух команд на экране появляется основное меню, определенное в блоке [Menu]:
_ Конфигурация для Windows Конфигурация для Лексикона Стандартная конфигурация
Когда вы выберете конфигурацию, которую желаете загрузить, нажмите клавишу . После этого будут выполнены команды из соответствующего выбранному элементу меню блока — [Windows], [Lexicon] или [Standart].
На этом интерпретация файла CONFIG.SYS заканчивается и MS-DOS начинает выполнять командный файл AUTOEXEC.BAT.
При необходимости вы можете выполнить ветвление внутри файла AUTOEXEC.BAT, основываясь на выбранной в меню файла CONFIG.SYS конфигурации. Для этого предназначена специальная переменная окружения %CONFIG%. При выполнении команд файла CONFIG.SYS, переменной %CONFIG% присваивается имя блока выбранной конфигурации.
В командном файле AUTOEXEC.BAT вы можете проверять значение переменной %CONFIG% и в зависимости от ее значения выполнять различные команды. Для проверки состояния переменной окружения %CONFIG% можно воспользоваться командамии .
Рассмотрим в качестве примера AUTOEXEC.BAT для предыдущего примера.
rem !!! Переходим к метке, соответствующей значениюrem !!! переменной окружения %CONFIG%goto %config%:Windows c:\win\SMARTDRV.EXE 2048 1024 c:\win\mouse.com cd c:\win\win.exe goto end:Lexicon c:\dos\SMARTDRV.EXE 2048 c:\mouse\mouse.com cd c:\lex goto end:Standart c:\dos\SMARTDRV.EXE 2048 c:\mouse\mouse.com cd e:\nc goto end:end
Когда MS-DOS начинает выполнять команды из файла AUTOEXEC.BAT.
Вначале, по команде GOTO %CONFIG%, управление передается на метку, соответствующую имени выбранного блока конфигурации. Имена блоков конфигурации перечислены в блоке описания меню в файле CONFIG.SYS.
Таким образом, в зависимости от того, какая конфигурация будет выбрана в меню, управление перейдет на одну из трех меток — Windows, Lexicon или Standart. При этом для каждой конфигурации выполняются только свои команды. После выполнения команд, следующих за метками, управление переходит на метку END и исполнение командного файла AUTOEXEC.BAT завершается.
Например, если при интерпретации файла CONFIG.SYS, вы выбрали элемент основного меню с надписью Конфигурация для Windows, то переменная окружения %CONFIG% принимает значение Windows и управление перейдет на метку :Windows.
Здесь загружается драйвер дискового кэша и драйвер мыши. Затем происходит загрузка операционной системы Windows.
Приложение
Команды config.sys
device = himem.sys /test:off
Загрузка драйвер верхней памяти. Параметр /test:off отключает проверку памяти, тем самым, ускоряя загрузку
device = emm386.exe
Загрузка драйвера дополнительной памяти.
device = oakcdrom.sys /D:mscd001
Загрузка драйвера CD-ROM
dos = high, umb
Переносит DOS в верхнюю память, освобождая основную память для других программ.
Команды autoexec.bat
Smartdrv.exe
Запуск утилиты, устанавливающей драйвер для быстрой работы с жестким диском.
Mouse.com
Устанавливает драйвер мыши
Ntfsdos.exe
Устанавливает драйвер ntfs (позволяет работать с дисками с файловой системой NTFS)
ECHO OFF
Отключает вывод на экран сообщений от выполняющихся программ.
echo
Выводит на экран сообщение, где- само сообщение
Keyrus.com
Устанавливает русскую раскладку клавиатуры.
Cls
Очищает экран
set path = C:/
Устанавливает путь в системе, где «С» — буква логического диска,- сам путь на этом диске.
path = C:/
Аналогично предыдущему.
Задание
На дискете имеются следующие файлы:
VC – каталог с Volkov Commander
Drivers – каталог с драйверами
AUTOEXEC.BAT (пустой)
COMMAND.COM
CONFIG.SYS (пустой)
IO.SYS
MSDOS.SYS
В каталоге с драйверами:
KEYRUS.COM
MOUSE.COM
EMM386.EXE
MSCDEX.EXE
SMARTDRV.EXE
COUNTRY.SYS
HIMEM.SYS
OAKCDROM.SYS
NTFSDOS.EXE
Требуется сконфигурировать ОС и создать меню загрузки в соответствии с вариантом.
OВариант 1.
Меню содержит два варианты загрузки:
1)С загрузкой драйвера CD-ROM;
2)Без загрузки драйвера CD-ROM;
При любом варианте загрузки должны быть загружены драйверы верхней памяти и smartdrv.
OВариант 2.
Меню содержит два вариант загрузки:
1)С поддержкой мыши;
2)Без поддержки мыши;
При любом варианте загрузки должен быть загружен драйвер верхней памяти и в конце загрузки запущен VC.
OВариант 3.
Меню содержит два варианта загрузки:
1)С поддержкой русской раскладки клавиатуры;
2)Без поддержки русской раскладки клавиатуры;
При любом варианте загрузки должны быть загружены драйвера верхней и дополнительной памяти и драйвер CD-ROM.
OВариант 4.
Меню содержит три варианта загрузки:
1)Быстрая загрузка без дополнительных драйверов;
2)С загрузкой основных драйверов (верхней памяти и CD-ROM);
3)С загрузкой основных драйверов и загрузкой smartdrv;
При любом вариант в конце загрузки должен запускаться VC.
Статьи к прочтению:
Организация работы с Trello: пример команды Travelpayouts
Похожие статьи:
-
Пример: система команд процессоров семейства pdp
В качестве примера реально существующего процессора, удобного для более детального изучения, возьмем процессор серии машин, созданных фирмой DEC (США) и…
-
Пример 9.9 использование указателей для нахождения среднего значения массива n целых чисел.
Int mean (int *iPtr, int n) { int index; long sum; if (n0) { for (index=0, sum=0; index sum+=*(iPtr+index); return sum/n; // возвращает целое sum / n…