Вызов прерывания BIOS - BIOS interrupt call

BIOS прервать звонки - это средство, которое операционные системы и прикладные программы используют для вызова средств Базовая система ввода вывода программное обеспечение на Совместимость с IBM PC компьютеры. Традиционно вызовы BIOS в основном используются ДОС программы и другое программное обеспечение, такое как загрузчики (включая, как правило, исторически относительно простое прикладное программное обеспечение, которое загружается напрямую и работает без операционной системы, особенно игровое программное обеспечение). BIOS работает только в режим реального адреса (Real Mode) процессора x86, поэтому программы, вызывающие BIOS, должны либо также работать в реальном режиме, либо должны переключаться из защищенного режима в реальный режим перед вызовом BIOS и затем снова переключаться. По этой причине современные операционные системы которые используют ЦП в Защищенный режим или Длинный режим обычно не используют вызовы прерываний BIOS для поддержки системных функций, хотя некоторые из них используют BIOS для проверки и инициализации аппаратных ресурсов на ранних этапах загрузка.[1]

На всех компьютерах программные инструкции управляют физическим оборудованием (экраном, диском, клавиатурой и т. Д.) С момента включения питания. На ПК BIOS, предварительно загруженный в ПЗУ на материнской плате, берет на себя управление сразу после сброса ЦП, в том числе во время включения питания, при нажатии кнопки аппаратного сброса или при критическом сбое программного обеспечения ( тройная ошибка ) заставляет схему материнской платы автоматически запускать аппаратный сброс. BIOS проверяет оборудование и инициализирует его состояние; находит, загружает и запускает программу загрузки (обычно загрузчик ОС и исторические ROM BASIC ); и обеспечивает базовый аппаратный контроль для программного обеспечения, работающего на машине, которое обычно представляет собой операционную систему (с прикладными программами), но может быть непосредственно загружаемым отдельным программным приложением.

Со стороны IBM они предоставили всю информацию, необходимую для полного использования BIOS или для прямого использования оборудования и полного отказа от BIOS при программировании ранних моделей IBM PC (до PS / 2). С самого начала программисты могли выбирать, использовать ли BIOS или нет, в зависимости от оборудования и периферии. IBM настоятельно рекомендовала авторство программ с хорошим поведением, которые обращались к оборудованию только через вызовы BIOS INT (и вызовы служб DOS), чтобы поддерживать совместимость программного обеспечения с текущими и будущими моделями ПК, имеющими разное периферийное оборудование, но IBM понимала, что для некоторых Разработчики программного обеспечения и заказчики оборудования требовали от пользовательского программного обеспечения возможности напрямую управлять оборудованием. Частично это было связано с тем, что значительная часть всех аппаратных функций и функций не была предоставлена ​​службами BIOS. В двух примерах (среди многих) адаптеры MDA и CGA могут выполнять аппаратную прокрутку, а последовательный адаптер ПК может передавать данные с прерываниями, но IBM BIOS не поддерживает ни одну из этих полезных технических функций.

Сегодня BIOS на новом ПК по-прежнему поддерживает большинство, если не все, вызовы функций прерывания BIOS, определенные IBM для IBM AT (представленного в 1984 году), а также многие другие новые функции, а также расширения некоторых оригинальных ( например, расширенные диапазоны параметров), обнародованные различными другими организациями и совместными отраслевыми группами. Это, в сочетании с аналогичной степенью совместимости оборудования, означает, что большинство программ, написанных для IBM AT, все еще могут правильно работать на новом ПК сегодня, предполагая, что более высокая скорость выполнения приемлема (что обычно для всех, кроме игр, использующих Время на основе ЦП). Несмотря на значительные ограничения сервисов, доступ к которым осуществляется через прерывания BIOS, они оказались чрезвычайно полезными и устойчивыми к технологическим изменениям.

Назначение вызовов BIOS

Вызовы прерывания BIOS выполняют функции аппаратного управления или ввода-вывода, запрошенные программой, возвращают системную информацию программе или делают и то, и другое. Ключевым элементом цели вызовов BIOS является абстракция: вызовы BIOS выполняют обычно определенные функции, а конкретные детали того, как эти функции выполняются на конкретном аппаратном обеспечении системы, инкапсулируются в BIOS и скрыты от программы. Так, например, программе, которая хочет читать с жесткого диска, не нужно знать, является ли жесткий диск ATA, SCSI, или SATA диск (или раньше ESDI диск, или MFM или RLL ездить возможно с Seagate ST-506 контроллер, пожалуй, один из нескольких Western Digital типов контроллеров, или с другим проприетарным контроллером другой марки). Программе нужно только идентифицировать определенный BIOS номер диска, к которому она хочет получить доступ, и адрес сектора, который ей нужно читать или записывать, и BIOS позаботится о переводе этого общего запроса в конкретную последовательность необходимых элементарных операций. для выполнения задачи через конкретное оборудование контроллера диска, подключенное к этому диску. Программа избавлена ​​от необходимости знать, как управлять на низком уровне каждым типом жесткого диска (или видеоадаптера, или интерфейса порта, или периферийных устройств часов реального времени), к которым может потребоваться доступ. Это и упрощает программирование операционных систем и приложений, и уменьшает размер программ, уменьшая дублирование программного кода, поскольку функциональные возможности, включенные в BIOS, не нужно включать в каждую программу, которая в этом нуждается; Вместо этого в программы включены относительно короткие вызовы BIOS. (В операционных системах, где BIOS не используется, служебные вызовы, предоставляемые самой операционной системой, обычно выполняют ту же функцию и цель.)

BIOS также освобождает разработчиков компьютерного оборудования (в той степени, в которой программы написаны для использования исключительно с BIOS) от необходимости поддерживать точную совместимость оборудования со старыми системами при разработке новых систем, чтобы поддерживать совместимость с существующим программным обеспечением. Например, аппаратная клавиатура на IBM PCjr работает совсем иначе, чем аппаратная часть клавиатуры на более ранних моделях IBM PC, но для программ, использующих клавиатуру только через BIOS, эта разница почти незаметна. (Хорошим примером другой стороны этой проблемы является то, что значительная часть программ для ПК, которые использовались на момент выпуска PCjr, не использовали клавиатуру исключительно через BIOS, поэтому IBM также включила в PCjr аппаратные функции для эмуляции путь оригинальный IBM PC и IBM PC XT аппаратная клавиатура работает. Эмуляция оборудования не точна, поэтому не все программы, которые пытаются напрямую использовать аппаратное обеспечение клавиатуры, будут правильно работать на PCjr, но все программы, которые используют только службы клавиатуры BIOS, будут.)

Помимо предоставления доступа к аппаратным средствам, BIOS предоставляет дополнительные возможности, которые реализованы в программном обеспечении BIOS. Например, BIOS поддерживает отдельные позиции курсора для восьми страниц текстового дисплея и обеспечивает TTY -подобный вывод с автоматическим переносом строки и интерпретацией основных управляющих символов, таких как возврат каретки и перевод строки, в то время как CGA-совместимое оборудование для отображения текста имеет только один глобальный курсор дисплея и не может автоматически перемещать курсор, используйте позицию курсора для обращения к дисплею память (чтобы определить, какая символьная ячейка будет изменена или исследована) или интерпретировать управляющие символы. В качестве другого примера интерфейс клавиатуры BIOS интерпретирует множество нажатий клавиш и комбинаций клавиш для отслеживания различных состояний сдвига (влево и вправо). сдвиг, Ctrl, и Alt), чтобы позвонить в службу печати экрана, когда сдвиг+PrtScrn нажата, чтобы перезагрузить систему, когда Ctrl+Alt+Del нажата, чтобы отслеживать состояния блокировки (Caps Lock, Num Lock и Scroll Lock) и, в машинах класса AT, управлять соответствующими световыми индикаторами состояния блокировки на клавиатуре, а также выполнять другие аналогичные функции интерпретации и управления для клавиатуры. Напротив, обычные возможности стандартного ПК и аппаратного обеспечения клавиатуры PC-AT ограничиваются сообщением системе о каждом примитивном событии нажатия или отпускания отдельной клавиши (т. Е. Переход из состояния «отпущено» в «нажатие»). состояние или наоборот), выполняя командную перезагрузку и самотестирование клавиатуры, а для клавиатур класса AT - выполняя команду от хост-системы для установки абсолютных состояний индикаторов состояния блокировки (светодиодов).

Вызов BIOS: программные прерывания BIOS

Операционные системы и другое программное обеспечение связываются с программным обеспечением BIOS для управления установленным оборудованием через программные прерывания. Программное прерывание - это особая разновидность общей концепции прерывания. Прерывание - это механизм, с помощью которого ЦП может остановить выполнение основной программы и вместо этого немедленно выполнить специальную программу, называемую программой обслуживания прерывания (ISR). После завершения ISR ЦП продолжает выполнение основной программы. В процессорах x86, когда происходит прерывание, ISR для вызова определяется путем поиска его в таблице адресов начальной точки ISR (называемых «векторами прерывания») в памяти: Таблица векторов прерываний (IVT). Прерывание вызывается по номеру его типа от 0 до 255, и номер типа используется в качестве индекса в таблице векторов прерываний, и по этому индексу в таблице находится адрес ISR, который будет запущен в ответ на прерывание. Программное прерывание - это просто прерывание, которое запускается программной командой; поэтому программные прерывания функционируют как подпрограммы, с той разницей, что программе, которая выполняет вызов программного прерывания, не требуется знать адрес ISR, а только номер прерывания. Это дает преимущества в отношении модульности, совместимости и гибкости конфигурации системы.

Вызовы прерывания BIOS можно рассматривать как механизм передачи сообщений между BIOS и клиентским программным обеспечением BIOS, например операционной системой. Сообщения запрашивают данные или действие из BIOS и возвращают запрашиваемые данные, информацию о состоянии и / или результат запрошенного действия вызывающему. Сообщения разбиты на категории, каждая из которых имеет собственный номер прерывания, и большинство категорий содержат подкатегории, называемые «функциями» и идентифицируемые «номерами функций». Клиент BIOS передает большую часть информации в BIOS в регистрах ЦП и получает большую часть информации обратно тем же способом, но данные, слишком большие для размещения в регистрах, такие как таблицы параметров управления или данные секторов диска для передачи на диск, передаются путем выделения буфера (т.е. некоторое пространство) в памяти и передача адреса буфера в регистрах. (Иногда несколько адресов элементов данных в памяти могут быть переданы в структуре данных в памяти, а адрес этой структуры передается в BIOS в регистрах.) Номер прерывания указывается как параметр инструкции программного прерывания (на языке ассемблера Intel , инструкция "INT"), а номер функции указывается в регистре AH; то есть вызывающий устанавливает регистр AH на номер желаемой функции. В общем, службы BIOS, соответствующие каждому номеру прерывания, работают независимо друг от друга, но функции в рамках одной службы прерывания обрабатываются одной и той же программой BIOS и не являются независимыми. (Последний пункт относится к возврат.)

Программное обеспечение BIOS обычно возвращает вызывающему абоненту код ошибки в случае неудачи или с кодом состояния и / или запрошенными данными в случае успеха. Сами данные могут иметь размер от одного бита или до 65 536 байтов целых необработанных секторов диска (максимум, который уместится в одном сегменте памяти реального режима). На протяжении многих лет BIOS многократно расширялся и улучшался многими различными корпоративными организациями, и, к сожалению, результатом этой эволюции является то, что не все функции BIOS, которые можно назвать, используют согласованные соглашения для форматирования и передачи данных или для отчетности о результатах. Некоторые функции BIOS сообщают подробную информацию о состоянии, в то время как другие могут даже не сообщать об успехе или неудаче, а просто молча возвращаются, оставляя вызывающему объекту предположить успех (или проверить результат другим способом). Иногда также может быть сложно определить, поддерживается ли конкретный вызов функции BIOS на определенном компьютере, или каковы ограничения параметров вызова на этом компьютере. (Для некоторых недопустимых номеров функций или допустимых номеров функций с недопустимыми значениями ключевых параметров - особенно с ранней версией IBM BIOS - BIOS может ничего не делать и возвращать без кода ошибки; тогда это [неудобно, но неизбежно] несет ответственность за вызывающий абонент либо избегает этого случая, не выполняя такие вызовы, либо положительно проверяет ожидаемый эффект вызова, а не предполагает, что вызов был эффективным.Поскольку BIOS претерпел значительные изменения за многие этапы своей истории, функция, действующая в одна версия BIOS от определенного поставщика может быть недействительной в более ранней или другой версии BIOS от того же поставщика или в версии BIOS - любого относительного возраста - от другого поставщика.)

Поскольку в вызовах прерывания BIOS используется передача параметров на основе регистров ЦП, эти вызовы ориентированы на выполнение из языка ассемблера и не могут выполняться напрямую из большинства языки высокого уровня (HLLs). Однако язык высокого уровня может предоставлять библиотеку процедур-оболочек, которые переводят параметры из формы (обычно на основе стека), используемой языком высокого уровня, в форму на основе регистров, требуемую BIOS, а затем обратно в HLL. соглашение о вызовах после возвращения BIOS. В некоторых вариантах C вызовы BIOS могут выполняться с использованием встроенного языка ассемблера в модуле C. (Поддержка встроенного языка ассемблера не является частью стандарта ANSI C, но является расширением языка; поэтому модули C, использующие встроенный язык ассемблера, менее переносимы, чем чистые стандартные модули C.)

Вызов прерывания

Вызов прерывания может быть выполнен с помощью INT x86 язык ассемблера инструкция. Например, чтобы вывести символ на экран с помощью прерывания BIOS 0x10, можно выполнить следующие инструкции ассемблера x86:

 mov ах, 0x0e    ; номер функции = 0Eh: Отображаемый символ mov аль, '!'     ; AL = код символа для отображения int 0x10        ; вызов INT 10h, видео-сервис BIOS

Таблица прерываний

Список общих классов прерываний BIOS можно найти ниже. Обратите внимание, что некоторые BIOS (особенно старые) не реализуют все эти классы прерываний.

BIOS также использует некоторые прерывания для ретрансляции прерываний аппаратных событий программам, которые выбирают их получение или маршрутизацию сообщений для собственного использования. В приведенной ниже таблице включены только те прерывания BIOS, которые предназначены для вызова программами (с использованием инструкции программного прерывания на языке ассемблера "INT") для запроса услуг или информации.

Вектор прерыванияОписание
05чВыполняется, когда Shift-Снимок экрана нажата, а также при нажатии СВЯЗАННЫЙ инструкция обнаруживает связанный сбой.
10чВидео услуги
AHОписание
00чУстановить режим видео
01чУстановить форму курсора
02чУстановить положение курсора
03чПолучить положение и форму курсора
04чПолучить положение светового пера
05чУстановить страницу отображения
06чОчистить / прокрутить экран вверх
07чОчистить / прокрутить экран вниз
08чПрочитать символ и атрибут в курсоре
09чЗаписать символ и атрибут в курсоре
0АчЗаписать символ в курсоре
0BhУстановить цвет границы
Запись графического пикселя
0DhСчитать графический пиксель
0EhЗапись символа в режиме телетайпа
0FhПолучить режим видео
10чУстановить регистры палитры (EGA, VGA, SVGA)
11чГенератор символов (EGA, VGA, SVGA)
12чАльтернативные функции выбора (EGA, VGA, SVGA)
13чЗапись строки
1АчПолучить или установить код комбинации дисплея (VGA, SVGA)
1BhПолучить информацию о функциях (VGA, SVGA)
Сохранить или восстановить состояние видео (VGA, SVGA)
4FhРасширение VESA BIOS Функции (SVGA)
11чСписок возвращаемого оборудования
12чВернуть обычная память размер
13чДисковые службы низкого уровня
AHОписание
00чСбросить диски
01чПроверить статус диска
02чЧитать секторы
03чЗапись секторов
04чПроверить сектора
05чФорматировать трек
08чПолучить параметры привода
09чИнициализировать фиксированные параметры привода
Искать по указанному пути
0DhСброс контроллера фиксированного диска
15чПолучить тип диска
16чПолучить статус изменения носителя гибкого диска
17чУстановить тип диска
18чУстановить тип носителя для гибкого диска
41чПроверка установки расширенного диска (EDD)
42чРасширенные секторы чтения
43чРасширенные секторы записи
44чСекторы расширенной проверки
45чБлокировать / разблокировать диск
46чИзвлечь медиа
47чРасширенный поиск
48чРасширенные параметры получения привода
49чРасширенное получение статуса изменения носителя
4EhРасширенная конфигурация оборудования
14чУслуги последовательного порта
AHОписание
00чИнициализация последовательного порта
01чПередать символ
02чПолучить Персонаж
03чСтатус
15чРазные системные услуги
AHALОписание
00чВключите приводной двигатель кассеты (только IBM PC / PCjr)
01чВыключите приводной двигатель кассеты (только IBM PC / PCjr)
02чЧтение блоков данных с кассеты (только IBM PC / PCjr)
03чЗапись блоков данных на кассету (только IBM PC / PCjr)
4FhПерехват клавиатуры
83чОжидание события
84чЧтение джойстика (BIOS с 1986 г.)
85чВыноска ключа Sysreq
86чПодождите
87чПереместить блок
88чПолучить Расширенная память Размер
89чПерейти в защищенный режим
C0hПолучить системные параметры
C1hПолучить расширенный сегмент области данных BIOS
C2hФункции указательного устройства
C3hФункции сторожевого таймера - только системы PS / 2
C4hВыбор программируемой опции - MCA только шины PS / 2
D8hEISA Системные функции - только для шинных систем EISA
E8h01чПолучить расширенный размер памяти (более новая функция, с 1994 г.). Выдает результаты для объема памяти более 64 Мб.
E8h20чКарта адресов системы запросов. Информация, полученная от E820 заменяет то, что возвращается из более старых AX = E801h и AH = 88ч интерфейсы.
16чУслуги клавиатуры
AHОписание
00чПрочитать характер
01чЧтение статуса входа
02чЧтение статуса смены клавиатуры
05чСохранить нажатие клавиши в буфере клавиатуры
10чЧитать символ расширен
11чЧтение состояния входа расширено
12чЧтение расширенного статуса смены клавиатуры
17чУслуги печати
AHОписание
00чПечать символа на принтер
01чИнициализировать принтер
02чПроверить статус принтера
18чВыполнить Кассета BASIC: На машинах IBM до первой линии PS / 2 это прерывание запускало ROM Cassette BASIC. Клоны не имели этой функции, и разные машины / BIOS выполняли бы множество различных действий, если бы выполнялся INT 18h, чаще всего это сообщение об ошибке, указывающее, что загрузочный диск отсутствует. Современные машины попытаются загрузка из сети через это прерывание. На современных машинах это прерывание будет обрабатываться BIOS как сигнал от загрузчика о том, что он не смог выполнить свою задачу. Затем BIOS может предпринять соответствующие шаги.[2]
19чПосле POST это прерывание используется BIOS для загрузки операционной системы. Программа может вызвать это прерывание для перезагрузки компьютера (но должна гарантировать, что аппаратные прерывания или операции DMA не приведут к зависанию или сбою системы во время повторной инициализации системы BIOS или процесса загрузки).
1АчУслуги часов реального времени
AHОписание
00чЧитать RTC
01чУстановить RTC
02чЧитать время RTC
03чУстановить время RTC
04чЧтение даты RTC
05чУстановить дату RTC
06чНабор RTC Alarm
07чСбросить сигнал тревоги RTC
1АчPCI Сервисы - реализованы BIOS, поддерживающей PCI 2.0 или новее
ТОПОРОписание
B101hПроверка установки PCI
B102hНайти устройство PCI
B103hНайти код класса PCI
B106hСпецифичные для шины PCI операции
B108hЧтение байта конфигурации
B109hПрочитать слово конфигурации
B10AhПрочитать конфигурацию Dword
B10BhЗапись байта конфигурации
B10ChНаписать слово конфигурации
B10DhЗаписать Dword конфигурации
B10EhПолучение стандартной информации о IRQ
B10FhУстановить PCI IRQ
1BhОбработчик Ctrl-Break - вызывается ИНТ 09 когда Ctrl-Перерыв был нажат
Обработчик тиков таймера - вызывается ИНТ 08
1DhНе называться; просто указатель на VPT (таблица параметров видео), которая содержит данные о режимах видео
1EhНе называться; просто указатель на DPT (Таблица параметров дискет), содержащий различную информацию о дисководах
1FhНе называться; просто указатель на VGCT (Таблица символов видеографики), которая содержит данные для символов ASCII 80ч к FFh
41чУказатель адреса: FDPT = Таблица параметров фиксированного диска (1-й жесткий диск)
46чУказатель адреса: FDPT = Таблица параметров фиксированного диска (2-й жесткий диск)
4АчВызывается RTC для тревоги

ИНТ 18ч: выполнить BASIC

ИНТ 18ч традиционно перешли к реализации Кассета BASIC (предоставлено Microsoft) хранится в Дополнительные ПЗУ. Этот вызов обычно вызывается, если BIOS не может определить какие-либо тома загрузочного диска при запуске.

Когда в 1981 году был выпущен оригинальный IBM PC (тип машины IBM 5150), ключевой особенностью BASIC в ROM. Современные популярные персональные компьютеры, такие как Commodore 64 и линейка Apple II, также имели Microsoft Cassette BASIC в ПЗУ (хотя Commodore переименовал их лицензионную версию в Commodore BASIC), поэтому на значительной части предполагаемого рынка IBM PC требовался BASIC для конкуренции. Как и в других системах, ROM BASIC IBM PC служила примитивной бездисковой операционной системой, позволяя пользователю загружать, сохранять и запускать программы, а также писать и уточнять их. (Первоначальный IBM PC был также единственной моделью ПК от IBM, которая, как и его два вышеупомянутых конкурента, включала аппаратное обеспечение интерфейса кассеты. Базовая модель IBM PC имела только 16 Кбайт ОЗУ и не имела дисководов [любого вида], поэтому интерфейс кассеты и BASIC в ПЗУ были важны для того, чтобы базовая модель стала пригодной для использования. IBM PC с объемом ОЗУ менее 32 КБ не может загружаться с диска. Из пяти микросхем ПЗУ по 8 КиБ в оригинальном ПК IBM, общим объемом 40 КБ, четыре содержат BASIC и только один содержит BIOS; когда установлено только 16 КБ ОЗУ, ROM BASIC составляет более половины всей системной памяти [4/7, если быть точным].)

По прошествии времени, когда BASIC больше не поставлялся на всех ПК, это прерывание просто отображало сообщение об ошибке, указывающее, что загрузочный том не был найден (знаменитый «No ROM BASIC» или другие пояснительные сообщения в более поздних версиях BIOS); в других версиях BIOS пользователю предлагалось вставить загрузочный том и нажать клавишу, а затем после того, как пользователь нажал клавишу, он возвращался к загрузчику начальной загрузки (INT 19h), чтобы попытаться снова загрузиться.

Цифровые Радуга 100 B используется ИНТ 18ч вызвать его BIOS, который несовместим с BIOS IBM. Турбо Паскаль, Турбо С и Турбо C ++ перепрофилирован INT 18 для выделения памяти и подкачки. Другие программы также повторно использовали этот вектор в своих целях.

Хуки BIOS

ДОС

В системах DOS IO.SYS или IBMBIO.COM перехватывает INT 13 для обнаружения смены гибких дисков, отслеживания вызовов форматирования, исправления ошибок границ DMA и решения проблем в BIOS ROM IBM "01/10/84" с кодом модели 0xFC перед первым вызовом.

Обход BIOS

Многие современные операционные системы (например, Linux и Windows NT ) обходить вызовы прерывания BIOS после запуска, Ядро ОС преобразует CPU в защищенный режим или длинный режим при запуске, предпочитая использовать свои собственные программы (например, драйверы ядра ) для непосредственного управления подключенным оборудованием. Первоначальная причина этого заключалась прежде всего в том, что эти операционные системы запускают процессор в защищенном режиме, тогда как для вызова BIOS требуется переключение в реальный режим и обратно, а переключение в реальный режим происходит медленно. Однако существуют также серьезные причины для безопасности, чтобы не переключаться в реальный режим, а код BIOS имеет ограничения как по функциональности, так и по скорости, что побуждает разработчиков операционной системы искать ему замену. Фактически, ограничения скорости BIOS сделали обычным даже в эпоху DOS, чтобы программы обходили его, чтобы избежать ограничений производительности, особенно для отображения видео графики и быстрой последовательной связи. Проблемы с функциональностью BIOS включают ограничения в диапазоне определенных функций, несогласованность в подмножествах этих функций, поддерживаемых на разных компьютерах, и различия в качестве BIOS (то есть некоторые BIOS являются полными и надежными, другие сокращены и содержат ошибки). Взяв дело в свои руки и избегая использования BIOS, разработчики операционных систем могут устранить некоторые риски и сложности, с которыми они сталкиваются при написании и поддержке системного программного обеспечения. С другой стороны, поступая таким образом, эти разработчики берут на себя ответственность за предоставление программного обеспечения драйверов «на чистом железе» для каждой системы или периферийного устройства, с которыми они намерены работать в своей операционной системе (или за побуждение производителей оборудования предоставлять эти драйверы). Таким образом, должно быть очевидно, что компактные операционные системы, разработанные с небольшим бюджетом, будут склонны интенсивно использовать BIOS, в то время как большие операционные системы, созданные огромными группами инженеров-программистов с большими бюджетами, чаще предпочитают писать свои собственные драйверы вместо использования BIOS, то есть , даже без учета проблем совместимости BIOS и защищенного режима.

Смотрите также

использованная литература

  1. ^ «Загрузка · Linux Inside». 0xax.gitbooks.io. Получено 2020-11-10.
  2. ^ * Спецификация загрузки BIOS, версия 1.01, 11 января 1996 г. Приложение D.