Главная · Поиск книг · Поступления книг · 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 ... 71 72 73 74 75 76 77  78 79 80 81 82 83 84 ... 198
         выдавая простые команды типа "Отобразить символ" и "Получить сим-
         вол".  Все технические детали по пересылке символов берет на себя
         драйвер,  обеспечивая тем самым желанный для прикладной программы
         высокоуровневый интерфейс.  Замена терминала может вызвать замену
         драйвера,  но  при этом в прикладной программе не потребуется де-
         лать никаких изменений.  Драйверы дисководов должны  обеспечивать
         стандартный  интерфейс  для  всех используемых типов дисков,  при
         этом программа, осуществляющая ввод/вывод с диска, будет работать
         с дискетой любого формата,  с жестким диском, и даже с псевдодис-
         ком в ОЗУ,  не замечая никаких различий. Одним словом, первая за-
         дача  драйвера  состоит  в обеспечении независимого от устройства
         унифицированного интерфейса.
            Второе целевое  назначение  драйверов  устройств заключается в
         том,  что они для всех прикладных программ  обеспечивают  сервис,
         подобный библиотекам функций времени выполнения.  Любая программа
         освобождена не только от необходимости поддержки множества разно-
         форматных  устройств,  но  и от необходимости поддерживать вообще
         какие-либо форматы.  Все заботы по поддержке устройств  возложены
         на драйверы устройств.  В связи с тем, что все драйверы собраны в
         операционной системе, требуется лишь одна копия каждого драйвера.
         В результате этого программы,  написанные с использованием интер-
         фейса, предоставляемого MS-DOS, вообще не содержат в себе драйве-
         ров.
            В операционной системе MS-DOS версии 2.0 и выше драйверы могут
         быть добавлены для того,  чтобы заменить встроенные драйверы сис-
         темы. Если Вам не нравится как работает системный драйвер с конк-
         ретным устройством,  Вы можете написать свой собственный драйвер.
         Как подчеркивалось выше,  прикладные программы при этом ничего не
         заметят. Конечно  создание  драйвера  - не самое простое занятие,
         но, по крайней мере, такая возможность у Вас есть.
            Имея такое мощное средство обеспечения работы MS-DOS с различ-
         ными устройствами,  недолго представить себе драйверы, не поддер-
         живающие  реальных  устройств!  Другими  словами,  можно написать
         драйвер,который поддерживает несуществующее  устройство, например
         драйвер-эмулятор диска в ОЗУ.  Такие устройства получили название
         "виртуальные устройства",  а драйверы таких устройств,  соответс-
         твенно, "драйверы  виртуальных устройств" или просто "виртуальные

                                      - 6-3 -
         драйверы".
            Реальные или виртуальные устройства не ограничены, по сути де-
         ла,  только операциями ввода/вывода. На драйвер может быть возло-
         жена  любая  функция  по преобразованию данных.  Высокоскоростные
         процессоры для выполнения больших объемов вычислений  с плавающей
         точкой -  это  только  один из примеров устройства преобразования
         информации. Кроме того, драйверы могут программно эмулировать ре-
         альные устройства,  которые отсутствуют в конкретной системе, та-
         кие как часы или сопроцессор с плавающей точкой.

                      Когда использовать драйверы устройств?

            При каких  условиях некоторую функцию следует удалить из прог-
         раммы и перенести в драйвер?  Основное правило состоит в том, что
         если  какая-либо  функция  выполняет  ввод/вывод на на физическом
         уровне (т.е. работая непосредственно с аппаратурой), то эта функ-
         ция - прекрасный кандидат для переноса в драйвер. По самой приро-
         де семейства микропроцессоров 80x86 такие функции обычно содержат
         команды IN и/или OUT (включая INS или OUTS). Если система поддер-
         живает ввод/вывод,  отображенный на память,  доступ к  абсолютным
         адресам  памяти  также  может служить индикатором ввода/вывода на
         физическом уровне (чтение и запись векторов прерываний тоже явля-
         ется доступом к абсолютным адресам, но, конечно, предпочтительнее
         использовать функции MS-DOS "Получить вектор прерывания" и "Уста-
         новить  вектор  прерывания",  чем  использовать для этих же целей
         драйвер).
            Выделение программ-обработчиков  операций ввода/вывода в драй-
         вер устройства порождает четыре следствия :  это делает программы
         более  переместимыми,  делает  обработчики  операций ввода/вывода
         доступными для других программ, желающих работать с этим устройс-
         твом,  несколько увеличивает в размерах систему и замедляет время
         доступа к аппаратуре.  Некоторое увеличение размера памяти, зани-
         маемой  системой,  не  имеет большого значения,  а вот увеличение
         времени доступа может быть  критическим  фактором  для  некоторых
         приложений. Когда принимается решение о написании драйвера, необ-
         ходимо тщательно взвесить скоростные характеристики программы,  с
         одной стороны,  и  повышение совместимости программ и доступность
         драйвера, с другой стороны. Увеличение времени  доступа  за  счет
         накладных  расходов при каждом обращении к драйверу более заметно
         для устройств,  которые передают за один раз слово или байт  дан-
         ных. В драйверах, передающих за одно обращение целый блок данных,
         накладные расходы заметно уменьшаются.

                        MS-DOS - нереентерабельная система

            В связи с тем,  что обращения к драйверам осуществляет MS-DOS,
         на них накладываются такие же ограничения, как и на резидентные в
         памяти программы.  Так,  например, драйверы не могут пользоваться
         функциями MS-DOS (за исключением некоторых функций, которые могут
         использоваться при инициализации драйвера).  Это серьезно ограни-
         чивает свободу драйверов виртуальных устройств, созданных для до-
         полнительной обработки информации,  предназначенной для стандарт-
         ных драйверов.
            Так, например,  драйвер виртуального принтера, предназначенный
         для поддержки графических примитивов на  игольчатом  принтере  не
         может  использовать  стандартные функции MS-DOS для вывода симво-
         лов.  Драйвер виртуального принтера  должен  обеспечивать  полную

                                      - 6-4 -
         программную  поддержку  для  осуществления  физического вывода на
         принтер. Заметим, что драйвер, описанный в этом примере, именует-
         ся виртуальным, несмотря на то, что он работает с физическим уст-
         ройством.  Это объясняется тем, что драйвер предоставляет возмож-
         ности,   не   поддерживаемые   реальным  устройством,  такие  как
         выполнение графических операций на простом принтере.
            В связи с тем,  что MS-DOS нереентерабельна,  нельзя использо-
         вать программу DEBUG для отладки установленного драйвера. Для вы-
         полнения   собственных  операций  ввода/вывода  DEBUG  использует
         MS-DOS и если DEBUG использовать для отладки драйвера,  он испор-
         тит  переданную  драйверу  информацию,  делая невозможным возврат
         корректной информации в MS-DOS.  Один из  способов  обхода  этого
         препятствия  заключается в использовании любых имеющихся встроен-
         ных функций ввода/вывода (например,  функций BIOS) для вывода от-
         ладочной информации.  Более предпочтительный способ заключается в
         создании небольшой тестовой программы для проверки работы драйве-
         ра, которая передает драйверу тестовые данные и проверяет возвра-
         щаемую информацию.  Такая программа запускается  под  управлением
         отладчика обычным образом.  Конечно,  если устройство критично ко
         времени,  необходимо принять соответствующие меры, чтобы избежать
         какого-либо влияния на работу драйвера.

                           Установка драйверов устройств

            Как упоминалось ранее,  во времена, предшествующие MS-DOS вер-
         сии  2.0,  установка драйвера устройства означала изменение BIOS.
         Начиная с версии 2.0 появилась возможность устанавливать и  заме-
         нять драйверы в процессе начальной загрузки системы.
            Процесс начальной загрузки MS-DOS начинается со сброса  систе-
         мы.  Аппаратура  Вашей системы устанавливается в состояние сброса
         при включении питания компьютера.  Сразу после  сброса  процессор
         начинает выполнять команды,  находящиеся в самом конце его адрес-
         ного пространства.  Для процессора 80386 это команды, находящиеся
         по  шестнадцатиричному  адресу FFFFFFF0,  для процессора 80286 по
         адресу FFFFF0,  для процессора 8086 по адресу FFFF0. В любом слу-
         чае  по этим адресам находится ПЗУ,  содержащее начальный загруз-
         чик,  задача которого заключается в  загрузке  системной  области
         диска  в память.  Интересно отметить,  что возможности начального
         загрузчика постоянно росли.  Первый персональный компьютер  фирмы
         IBM  (IBM  PC)  мог загружаться только с дисковода "A".  Вместе с
         компьютером IBM PC XT появилась возможность загрузки  с  жесткого
         диска  и, видимо, недалек тот час, когда появится возможность се-
         тевой загрузки.
            Системная область  диска,  загружаемая в память начальным заг-
         рузчиком,  называется вторичным загрузчиком. В случае MS-DOS, ра-
         ботающей на IBM - совместимом компьютере, это самый первый сектор
         диска длиной 512 байт.  Такой маленький  размер  объясняется  тем
         фактом,  что BIOS находится в ПЗУ.  Вторичному загрузчику, в этом
         случае, для загрузки остальной части системы достаточно обратить-
         ся к BIOS,  которая всегда находится в ПЗУ. В системах, не содер-
         жащих BIOS в ПЗУ,  начальный загрузчик должен считывать  с  диска
         программу, способную обеспечить возможность вторичному загрузчику
         считать остальную часть системы.   В таких системах начальный за-
         грузчик должен считывать довольно большую часть диска.
            Сама MS-DOS загружается только после того,  как будет считан в
         память  вторичный загрузчик.  Именно по этой причине возможен за-
         пуск игр, не требующих для своей работы MS-DOS, или возможна заг-

                                      - 6-5 -
         рузка  других  операционных систем.  Собственно,  тип загружаемой
         системы зависит от того,  что именно считывается  с  загрузочного
         диска. При загрузке MS-DOS вторичный загрузчик предполагает нали-
         чие на диске корневого директория и,  как минимум, двух системных
         файлов. В связи с тем, что эти файлы скрытые, они не отображаются
         при выводе содержимого корневого  директория  (однако,  их  можно
         увидеть при помощи таких утилит,  как XTREE, Norton Utilities или
         SDIR).  Функции этих файлов одинаковы у  всех  поставщиков,  хотя
         имена могут различаться. Первый файл содержит ядро MS-DOS и обыч-
         но называется MSDOS.SYS или IBMDOS.COM  на  системах  фирмы  IBM.
         Другой  файл  содержит  интерфейс между MS-DOS и подсистемой вво-
         да-вывода и называется IO.SYS (Microsoft),  IBMBIO.COM (IBM)  или
         еще как-нибудь у других поставщиков. Вместе эти два файла состав-
         ляют операционную систему MS-DOS.  После того, как вторичный  за-
         грузчик находит и загружает эти файлы, начинается процесс инициа-
         лизации  MS-DOS.  Заметим,  что   на   IBM-совместимых   системах
         вторичный загрузчик считывает только файл IBMBIO.COM,  который, в
Предыдущая страница Следующая страница
1 ... 71 72 73 74 75 76 77  78 79 80 81 82 83 84 ... 198
Ваша оценка:
Комментарий:
  Подпись:
(Чтобы комментарии всегда подписывались Вашим именем, можете зарегистрироваться в Клубе читателей)
  Сайт:
 

Реклама