Главная · Поиск книг · Поступления книг · Top 40 · Форумы · Ссылки · Читатели

Настройка текста
Перенос строк


    Прохождения игр    
Demon's Souls |#13| Storm King
Demon's Souls |#12| Old Monk & Old Hero
Demon's Souls |#11| Мaneater part 2
Demon's Souls |#10| Мaneater (part 1)

Другие игры...


liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня
Rambler's Top100
Образование - Различные авторы Весь текст 2311.07 Kb

Программирование и кодирование

Предыдущая страница Следующая страница
1 ... 72 73 74 75 76 77 78  79 80 81 82 83 84 85 ... 198
         свою очередь, загружает IBMDOS.COM.
            Как только  загружен интерфейсный файл (IO.SYS или его эквива-
         лент),  вторичный загрузчик передает управление процедуре инициа-
         лизации,  содержащейся в интерфейсном файле. Кроме этой процедуры
         интерфейсный файл содержит стандартные  драйверы,  которые  будут
         использоваться при инициализации и работе MS-DOS.
            Сама процедура инициализации заключается в распределении  час-
         тей MS-DOS в памяти, создании всех внутренних таблиц, рабочих об-
         ластей и т.п.,  и, наконец, инициализации всех устройств, связан-
         ных  с  системой.  Инициализация  устройств заключается в посылке
         команды INIT каждому из драйверов,  содержащихся  в  интерфейсном
         файле (мы обсудим команду INIT позже,  совместно с другими коман-
         дами для драйверов устройств). После инициализации устройств про-
         цедура  инициализации  заканчивает  создание  внутренних таблиц и
         система к этому моменту готова к работе. До окончательного завер-
         шения, однако, остается еще один шаг.
            В этой точке процедура инициализации проверяет  наличие  файла
         CONFIG.SYS.  Если указанный файл отсутствует, то MS-DOS загружает
         стандартный интерпретатор команд и передает ему  управление. Если
         же файл CONFIG.SYS найден,  то выполняется еще один шаг инициали-
         зации. На этом этапе Вам предоставляется возможность подключить к
         MS-DOS Ваши собственные драйверы устройств.

                                  Файл CONFIG.SYS

            Файл CONFIG.SYS это обычный  текстовый  файл,  который  должен
         быть расположен в корневом директории диска,  с которого происхо-
         дит загрузка системы (если этот файл находится не в корневом  ди-
         ректории,  то процедура инициализации предполагает, что он совсем
         отсутствует).  Файл CONFIG.SYS содержит  команды,  руководствуясь
         которыми  процедура  инициализации изменяет и/или дополняет стан-
         дартную конфигурацию MS-DOS.  Если этот файл доступен,  процедура
         инициализации  (но не COMMAND.COM - он еще не загружен) считывает
         его в память и обрабатывает строка за строкой.  Каждая строка со-
         держит одну команду конфигурации. На диаграмме 6-1 показана обра-
         ботка некоторых команд.  Наиболее важна для нас  команда  DEVICE,
         которая имеет следующий формат:

                DEVICE=[d:][path]filename[.ext][ parameters]


                                      - 6-6 -
            где (заключенные в квадратные скобки элементы не являются обя-
         зательными):
                d:         - идентификатор дисковода,
                path       - путь к драйверу,
                filename   - имя файла, содержащего драйвер,
                ext        - расширение имени файла,
                parameters - параметры для драйвера.

            Эта команда  задает  необходимость  установки нового драйвера.
         Программа драйвера,  содержащаяся в заданном драйвере,  похожа на
         обычную .COM программу,  но имеет некоторые специфические особен-
         ности, описываемые далее,  в разделе, посвященном написанию драй-
         веров.
            В общем случае,  драйвер представляет собой особую форму рези-
         дентной программы.  Когда в файле CONFIG.SYS встречается  команда
         DEVICE, соответствующий драйвер загружается в память и анализиру-
         ется. Заголовок драйвера содержит информацию о типе, имени, атри-
         бутах устройства и определяет точки входа в программу. После заг-
         рузки  драйвера  MS-DOS  обращается  к  драйверу с командой INIT.
         Драйвер выполняет инициализацию и возвращает  управление  MS-DOS,
         указывая адрес конца драйвера, т.е. адрес первого свободного бай-
         та памяти, непосредственно следующего за драйвером. На этом уста-
         новка драйвера заканчивается.
            Указание адреса  конца  драйвера  при  возвращении  управления
         MS-DOS после выполнения команды INIT подобно указанию размера па-
         мяти,  занимаемой программой, при вызове функции MS-DOS "Остаться
         резидентом". По возвращаемому адресу MS-DOS определяет расположе-
         ние свободной памяти. Если файл CONFIG.SYS содержит другие коман-
         ды  DEVICE,  следующий  драйвер загружается непосредственно после
         предыдущего.  После того, как обработка файла CONFIG.SYS законче-
         на,  загружается еще один драйвер - драйвер фиктивного устройства
         (NUL-драйвер).  Затем MS-DOS  завершает  инициализацию  загрузкой
         постоянной части COMMAND.COM или другой, определяемой пользовате-
         лем оболочки.
            При загрузке драйверов MS-DOS связывает их в цепочку, так что-
         бы каждый драйвер содержал ссылку на ранее  загруженный  драйвер.
         Цепочка драйверов начинается,  таким образом, с последнего загру-
         женного драйвера (NUL-драйвер) и заканчивается самым первым  заг-
         руженным  драйвером (обычно стандартный драйвер устройства COM2).
         Такая цепочка строится, используя первые два слова заголовка каж-
         дого драйвера.  Эти два слова содержат сегмент и смещение следую-
         щего в цепочке драйвера или, в случае последнего драйвера число -
         1 (шестнадцатиричное значение FFFF). Пример цепочки драйверов по-
         казан в листинге 6-6, приведенном в конце этой главы.
            Когда MS-DOS  требуется  обратиться  к определенному драйверу,
         она начинает поиск по цепочке драйверов (начиная  с NUL-драйвера)
         в порядке, обратном тому, в котором драйверы были загружены. Пос-
         ле того, как требуемый драйвер найден, MS-DOS обращается к нему с
         соответствующей командой. Последовательность поиска в цепочке при
         этом такова,  что если загружен пользовательский драйвер, имя ко-
         торого  совпадает с именем какого-либо стандартного драйвера (та-
         кого как CON,  AUX или PRN),  драйвер пользователя  будет  найден
         первым.  Это позволяет пользователю заменять стандартные драйверы
         (например, заменить стандартный CON-драйвер на ANSI.SYS CON-драй-
         вер).
            Стандартные драйверы в действительности загружаются и  инициа-
         лизируются  до того как файл CONFIG.SYS будет считан и обработан.

                                      - 6-7 -
           ЪДДД¬   ЪДДД¬
           ¦ 1 ¦   ¦ 2 ¦
           АДВДЩ   АДВДЩ
             АДДДВДДДЩ
                 
               ЪДДД¬
               ¦ 3 ¦
               АДВДЩ
                / \   Да
              <  4  >ДДДДДДДД>В<ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД¬
                \ /                                                  ¦
                 ¦Нет        / \  Да                                  ¦
                 ¦         <  5  >ДДДДДДДДДДДДДДДДДДДДДДДДДДД¬        ¦
                 ¦           \ /                                     ¦
                 ¦<ДДДДДДДДДДДЩНет                         ЪДДД¬      ¦
                                                          ¦ 7 ¦      ¦
               ЪДДД¬                                       АДВДЩ      ¦
               ¦ 6 ¦                                    Да  / \       ¦
               АДВДЩ                              ЪДДДДДДД<  8  >     ¦
                 ¦                                         \ /       ¦
                 ¦                              ЪДДД¬        ¦Нет     ¦
                / \  Да                         ¦ 9 ¦                ¦
              <  12 >ДДДДДДДДД¬                 АДВДЩ      ЪДДД¬      ¦
                \ /                                      ¦ 10¦      ¦
                 ¦Нет       ЪДДД¬               ЪДДД¬      АДВДЩ      ¦
                           ¦ 13¦               ¦ 11¦        ¦        ¦
               ЪДДД¬        АДВДЩ               АДВДЩ                ¦
               ¦ 14¦          ¦                   АДДДДДДДДДДДДДДДДДДДЩ
               АДВДЩ          ¦
                 ¦            ¦
                 ¦<ДДДДДДДДДДДЩ
                 ¦
                 
               ЪДДД¬
               ¦ 15¦
               АДДДЩ

                   Блок-схема 6-1. Процесс инициализации MS-DOS.

            1 - Теплая загрузка (при нажатии клавиш Ctrl+Alt+Del)
            2 - Холодная загрузка (кнопка "СБРОС" или включение питания)
            3 - Загрузка системы
            4 - Файл CONFIG.SYS существует ?
            5 - Есть еще строки в CONFIG.SYS ?
            6 - Загрузка и запуск требуемого командного процессора (по
                умолчанию это COMMAND.COM)
            7 - Чтение строки из файла CONFIG.SYS
            8 - Это команда "DEVICE=" ?
            9 - Загрузка указанного в команде "DEVICE=" файла и подключение
                его к цепочке драйверов
           10 - Обработка какой-либо из команд "BREAK=","BUFFERS=","FILES="
                или "SHELL="
           11 - Обращение к драйверу с командой "INIT="
           12 - Файл AUTOEXEC.BAT существует ?
           13 - Выполнение всех обнаруженных в AUTOEXEC.BAT команд
           14 - Выполнение программ DATE и TIME
           15 - Выдача системного приглашения "A:>"

                                      - 6-8 -
         Это позволяет процедуре инициализации драйвера использовать неко-
         торые  функции MS-DOS для вывода сообщений или настройке драйвера
         на конкретную версию операционной системы.  Без всякой опаски мо-
         гут быть использованы функции MS-DOS с 01H по 0CH,  которые обес-
         печивают  работу  с  устройствами CON, PRN и AUX, а также функция
         30H ("Получить версию MS-DOS").  Вызовов,  относящихся к работе с
         файлами или управлением памятью,  следует избегать, так как  рас-
         пределение памяти полностью еще не завершено.
            После того, как файл CONFIG.SYS обработан и драйверы проиници-
         ализированы, стандартные драйверы устройств CON, PRN и AUX закры-
         ваются и заново открываются операционной системой для того, чтобы
         могла  произойти  замена  (если  таковая предусмотрена) указанных
         драйверов.  Начиная с этого  момента  используются  только  новые
         драйверы.
            Определенные драйверы не могут  быть  заменены  пользователем.
         Один из них - это драйвер пустого  (фиктивного)  устройства  NUL.
         Это  объясняется тем фактом,  что MS-DOS использует NUL-драйвер в
         качестве начала цепочки драйверов. Так как встроенный NUL-драйвер
         всегда определяет начало цепочки драйверов,  то первым всегда бу-
         дет найден встроенный NUL-драйвер.  Схематический пример  цепочки
         драйверов показан на рисунке 6-1.  Подробно назначение каждого из
         указанных полей будет объяснено позже.  Драйвер,  помеченный  как
         последний,  в действительности был первым устанавливаемым драйве-
         ром,  а драйвер, находящийся сразу после NUL-драйвера (в цепочке)
         устанавливался самым последним.
             ЪДДДДДДДДДДДД·         ЪДДДДДДДДДДДД·         ЪДДДДДДДДДДДД·
             ¦ Указатель  є         ¦ Указатель  є         ¦   Маркер   є
             ¦ на первый  ЗДДДДДДДД>¦    на      ЗДДДДДДДД>¦ последнего є
             ¦  драйвер   є         ¦ следующий  є         ¦  драйвера  є
             ¦            є         ¦  драйвер   є         ¦   ( -1 )   є
             ГДДДДДДДДДДДД¶         ГДДДДДДДДДДДД¶         ГДДДДДДДДДДДД¶
             ¦  Атрибуты  є         ¦  Атрибуты  є         ¦  Атрибуты  є
             ГДДДДДДДДДДДД¶         ГДДДДДДДДДДДД¶         ГДДДДДДДДДДДД¶
             ¦ Указатель  є         ¦ Указатель  є         ¦ Указатель  є
       ЪДДДДДґ     на     є   ЪДДДДДґ     на     є   ЪДДДДДґ     на     є
Предыдущая страница Следующая страница
1 ... 72 73 74 75 76 77 78  79 80 81 82 83 84 85 ... 198
Ваша оценка:
Комментарий:
  Подпись:
(Чтобы комментарии всегда подписывались Вашим именем, можете зарегистрироваться в Клубе читателей)
  Сайт:
 

Реклама