76

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

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

5 ответов5

71

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

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

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

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

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

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

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

31

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

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

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

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

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

16

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

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

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

Тим

9

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

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

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

интелс маркетинг

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .