Изменения
Добавил ссылку на очень крутой bootkit и на утилиту bios_extract
{{болванка}}
{{болванка}}
== Что это такое, и зачем нужно? ==
'''BIOS''' расшифровывается, как Basic Input-Output System, т.е. Базовая Система Ввода-Вывода. Так иногда называют небольшую программу ([[Firmware|firmware]]), которая выполняется сразу после включения компьютера архитектуры x86. Ее предназначение — найти оборудование, проверить его функциональность (насколько это возможно) и произвести предстартовую настройку перед запуском операционной системы. В процессе работы BIOS должен найти и настроить следующие элементы x86-системы:
'''BIOS''' расшифровывается, как Basic Input-Output System, т.е. Базовая Система Ввода-Вывода. Так иногда называют небольшую программу ([[Firmware|firmware]]), которая выполняется сразу после включения компьютера архитектуры x86. Ее предназначение — найти оборудование, проверить его функциональность (насколько это возможно) и произвести предстартовую настройку перед запуском операционной системы. В процессе работы BIOS должен найти и настроить следующие элементы x86-системы:
* Устройства ввода-вывода
* Устройства ввода-вывода
Все это было очень важно в прошлом веке, в 1980е годы. Тогда эти функции BIOS были жизненно необходимы для запуска DOS, которая мало что умела делать с оборудованием сама по себе. Прошло время, и для запуска современных операционных систем уже не нужно инициализировать PCI-устройства и клавиатуру (например, для старта [[Linux]] нужно лишь инициализировать кэш-память, микропроцессор, память, загрузить ядро и передать ему управление) — они умеют это делать сами. Учитывая тот факт, что BIOS так и работает в 16-битном режиме, с адресным пространством в 1 мегабайт, и с надуманными зависимостями от оборудования PC AT, все большее количество оборудования переводят под управление современных альтернатив, таких как [[OpenFirmware]], [[UEFI]] или [[LinuxBIOS]].
Все это было очень важно в прошлом веке, в 1980е годы. Тогда эти функции BIOS были жизненно необходимы для запуска DOS, которая мало что умела делать с оборудованием сама по себе. Прошло время, и для запуска современных операционных систем уже не нужно инициализировать PCI-устройства и клавиатуру (например, для старта [[Linux]] нужно лишь инициализировать кэш-память, микропроцессор, память, загрузить ядро и передать ему управление) — они умеют это делать сами. Учитывая тот факт, что BIOS так и работает в 16-битном режиме, с адресным пространством в 1 мегабайт, и с надуманными зависимостями от оборудования PC AT, все большее количество оборудования переводят под управление современных альтернатив, таких как [[OpenFirmware]], [[UEFI]] или [[Coreboot|Coreboot (бывший LinuxBIOS)]].
На рынке BIOS безраздельно господствуют две мегакомпании AMI и Phoenix, и несколько контор поменьше. Они лицензируют свои версии BIOS производителям материнских плат, которые за нехилое бабло получают непонятный 16-битный закрытый [[BLOB]] и некий тулкит, чтоб немного его поправить. Все это приводит к глюкам, которые, т.к. код закрыт, пользователь исправить не может.
== Производители BIOS ==
На рынке BIOS безраздельно господствуют две мегакомпании AMI и Award/Phoenix, и несколько контор поменьше. Они лицензируют свои версии BIOS производителям материнских плат, которые за огромные деньги получают набор 16-битных [[BLOB]]'ов, которые можно немного поправить (вставить свою картинку, поменять тексты кое-где и т.п.). Все это приводит к глюкам, которые, т.к. код закрыт, пользователь исправить не может.
== Почему производители оборудования выбирают проприетарный BIOS ==
Сам факт того, что BIOS закрыт, и пользователь его не может никак изменить, пьянит голову некоторым недобросовестным производителям, которые могут программно блокировать некоторые функции оборудования (чтоб пользователи покупали более дорогие устройства). Например, простой канадский паренек John купил себе материнскую плату и с удивлением узнал, что одна из функций его новенького микропроцессора [http://thread.gmane.org/gmane.linux.bios/24211/focus=24227 запрещена на уровне BIOS]. Так поступают самые разные производители, например Hewlett Packard. На недоуменные вопросы пользователей представители компаний отмахиваются [http://forums11.itrc.hp.com/service/forums/bizsupport/questionanswer.do?threadId=1051601 отсутствием спроса или недостаточным тестированием].
Сам факт того, что BIOS закрыт, и пользователь его не может никак изменить, пьянит голову некоторым недобросовестным производителям, которые могут программно блокировать некоторые функции оборудования (чтоб пользователи покупали более дорогие устройства). Например, простой канадский паренек John купил себе материнскую плату и с удивлением узнал, что одна из функций его новенького микропроцессора [http://thread.gmane.org/gmane.linux.bios/24211/focus=24227 запрещена на уровне BIOS]. Так поступают самые разные производители, например Hewlett Packard. На недоуменные вопросы пользователей представители компаний отмахиваются [http://forums11.itrc.hp.com/service/forums/bizsupport/questionanswer.do?threadId=1051601 отсутствием спроса или недостаточным тестированием].
== Проблемы с проприетарными BIOS'ами ==
== Проблемы с проприетарными BIOS'ами ==
* [http://thread.gmane.org/gmane.linux.bios/24211/focus=24227 Проприетарный BIOS запрещает виртуализационные функции микропроцессора]
* [http://thread.gmane.org/gmane.linux.bios/24211/focus=24227 Проприетарный BIOS запрещает виртуализационные функции микропроцессора]
* [http://forums11.itrc.hp.com/service/forums/bizsupport/questionanswer.do?threadId=1051601 Запрет на использование аппаратной виртуализации в BIOS от HP]
* [http://forums11.itrc.hp.com/service/forums/bizsupport/questionanswer.do?threadId=1051601 Запрет на использование аппаратной виртуализации в BIOS от HP]
* [http://www.rom.by/article/A_kto_upravljaet_Vashim_kompjuterom А кто управляет вашим компьютером?]
* [http://www.rom.by/article/A_kto_upravljaet_Vashim_kompjuterom А кто управляет вашим компьютером?]
* На ежегодной конференции Black Hat [http://it.slashdot.org/story/09/08/01/2247225/Bootkit-Bypasses-TrueCrypt-Encryption?from=rss был продемонстрирован] bootkit, находящийся в BIOS и успешно преодолевающий шифрование Truecrypt.
* [http://cgit.freedesktop.org/~libv/bios_extract bios_extract] - свободная утилита для распаковывания многих форматов проприетарных BIOS.
== См. также ==
* [[Coreboot]]
* [[Firmware]]
[[Категория:Компьютерные термины]]
[[Категория:Компьютерные термины]]