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

редактировать

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

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

Со стороны 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, они оказались чрезвычайно полезными и устойчивыми к технологическим изменениям.

Содержание
  • 1 Назначение вызовов BIOS
  • 2 Вызов BIOS: программные прерывания BIOS
    • 2.1 Вызов прерывания
  • 3 Таблица прерываний
  • 4 INT 18h: выполнение BASIC
  • 5 Перехватов BIOS
    • 5.1 DOS
  • 6 Обход BIOS
  • 7 См. Также
  • 8 Ссылки
Назначение вызовов 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, но для программ, использующих клавиатуру только через BIOS, эта разница почти незаметна. (Хорошим примером другой стороны этой проблемы является то, что значительная часть программ для ПК, которые использовались на момент выпуска PCjr, не использовали клавиатуру исключительно через BIOS, поэтому IBM также включила в PCjr аппаратные функции для эмуляции как работает оригинальная клавиатура IBM PC и IBM PC XT. Эмуляция оборудования не точна, поэтому не все программы, которые пытаются напрямую использовать клавиатуру, будут правильно работать на PCjr, но все программы, которые используют только службы клавиатуры BIOS, будут.)

Помимо предоставления доступа к аппаратным средствам, BIOS предоставляет дополнительные возможности, которые реализованы в программном обеспечении BIOS. Например, BIOS поддерживает отдельные позиции курсора для восьми страниц отображения текста и обеспечивает вывод, подобный TTY, с автоматическим переносом строки и интерпретацией основных управляющих символов, таких как возврат каретки и перевод строки, тогда как CGA -совместимое аппаратное обеспечение текстового дисплея имеет только один глобальный курсор дисплея и не может автоматически перемещать курсор, использовать позицию курсора для адресации памяти дисплея (чтобы определить, какая символьная ячейка будет изменена или проверена) или интерпретировать управляющие символы. В качестве другого примера интерфейс клавиатуры BIOS интерпретирует множество нажатий клавиш и комбинаций клавиш для отслеживания различных состояний сдвига (левый и правый Shift, Ctrl и Alt), для вызова службы печати экрана при нажатии Shift + 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 используют Передача параметров на основе регистров ЦП, вызовы ориентированы на выполнение с языка ассемблера и не могут выполняться напрямую с большинства языков высокого уровня (HLL). Однако язык высокого уровня может предоставлять библиотеку подпрограмм-оболочек, которые переводят параметры из формы (обычно на основе стека), используемой языком высокого уровня, в форму на основе регистров, требуемую BIOS, а затем обратно в HLL соглашение о вызовах после возврата из BIOS. В некоторых вариантах C вызовы BIOS могут выполняться с использованием встроенного языка ассемблера в модуле C. (Поддержка встроенного языка ассемблера не является частью стандарта ANSI C, но является расширением языка; поэтому модули C, использующие встроенный язык ассемблера, менее переносимы, чем чистые стандартные модули C стандарта ANSI.)

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

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

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

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

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

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

INT 18hтрадиционно перешел к реализации Cassette BASIC (предоставленной Microsoft), хранящейся в дополнительных ПЗУ. Этот вызов обычно вызывается, если BIOS не может определить какие-либо тома загрузочного диска при запуске.

Когда в 1981 году был выпущен оригинальный IBM PC (тип машины IBM 5150), ключевой особенностью был BASIC в ПЗУ. Современные популярные персональные компьютеры, такие как 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 с объемом ОЗУ менее 32 КБ не может загружаться с диска. Из пяти микросхем ПЗУ по 8 КБ в исходном ПК IBM, общим объемом 40 КБ, четыре содержат BASIC, и только один содержит BIOS; когда установлено только 16 КБ ОЗУ, ROM BASIC составляет более половины всей системной памяти [4/7-е, если быть точным].)

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

Digital's Rainbow 100 B использовал INT 18hдля вызова своего BIOS, что было несовместимо с IBM BIOS. Turbo Pascal, Turbo C и Turbo C ++ перепрофилировали INT 18 для выделения памяти и подкачки. Другие программы также повторно использовали этот вектор в своих целях.

Перехватчики BIOS

DOS

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

Обход BIOS

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

См. Также
Ссылки
Последняя правка сделана 2021-05-11 03:30:07
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте