Почему операционные системы (обычно?) Не могут получить доступ к настройкам BIOS?

20

Разве материнская плата не обеспечивает шину между процессором и микросхемой BIOS после загрузки? Если так, то почему бы и нет?

Если процессор может контролировать скорость вентилятора, я не понимаю, почему он не может контролировать конфигурацию BIOS.

Dmiters
источник
Насколько я понимаю, когда BIOS тянет загрузчик в нем перестает функционировать, ожидайте в случаях IPMI.
Linef4ult
У некоторых производителей материнских плат есть утилиты для этого, но эти утилиты специфичны для этой материнской платы, в Windows она не встроена, поскольку это может быть плохой новостью, если ее использует вредоносное ПО или средний пользователь выискивает в конфигурации BIOS.
Моав
Как уже ответил Дэвид Постилл. Windows (и другие операционные системы) часто могут получить доступ к BIOS. Однако это зависит от чипсета и материнской платы и может не работать 100% времени. Если вы перейдете от прошивки BIOS к прошивке UEFI, вы получите больше контроля.
Хеннес
Прошло много времени с тех пор, как я видел ПК с настоящим BIOS. Если вы имеете в виду UEFI, это прямо под /sys/firmware/efiLinux.
Дмитрий Григорьев
После того, как управление передано ОС, BIOS не используется. Вы даже можете вынуть микросхему BIOS, чтобы запрограммировать другую в случае восстановления BIOS / перепрошивки поврежденного BIOS.
AStopher

Ответы:

44

Почему операционные системы (обычно?) Не могут получить доступ к настройкам BIOS?

На указанный выше вопрос нельзя ответить, так как ОС может получить доступ к BIOS.

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


Как операционные системы могут получить доступ к настройкам BIOS?

В Windows и Unix ОС умеет читать BIOS.

Windows

Пример (используя wmic):

F:\test>wmic bios /?

BIOS - Basic input/output services (BIOS) management.

HINT: BNF for Alias usage.
(<alias> [WMIObject] | <alias> [<path where>] | [<alias>] <path where>) [<verb clause>].

USAGE:

BIOS ASSOC [<format specifier>]
BIOS CREATE <assign list>
BIOS DELETE
BIOS GET [<property list>] [<get switches>]
BIOS LIST [<list format>] [<list switches>]


F:\test>wmic bios list brief
Manufacturer              Name                                        SerialNumber      SMBIOSBIOSVersion  Version
American Megatrends Inc.  BIOS Date: 09/05/11 11:20:58 Ver: 04.06.03  27546064-5001600  R1190V3            Sony - 20110905

Windows также может записывать данные в BIOS (некоторые производители материнских плат предоставляют средства обновления BIOS для Windows).

Смотрите, например, Как прошить BIOS, если это необходимо, через Windows или в BIOS .

Юникс

Unix имеет похожие команды.

  • biosdecode анализирует память BIOS и печатает информацию обо всех структурах.

  • Вы можете выполнять вызовы BIOS в режиме реального времени от пользователя root с помощью приложений на языке C, которые включают встроенный ASM (код сборки).

Источник Как записать данные BIOS в файл


Дальнейшее чтение

ДэвидПостилл
источник
5
Я хочу добавить, что до Windows XP вы могли сделать - что в меру моих знаний можно было бы описать как - хитрость указателя для доступа к настройке с debug.com - помните, что была хитрость, чтобы стереть защиту паролем некоторых биосов моделей. "debug.com" bios passwordПохоже, что поиск в Интернете приносит некоторую соответствующую информацию по теме.
Theraot
1
до сих пор не отвечает на вопрос "Почему?" .... неудовлетворительно ....
Zaibis
@Zaibis Не нужно отвечать на «почему». ОС может получить доступ к BIOS, поэтому спрашивать (и отвечать) почему ... невозможно ... - бессмысленный вопрос. Я немного уточнил ответ.
DavidPostill
1
"Unable" should be replaced by "able" as the OS can access the BIOS.Если вы просто хотели, чтобы это была фраза, вы должны удалить ее. Поскольку, следуя вашим советам, они остаются вопросом, к которому вы даже не обращаетесь.
Зайбис
1
@Zaibis <sigh> Все остальные поняли ответ (включая ОП, который принял ответ). Я обновил его снова специально для вас;)
DavidPostill
19

Они могут, но не так много стандартизированного интерфейса с настройками, особенно если вы имеете в виду собственно «BIOS» (то есть pre-UEFI).

Определенные части BIOS регулируются программными контрактами между BIOS и ОС, работающей поверх него. Давным-давно подпрограммы BIOS использовались для всех видов повседневных задач, таких как чтение и запись дисков, отображение информации на экране и печать на подключенном принтере, что и называлось «базовая система ввода / вывода». Если BIOS был согласован с аппаратным обеспечением, ОС могла бы поддерживать различные аппаратные варианты без необходимости иметь собственные подпрограммы для всех этих вещей. Но по мере того, как аппаратное обеспечение и операционные системы усложнялись и переросли ограниченный набор возможностей BIOS, операционные системы начали предоставлять свои собственные драйверы почти для всего, полагаясь только на BIOS для загрузки, управления питанием и получения информации о конфигурации системы.

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

Hobbs
источник
Было бы здорово, если бы вы могли описать часть «кусок пирога» в некоторых технических деталях. Например, предположим, что я знаю, как заставить произвольный код C выполняться в режиме ядра; теперь, как бы я пошел о сбрасывании BIOS вручную?
Мердад
6
@Mehrdad Область данных BIOS и Расширенная область данных BIOS сопоставляются с адресами основной памяти и, таким образом, могут считываться и записываться напрямую с соответствующими привилегиями. (Обычно вы этого не хотите ...) См., Например, wiki.osdev.org/Memory_Map_%28x86%29#BIOS_Data_Area_.28BDA.29 и stanislavs.org/helppc/bios_data_area.html и bioscentral.com/misc. /bda.htm для получения дополнительной информации о макете BDA (первый также дает краткое введение в один вариант макета EBDA). Добавьте «Область данных BIOS» и «Расширенная область данных BIOS» в свою любимую поисковую систему для получения дополнительной информации.
CVn