Каковы функции BIOS во время работы операционной системы?


78

Мне всегда было интересно, имеет ли BIOS (помимо проведения POST, запуска загрузчика и передачи управления ОС после нажатия кнопки питания) какое-либо назначение или функцию во время работы операционной системы?

Связывается ли операционная система с BIOS во время работы, и если да, то как?


Ответы:


72

С современными ОС практически нет . Линус Торвальдс, как сообщается, заявил, что его задача состоит в том, чтобы «просто загрузить ОС и убраться оттуда».

Старые операционные системы, такие как MS-DOS, полагались на BIOS для многих задач (например, доступа к диску), вызывая прерывания.

В современных ОС загрузчик быстро переключается в 32- или 64-разрядный режим и запускает ядро ​​ОС. Ядро может регистрировать свои собственные обработчики прерываний, которые могут вызываться приложениями пользовательского пространства. Подпрограммы ядра могут быть более переносимыми (поскольку они не зависят от конкретного оборудования), более гибкими (поставщики ОС могут менять их по требованию, а не использовать все, что поставляется с оборудованием), более сложными (они могут выполнять произвольно сложные код, а не то, что было запрограммировано в BIOS), и более безопасный (поскольку ОС может контролировать доступ к общим ресурсам и предотвращать сбои программ друг с другом, реализуя собственные схемы произвольных разрешений).

Для взаимодействия с конкретным оборудованием ОС могут загружать и использовать собственные драйверы устройств. Так что ОС или приложениям вообще не нужно вызывать большинство подпрограмм BIOS. На самом деле, из соображений безопасности, прерывания BIOS даже отключены. Поскольку BIOS работает в 16-битном реальном режиме, к современным ОС сложнее обратиться.

Хотя использование BIOS очень ограничено во время работы ОС, его функции все еще используются на периферии. Например, когда компьютер спит , операционная система не работает, и в конечном итоге она переходит к встроенному программному обеспечению для установки аппаратного обеспечения в правильное состояние для приостановки и возобновления работы операционной системы. Эти применения обычно ограничиваются вызовами ACPI, а не вызовами полного интерфейса BIOS. ACPI - это расширение BIOS, которое «обеспечивает управление питанием под управлением операционной системы (OSPM), в отличие от предыдущей центральной системы BIOS, которая использовала встроенное ПО для платформы для определения политики управления питанием и конфигурации» .

Обратите внимание, что официально «BIOS» относится к конкретному интерфейсу прошивки, но этот термин обычно используется для обозначения прошивки компьютера в целом. Некоторые современные компьютеры (особенно Apple) заменили BIOS (sensu strictu) на UEFI , что, конечно же, и призвано реализовать эти функции.

Для получения дополнительной информации о том, как роль BIOS со временем уменьшилась, см. Википедию .


15
Существует минимальное взаимодействие через системные часы (время суток).
MSalters

7
Вы действительно уверены в этом? Как насчет управления вентиляторами, уже упомянутого режима управления системой, всего ACPI, который, например, контролирует скорость процессора?
Александр

32
Я мог бы попробовать и припаять чип BIOS, пока машина работает.
JohnnyFromBF

5
@ Зачем тебе все сложно? Найдите старую доску с биосом в сокете и просто дерните фишку. В качестве альтернативы IIRC некоторые недавние платы оверклокеров все еще имеют аппаратный переключатель, позволяющий переключаться между двумя BIOS. Сделайте флэш-образ B, загрузитесь в A, переключитесь в B во время работы.
Дэн Нили

17
@ Я сделал это. Я потерял питание при перепрошивке BIOS, после этого он не загрузился. У нас было 20 машин с точно таким же оборудованием, и они устарели. Поэтому я загрузил одну, удалил чип BOIS, подключил испорченную и прошил. После этого обе микросхемы BOIS отлично работали. Конечно, это был DOS, работающий на флеш-ПО. Я думаю, все еще впечатляет. (Насколько я помню, платы были под маркой Gigabyte, совместимы с Pentium 4)
Ekin Koc

32

BIOS предоставляет операционным системам ряд сервисов, большинство из которых связаны с управлением питанием:

  • Модификация тактовых частот процессора и шины
  • включение / отключение материнских плат
  • контроль мощности порта расширения
  • приостановить на диск и приостановить на RAM
  • возобновить настройки событий

Suspend-to-disk реализован в ОС в большинстве случаев, так как ОС может быстрее восстанавливать свое состояние (перезагружается только состояние ядра, а при необходимости изменяется состояние программы, что значительно быстрее, чем перезагрузка всей оперативной памяти), но функция остается в спецификации.

Операция Suspend-to-RAM не может быть реализована ОС, так как она полагается на то, что BIOS пропускает инициализацию и тестирование RAM, поэтому ОС требуется API, чтобы сообщить BIOS, что она собирается возобновить работу с текущим содержимым RAM. Чтобы предоставить эту услугу, BIOS просит ОС оставить определенную область ОЗУ без изменений.

Интерфейс для ОС для всех служб BIOS представляет собой фрагмент кода виртуальной машины, который необходимо запустить на эмуляторе и который генерирует необходимые операции ввода-вывода в аппаратном обеспечении. Для приостановки это обычно реализуется так, что выполнение одной из аппаратных записей затем запускает прерывание, которое передает управление в BIOS.


17

Существует три основных области, в которых ОС использует BIOS в современных системах, например, в тех, которые используют стандарт UEFI. Первый - это серия сервисов, известных как сервисы времени выполнения UEFI. Эти сервисы позволяют ОС получать информацию, которую знает только BIOS, например, время, в течение которого использовался BIOS, порядок загрузки, текущий профиль безопасности пользователя, информация о материнской плате, модулях DIMM и т. Д.

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

Третий - ACPI. ACPI предоставляет данные конфигурации и управления питанием, а также аппаратные данные и код, используемые ОС для расширения возможностей драйверов ОС с использованием отраслевого стандарта или драйверов устройств. Например, есть ли специальный сигнал для управления питанием жесткого диска, или есть особый способ общения с аккумулятором, который не предусмотрен стандартом.

Тим


9

Современные ОС используют BIOS в основном только для загрузки, но для него все еще есть несколько применений, которые включают, в частности:

  • Реагирование на кнопку питания (выключить компьютер через 4 секунды в
    комплекте).
  • Изменение настроек яркости экрана на ноутбуках
  • События батареи на ноутбуках
  • Подвеска

Я думал, что Яркость была сделана, изменяя цветовые значения непосредственно перед рисованием.
Коул Джонсон

3
@ColeJohnson: Нет: на Thinkpads, по крайней мере, он на самом деле изменяет яркость подсветки.
Механическая улитка

1
Яркость представляет собой аппаратно управляемый сигнал с широтно-импульсной модуляцией, который включает и выключает ярко-белый светодиод на высокой частоте. Этот свет является одним из основных потребителей батарей

1

В дополнение к тому, что было отмечено выше, Intel начинает качаться другим путем и наращивать свои возможности, предоставляя внешний доступ к оборудованию с помощью технологии Active Management, встроенной в BIOS и материнскую плату, которой можно управлять независимо от ОС. С этими досками вы действительно можете сделать немало. Считаете ли вы его встроенным или вторую ОС - это другое дело, но поскольку в нем есть аппаратное обеспечение и компоненты в BIOS, я придерживаюсь встроенного.

Intels Marketing Guff

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.