stringtranslate.com

БИОС

В вычислительной технике BIOS ( / ˈ b ɒ s , -oʊ s / , BY -oss , -⁠ohss ; базовая система ввода-вывода , также известная как системная BIOS , ROM BIOS , BIOS ROM или PC BIOS ) — это встроенное ПО, используемое для предоставления служб времени выполнения операционных систем и программ , а также для выполнения инициализации оборудования во время процесса загрузки (запуск при включении питания). [1] Прошивка предварительно установлена ​​на материнской плате компьютера .

Название происходит от базовой системы ввода-вывода, используемой в операционной системе CP/M в 1975 году. [2] [3] Прошивка BIOS изначально была собственностью IBM PC ; она была подвергнута обратному проектированию некоторыми компаниями (например, Phoenix Technologies ), стремящимися создать совместимые системы. Интерфейс этой оригинальной системы служит фактическим стандартом .

BIOS в старых ПК инициализирует и тестирует компоненты оборудования системы ( самотестирование при включении питания или POST для краткости) и загружает загрузчик с запоминающего устройства, которое затем инициализирует ядро . В эпоху DOS BIOS обеспечивал вызовы прерываний BIOS для клавиатуры, дисплея, хранилища и других устройств ввода-вывода (I/O), которые стандартизировали интерфейс для прикладных программ и операционной системы. Более поздние операционные системы не используют вызовы прерываний BIOS после запуска. [4]

Большинство реализаций BIOS специально разработаны для работы с определенной моделью компьютера или материнской платы , взаимодействуя с различными устройствами, особенно с системным чипсетом . Первоначально прошивка BIOS хранилась в микросхеме ПЗУ на материнской плате ПК. В более поздних компьютерных системах содержимое BIOS хранится во флэш-памяти, поэтому его можно перезаписать, не снимая микросхему с материнской платы. Это позволяет конечному пользователю легко обновлять прошивку BIOS, чтобы можно было добавлять новые функции или исправлять ошибки, но это также создает возможность заражения компьютера руткитами BIOS . Кроме того, неудачное обновление BIOS может привести к поломке материнской платы.

Unified Extensible Firmware Interface (UEFI) является преемником устаревшего ПК BIOS, направленного на устранение его технических ограничений. [5] Прошивка UEFI может включать совместимость с устаревшим BIOS для поддержания совместимости с операционными системами и дополнительными картами, которые не поддерживают собственные операции UEFI. [6] [7] [8] С 2020 года все ПК на платформах Intel больше не поддерживают устаревший BIOS. [9] Последней версией Microsoft Windows , официально поддерживающей работу на ПК, использующих устаревшую прошивку BIOS, является Windows 10 , поскольку для Windows 11 требуется система, совместимая с UEFI (за исключением выпусков IoT Enterprise Windows 11, начиная с версии 24H2 [10] ).

История

/* CP / MBASICI / OSYSTEM (BIOS) АВТОРСКИЕ ПРАВА (C) ГЭРИ А. КИЛДАЛЛ ИЮНЬ, 1975 */[…]/* ОСНОВНАЯ ДИСКОПЕРАЦИОННАЯ СИСТЕМА (BDOS) АВТОРСКИЕ ПРАВА (C) ГЭРИ А. КИЛДАЛЛ ИЮНЬ, 1975 */
—  Фрагмент заголовка файла BDOS.PLM в исходном коде PL/M CP/M 1.1 или 1.2 для Lawrence Livermore Laboratories (LLL) [2]

Термин BIOS (базовая система ввода-вывода) был создан Гэри Килдаллом [11] [12] и впервые появился в операционной системе CP/M в 1975 году, [2] [3] [12] [13] [14] [15] описывая специфичную для машины часть CP/M, загружаемую во время загрузки, которая напрямую взаимодействует с оборудованием . [3] (Машина CP/M обычно имеет только простой загрузчик в своем ПЗУ.)

Версии MS-DOS , PC DOS или DR-DOS содержат файл, называемый по-разному " IO.SYS ", " IBMBIO.COM ", "IBMBIO.SYS" или "DRBIOS.SYS"; этот файл известен как "DOS BIOS" (также известный как "DOS I/O System") и содержит низкоуровневую аппаратно-зависимую часть операционной системы. Вместе с базовым аппаратно-зависимым, но независимым от операционной системы "System BIOS", который находится в ПЗУ , он представляет собой аналог " CP/M BIOS ".

BIOS, изначально разработанный для IBM PC, был подвергнут обратному проектированию некоторыми компаниями (например, Phoenix Technologies ), стремящимися создать совместимые системы.

С появлением машин PS/2 IBM разделила системный BIOS на части реального и защищенного режима. Часть реального режима была предназначена для обеспечения обратной совместимости с существующими операционными системами, такими как DOS, и поэтому была названа «CBIOS» (для «Compatibility BIOS»), тогда как «ABIOS» (для «Advanced BIOS») предоставляла новые интерфейсы, специально предназначенные для многозадачных операционных систем, таких как OS/2 . [16]

Пользовательский интерфейс

BIOS оригинального IBM PC и XT не имел интерактивного пользовательского интерфейса. Коды ошибок или сообщения отображались на экране, или генерировались закодированные серии звуков для сигнализации об ошибках, когда самотестирование при включении питания (POST) не достигало точки успешной инициализации видеоадаптера дисплея. Параметры на IBM PC и XT устанавливались переключателями и перемычками на основной плате и на картах расширения . Начиная примерно с середины 1990-х годов для BIOS ROM стало типичным включать «утилиту конфигурации BIOS» (BCU [17] ) или «утилиту настройки BIOS», доступ к которой осуществлялся при включении питания системы с помощью определенной последовательности клавиш. Эта программа позволяла пользователю устанавливать параметры конфигурации системы, которые ранее устанавливались с помощью DIP-переключателей , через интерактивную систему меню, управляемую с клавиатуры. В промежуточный период IBM-совместимые ПК, включая IBM AT , хранили настройки конфигурации в ОЗУ с батарейным питанием и использовали загружаемую программу конфигурации на дискете, а не в ПЗУ, для установки параметров конфигурации, содержащихся в этой памяти. Дискета поставлялась вместе с компьютером, и в случае ее утери системные настройки нельзя было изменить. То же самое в целом относилось к компьютерам с шиной EISA , для которых программа конфигурации называлась EISA Configuration Utility (ECU).

Современный Wintel -совместимый компьютер обеспечивает процедуру настройки, по сути, не изменившуюся по своей сути от ROM-резидентных утилит настройки BIOS конца 1990-х годов; пользователь может настраивать параметры оборудования с помощью клавиатуры и видеодисплея. Современная машина Wintel может хранить настройки конфигурации BIOS во флэш-ПЗУ, возможно, в том же флэш-ПЗУ, в котором хранится сам BIOS.

Расширения (опциональные ПЗУ)

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

BIOS материнской платы обычно содержит код для инициализации и начальной загрузки встроенного дисплея и встроенного хранилища. Процесс инициализации может включать выполнение кода, связанного с инициализируемым устройством, для определения местоположения устройства, проверки типа устройства, затем установки базовых регистров, установки указателей , установки таблиц векторов прерываний, [18] выбора режимов подкачки, которые являются способами организации доступных регистров в устройствах, установки значений по умолчанию для доступа к программным процедурам, связанным с прерываниями , [19] и установки конфигурации устройства с использованием значений по умолчанию. [20] Кроме того, подключаемые карты адаптеров, такие как SCSI , RAID , сетевые карты и видеокарты , часто включают в себя свой собственный BIOS (например, Video BIOS ), дополняя или заменяя код системной BIOS для данного компонента. Даже устройства, встроенные в материнскую плату, могут вести себя таким образом; их дополнительные ПЗУ могут быть частью BIOS материнской платы.

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

Физическое размещение

Микросхемы BIOS в Dell 310, которые были обновлены путем замены микросхем

Дополнительные ПЗУ обычно располагаются на адаптерных картах. Однако оригинальный ПК, а также, возможно, PC XT, имеют запасной разъем ПЗУ на материнской плате («системная плата» в терминах IBM), в который можно вставить дополнительное ПЗУ, а четыре ПЗУ, содержащие интерпретатор BASIC, также можно извлечь и заменить на пользовательские ПЗУ, которые могут быть дополнительными ПЗУ. IBM PCjr уникален среди ПК тем, что имеет два слота для картриджей ПЗУ на передней панели. Картриджи в этих слотах отображаются в ту же область верхней области памяти, которая используется для дополнительных ПЗУ, и картриджи могут содержать дополнительные модули ПЗУ, которые распознает BIOS. Картриджи также могут содержать другие типы модулей ПЗУ, такие как программы BASIC, которые обрабатываются по-разному. Один картридж PCjr может содержать несколько модулей ПЗУ разных типов, возможно, хранящихся вместе в одной микросхеме ПЗУ.

Операция

Запуск системы

Процессоры 8086 и 8088 начинаются с физического адреса FFFF0h. [21] Процессор 80286 начинается с физического адреса FFFFF0h. [22] Процессоры 80386 и более поздние процессоры x86 начинаются с физического адреса FFFFFFF0h. [23] [24] [25] При инициализации системы первая инструкция BIOS появляется по этому адресу.

Если система была только что включена или была нажата кнопка сброса (" холодная загрузка "), запускается полное самотестирование при включении питания (POST). Если было нажато Ctrl+Alt+Delete (" теплая загрузка "), специальное значение флага, хранящееся в энергонезависимой памяти BIOS (" CMOS "), проверенной BIOS, позволяет обойти длительное POST и обнаружение памяти.

POST идентифицирует, тестирует и инициализирует системные устройства, такие как ЦП , чипсет , оперативную память , материнскую плату , видеокарту , клавиатуру , мышь , жесткий диск , оптический привод и другое оборудование , включая интегрированные периферийные устройства .

Ранние IBM PC имели процедуру POST, которая загружала программу в оперативную память через порт клавиатуры и запускала ее. [26] [27] Эта функция была предназначена для заводских испытаний или диагностических целей.

После того, как BIOS материнской платы завершает POST, большинство версий BIOS ищут модули дополнительных ПЗУ, также называемые ПЗУ расширения BIOS, и выполняют их. BIOS материнской платы сканирует ПЗУ расширения в части « верхней области памяти » (часть адресного пространства реального режима x86 по адресу 0xA0000 и выше) и запускает каждое найденное ПЗУ по порядку. Чтобы обнаружить отображаемые в память дополнительные ПЗУ, реализация BIOS сканирует адресное пространство реального режима от 0x0C0000до 0x0F0000на границах 2  КБ (2048 байт), ища двухбайтовую сигнатуру ПЗУ: 0x55, за которой следует 0xAA. В допустимом расширенном ПЗУ за этой сигнатурой следует один байт, указывающий количество 512-байтовых блоков, которые занимает ПЗУ расширения в реальной памяти, а следующий байт является точкой входа дополнительного ПЗУ (также известной как ее «смещение входа»). Если ПЗУ имеет верную контрольную сумму, BIOS передает управление по адресу входа, который в обычном ПЗУ расширения BIOS должен быть началом процедуры инициализации расширения.

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

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

Процесс загрузки

Процесс загрузки

После завершения POST и, в BIOS, поддерживающем дополнительные ПЗУ, после завершения сканирования дополнительных ПЗУ и вызова всех обнаруженных модулей ПЗУ с допустимыми контрольными суммами , BIOS вызывает прерывание 19h для начала обработки загрузки. После загрузки загруженные программы также могут вызывать прерывание 19h для перезагрузки системы, но они должны быть осторожны, чтобы отключить прерывания и другие асинхронные аппаратные процессы, которые могут помешать процессу перезагрузки BIOS, иначе система может зависнуть или выйти из строя во время перезагрузки.

При вызове прерывания 19h BIOS пытается найти программное обеспечение загрузчика на «загрузочном устройстве», таком как жесткий диск , дискета , CD или DVD . Он загружает и выполняет первое найденное им программное обеспечение загрузки , предоставляя ему контроль над ПК. [28]

BIOS использует загрузочные устройства, установленные в энергонезависимой памяти BIOS ( CMOS ), или, в самых ранних ПК, DIP-переключатели . BIOS проверяет каждое устройство, чтобы узнать, является ли оно загрузочным, пытаясь загрузить первый сектор ( загрузочный сектор ). Если сектор не может быть прочитан, BIOS переходит к следующему устройству. Если сектор прочитан успешно, некоторые BIOS также проверяют сигнатуру загрузочного сектора 0x55 0xAA в последних двух байтах сектора (длина которого составляет 512 байт), прежде чем принять загрузочный сектор и считать устройство загрузочным. [b]

Когда загрузочное устройство найдено, BIOS передает управление загруженному сектору. BIOS не интерпретирует содержимое загрузочного сектора, за исключением возможной проверки сигнатуры загрузочного сектора в последних двух байтах. Интерпретация структур данных, таких как таблицы разделов и блоки параметров BIOS, выполняется загрузочной программой в самом загрузочном секторе или другими программами, загруженными в процессе загрузки.

Недисковое устройство, такое как сетевой адаптер, пытается загрузиться с помощью процедуры, которая определяется его дополнительным ПЗУ или эквивалентом, интегрированным в ПЗУ BIOS материнской платы. Таким образом, дополнительные ПЗУ также могут влиять на процесс загрузки, определенный ПЗУ BIOS материнской платы, или заменять его.

При использовании стандарта загрузки оптических носителей El Torito оптический привод фактически эмулирует 3,5-дюймовый гибкий диск высокой плотности для BIOS в целях загрузки. Чтение «первого сектора» CD-ROM или DVD-ROM — это не просто определенная операция, как на гибком диске или жестком диске. Кроме того, сложность носителя затрудняет написание полезной загрузочной программы в одном секторе. Загрузочная виртуальная дискета может содержать программное обеспечение, которое обеспечивает доступ к оптическому носителю в его собственном формате.

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

Кроме того, если ПЗУ расширения хочет изменить способ загрузки системы в одностороннем порядке, оно может просто перехватить прерывание 19h или другие прерывания, обычно вызываемые из прерывания 19h, такие как прерывание 13h, дисковая служба BIOS, чтобы перехватить процесс загрузки BIOS. Затем оно может заменить процесс загрузки BIOS одним из своих собственных, или оно может просто изменить последовательность загрузки, вставив в него свои собственные действия загрузки, не дав BIOS обнаружить определенные устройства как загрузочные, или и то, и другое. До того, как была обнародована спецификация загрузки BIOS, это был единственный способ для ПЗУ расширения реализовать возможность загрузки для устройств, не поддерживаемых для загрузки собственным BIOS материнской платы. [ необходима цитата ]

Приоритет загрузки

Пользователь может выбрать приоритет загрузки, реализованный BIOS. Например, большинство компьютеров имеют жесткий диск, который является загрузочным, но иногда есть съемный носитель, который имеет более высокий приоритет загрузки, поэтому пользователь может сделать съемный диск загрузочным.

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

Ошибка загрузки

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

Более поздние компьютеры отображали сообщение типа «Загрузочный диск не найден»; некоторые предлагали вставить диск и нажать клавишу, чтобы повторить процесс загрузки. Современный BIOS может ничего не отображать или автоматически запускать утилиту конфигурации BIOS, когда процесс загрузки не удается.

Загрузочная среда

Среда для программы загрузки очень проста: ЦП находится в реальном режиме, а регистры общего назначения и сегментные регистры не определены, за исключением SS, SP, CS и DL. CS:IP всегда указывает на физический адрес 0x07C00. Какие значения CS и IP на самом деле имеют, не определено. Некоторые BIOS используют CS:IP , 0x0000:0x7C00а другие могут использовать 0x07C0:0x0000. [29] Поскольку программы загрузки всегда загружаются по этому фиксированному адресу, нет необходимости в том, чтобы программа загрузки была перемещаемой. DL может содержать номер диска, как используется с прерыванием 13h , загрузочного устройства. SS:SP указывает на допустимый стек, который предположительно достаточно велик для поддержки аппаратных прерываний, но в остальном SS и SP не определены. (Стек должен быть уже настроен для обслуживания прерываний, а прерывания должны быть включены для того, чтобы системное прерывание таймера-тика, которое BIOS всегда использует, по крайней мере, для поддержания подсчета времени суток и которое он инициализирует во время POST, было активным, и чтобы клавиатура работала. Клавиатура работает, даже если служба клавиатуры BIOS не вызывается; нажатия клавиш принимаются и помещаются в 15-символьный буфер опережающего ввода, поддерживаемый BIOS.) Программа загрузки должна настроить свой собственный стек, поскольку размер стека, настроенного BIOS, неизвестен, а его местоположение также является переменным; хотя программа загрузки может исследовать стек по умолчанию, проверив SS:SP, проще и короче просто безусловно настроить новый стек. [30]

Во время загрузки все службы BIOS доступны, а память ниже адреса 0x00400содержит таблицу векторов прерываний . BIOS POST инициализирует системные таймеры, контроллер(ы) прерываний, контроллер(ы) DMA и другое оборудование материнской платы/чипсета, необходимое для приведения всех служб BIOS в состояние готовности. Обновление DRAM для всей системной DRAM в обычной памяти и расширенной памяти, но не обязательно расширенной памяти, настроено и работает. Векторы прерываний , соответствующие прерываниям BIOS, установлены так, чтобы указывать на соответствующие точки входа в BIOS, векторы аппаратных прерываний для устройств, инициализируемых BIOS, установлены так, чтобы указывать на предоставляемые BIOS ISR, а некоторые другие прерывания, включая те, которые BIOS генерирует для перехвата программ, установлены на фиктивный ISR по умолчанию, который немедленно возвращается. BIOS поддерживает зарезервированный блок системной RAM по адресам 0x00400–0x004FFс различными параметрами, инициализированными во время POST. Вся память по адресу и выше 0x00500может использоваться программой загрузки; она может даже перезаписывать себя. [31] [32]

Службы операционной системы

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

BIOS предоставляет небольшую библиотеку базовых функций ввода/вывода для работы периферийных устройств (таких как клавиатура, элементарные функции отображения текста и графики и т. д.). При использовании MS-DOS доступ к службам BIOS может осуществляться прикладной программой (или MS-DOS) путем выполнения инструкции прерывания 13h для доступа к функциям диска или путем выполнения одного из ряда других документированных вызовов прерывания BIOS для доступа к видеодисплею , клавиатуре , кассете и другим функциям устройства.

Операционные системы и исполнительное программное обеспечение, разработанные для замены этой базовой функциональности прошивки, предоставляют заменяющие программные интерфейсы прикладному программному обеспечению. Приложения также могут предоставлять эти услуги самим себе. Это началось еще в 1980-х годах под управлением MS-DOS , когда программисты заметили, что использование видеослужб BIOS для отображения графики было очень медленным. Чтобы увеличить скорость вывода на экран, многие программы обходили BIOS и программировали аппаратное обеспечение видеодисплея напрямую. Другие программисты графики, особенно, но не исключительно в демосцене , заметили, что существуют технические возможности видеоадаптеров ПК, которые не поддерживаются IBM BIOS и не могут быть использованы без его обхода. Поскольку AT-совместимый BIOS работал в реальном режиме Intel , операционные системы, работавшие в защищенном режиме на процессорах 286 и более поздних, требовали аппаратных драйверов устройств, совместимых с работой в защищенном режиме, для замены служб BIOS.

В современных ПК, работающих под управлением современных операционных систем (таких как Windows и Linux ), вызовы прерываний BIOS используются только во время загрузки и первоначальной загрузки операционных систем. До отображения первого графического экрана операционной системы ввод и вывод обычно обрабатываются через BIOS. Меню загрузки, такое как текстовое меню Windows, которое позволяет пользователям выбирать операционную систему для загрузки, загружаться в безопасном режиме или использовать последнюю удачную конфигурацию, отображается через BIOS и получает ввод с клавиатуры через BIOS. [4]

Многие современные ПК по-прежнему могут загружать и работать с устаревшими операционными системами, такими как MS-DOS или DR-DOS, которые в значительной степени зависят от BIOS для ввода-вывода консоли и диска, при условии, что в системе есть BIOS или прошивка UEFI с поддержкой CSM.

Обновления микрокода процессора

Процессоры Intel имеют перепрограммируемый микрокод с момента появления микроархитектуры P6 . [33] [34] [35] Процессоры AMD имеют перепрограммируемый микрокод с момента появления микроархитектуры K7 . BIOS содержит исправления для микрокода процессора, которые исправляют ошибки в исходном микрокоде процессора; микрокод загружается в SRAM процессора, поэтому перепрограммирование не является постоянным, поэтому загрузка обновлений микрокода выполняется каждый раз при включении системы. Без перепрограммируемого микрокода потребовалась бы дорогостоящая замена процессора; [36] например, ошибка Pentium FDIV стала дорогостоящим фиаско для Intel, поскольку потребовала отзыва продукта , поскольку дефектный микрокод оригинального процессора Pentium не мог быть перепрограммирован. Операционные системы также могут обновлять основной микрокод процессора. [37] [38]

Идентификация

Некоторые BIOS содержат таблицу описания лицензирования программного обеспечения (SLIC), цифровую подпись, размещенную внутри BIOS производителем оригинального оборудования (OEM), например Dell . SLIC вставляется в таблицу данных ACPI и не содержит активного кода. [39] [40]

Производители компьютеров, которые распространяют OEM-версии Microsoft Windows и прикладного программного обеспечения Microsoft, могут использовать SLIC для аутентификации лицензирования на установочном диске OEM Windows и диске восстановления системы , содержащем программное обеспечение Windows. Системы с SLIC можно предварительно активировать с помощью ключа продукта OEM, и они проверяют сертификат OEM в формате XML по SLIC в BIOS в качестве средства самоактивации (см. System Locked Preinstallation , SLP). Если пользователь выполняет новую установку Windows, ему необходимо иметь как ключ OEM (SLP или COA), так и цифровой сертификат для своего SLIC, чтобы обойти активацию. [39] Этого можно достичь, если пользователь выполнит восстановление с помощью предварительно настроенного образа, предоставленного OEM. Опытные пользователи могут скопировать необходимые файлы сертификатов из образа OEM, декодировать ключ продукта SLP, а затем вручную выполнить активацию SLP.

Разгон

Некоторые реализации BIOS допускают разгон , действие, при котором ЦП настраивается на более высокую тактовую частоту , чем номинальная частота производителя для гарантированной производительности. Однако разгон может серьезно подорвать надежность системы в недостаточно охлажденных компьютерах и в целом сократить срок службы компонентов. Разгон, при неправильном выполнении, может также привести к тому, что компоненты будут перегреваться так быстро, что они механически разрушатся. [41]

Современное использование

Некоторые старые операционные системы , например MS-DOS , используют BIOS для выполнения большинства задач ввода/вывода на ПК. [42]

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

В 1990-х годах BIOS предоставил некоторые интерфейсы защищенного режима для Microsoft Windows и Unix-подобных операционных систем, такие как Advanced Power Management (APM), Plug and Play BIOS , Desktop Management Interface (DMI), VESA BIOS Extensions (VBE), e820 и MultiProcessor Specification (MPS). Начиная с 2000 года большинство BIOS предоставляют интерфейсы ACPI , SMBIOS , VBE и e820 для современных операционных систем. [43] [44] [45] [46] [47]

После загрузки операционной системы код режима управления системой все еще выполняется в SMRAM. С 2010 года технология BIOS находится в переходном процессе к UEFI . [5]

Конфигурация

Утилита настройки

Исторически BIOS в IBM PC и XT не имел встроенного пользовательского интерфейса. Версии BIOS в более ранних ПК (класса XT) не были программно настраиваемыми; вместо этого пользователи устанавливали параметры с помощью DIP-переключателей на материнской плате. Более поздние компьютеры, включая все IBM-совместимые с процессорами 80286, имели энергонезависимую память BIOS с батарейным питанием (чип CMOS RAM), в котором хранились настройки BIOS. [48] Эти настройки, такие как тип видеоадаптера, размер памяти и параметры жесткого диска, можно было настроить только путем запуска программы настройки с диска, а не встроенной в ПЗУ. Специальная «эталонная дискета» была вставлена ​​в IBM AT для настройки таких настроек, как размер памяти. [49]

Ранние версии BIOS не имели паролей или опций выбора загрузочного устройства. BIOS был жестко запрограммирован на загрузку с первого дисковода или, если это не удавалось, с первого жесткого диска. Контроль доступа в ранних машинах класса AT осуществлялся с помощью физического переключателя блокировки (который было несложно взломать, если корпус компьютера можно было открыть). Любой, кто мог включить компьютер, мог его загрузить. [ необходима цитата ]

Позднее компьютеры класса 386 начали интегрировать утилиту настройки BIOS в само ПЗУ, вместе с кодом BIOS; такие компьютеры обычно загружаются в утилиту настройки BIOS, если нажата определенная клавиша или комбинация клавиш, в противном случае выполняется процесс BIOS POST и загрузки.

Утилита настройки BIOS Award на стандартном ПК

Современная утилита настройки BIOS имеет текстовый пользовательский интерфейс (TUI) или графический пользовательский интерфейс (GUI), доступ к которому осуществляется нажатием определенной клавиши на клавиатуре при запуске ПК. Обычно клавиша объявляется на короткое время во время раннего запуска, например, "Press DEL to enter Setup".

Фактический ключ зависит от конкретного оборудования. Ключ настроек чаще всего Delete ( Acer , ASRock , Asus PC, ECS , Gigabyte , MSI , Zotac ) и F2 (материнская плата Asus, Dell , ноутбук Lenovo , Origin PC , Samsung , Toshiba ), но это также может быть F1 (настольный компьютер Lenovo) и F10 ( HP ). [50]

Функции, представленные в утилите настройки BIOS, обычно включают в себя:

Аппаратный мониторинг

Современный экран настройки BIOS часто содержит вкладку «Состояние здоровья ПК » или « Мониторинг оборудования» , которая напрямую взаимодействует с микросхемой монитора оборудования материнской платы. [51] Это позволяет контролировать температуру процессора и корпуса , напряжение, обеспечиваемое блоком питания , а также контролировать и управлять скоростью вентиляторов, подключенных к материнской плате.

После загрузки системы мониторинг оборудования и управление вентилятором компьютера обычно осуществляется непосредственно чипом Hardware Monitor, который может быть отдельным чипом, подключенным через I²C или SMBus , или входить в состав решения Super I/O , подключенного через Industry Standard Architecture (ISA) или Low Pin Count (LPC). [52] Некоторые операционные системы, такие как NetBSD с envsys и OpenBSD с sysctl hw.sensors , имеют встроенный интерфейс с аппаратными мониторами.

Однако в некоторых случаях BIOS также предоставляет базовую информацию об аппаратном мониторинге через ACPI , и в этом случае операционная система может использовать ACPI для выполнения аппаратного мониторинга. [53] [54]

Перепрограммирование

Комплект для замены BIOS для Dell 310 конца 1980-х годов. В комплект входят два чипа, пластиковый держатель для чипов и экстрактор микросхем .

В современных ПК BIOS хранится в перезаписываемой EEPROM [55] или флэш-памяти NOR [56] , что позволяет заменять и изменять содержимое. Такая перезапись содержимого иногда называется перепрошивкой. Это может быть сделано специальной программой, обычно предоставляемой производителем системы, или во время POST с образом BIOS на жестком диске или USB-флеш-накопителе. Файл, содержащий такое содержимое, иногда называется «образом BIOS». BIOS может быть перепрошит для обновления до более новой версии, чтобы исправить ошибки или обеспечить улучшенную производительность или поддерживать новое оборудование. Некоторые компьютеры также поддерживают обновление BIOS с помощью дискеты обновления или специального раздела на жестком диске. [57]

Аппаратное обеспечение

American Megatrends BIOS 686. Эта микросхема BIOS размещена в корпусе PLCC в разъеме.

Оригинальный IBM PC BIOS (и кассетный BASIC) хранился на чипах памяти только для чтения (ПЗУ) с программированием по маске в гнездах на материнской плате. ПЗУ могли быть заменены, [58] но не изменены пользователями. Чтобы обеспечить обновления, многие совместимые компьютеры использовали перепрограммируемые устройства памяти BIOS, такие как EPROM , EEPROM и более поздние устройства флэш-памяти (обычно NOR flash ). По словам Роберта Брейвера, президента производителя BIOS Micro Firmware, чипы Flash BIOS стали распространены около 1995 года, потому что электрически стираемые чипы PROM (EEPROM) дешевле и проще в программировании, чем стандартные чипы PROM с ультрафиолетовым стиранием ( EPROM ). Чипы Flash программируются (и перепрограммируются) внутри схемы, в то время как чипы EPROM необходимо извлекать из материнской платы для перепрограммирования. [59] Версии BIOS обновляются, чтобы использовать преимущества новых версий оборудования и исправить ошибки в предыдущих версиях BIOS. [60]

Начиная с IBM AT, ПК поддерживали аппаратные часы, устанавливаемые через BIOS. В нем был бит столетия, который позволял вручную менять столетие, когда наступал 2000 год. Большинство ревизий BIOS, созданных в 1995 году, и почти все ревизии BIOS в 1997 году поддерживали 2000 год , автоматически устанавливая бит столетия, когда часы переваливали за полночь, 31 декабря 1999 года. [61]

Первые флэш-чипы были подключены к шине ISA . Начиная с 1998 года флэш-память BIOS переместилась на шину LPC , следуя новой стандартной реализации, известной как «концентратор прошивки» (FWH). В 2005 году флэш-память BIOS переместилась на шину SPI . [62]

Размер BIOS и емкость ПЗУ, EEPROM или других носителей, на которых он может храниться, со временем увеличивались по мере добавления новых функций в код; теперь существуют версии BIOS размером до 32 мегабайт. Для сравнения, оригинальный BIOS IBM PC содержался в маске ПЗУ объемом 8 КБ. Некоторые современные материнские платы включают в себя даже более крупные ИС флэш-памяти NAND , которые способны хранить целые компактные операционные системы, такие как некоторые дистрибутивы Linux . Например, некоторые ноутбуки ASUS включали Splashtop OS, встроенную в свои ИС флэш-памяти NAND. [63] Однако идея включения операционной системы вместе с BIOS в ПЗУ ПК не нова; в 1980-х годах Microsoft предложила вариант ПЗУ для MS-DOS, и он был включен в ПЗУ некоторых клонов ПК, таких как Tandy 1000 HX .

Другой тип микросхемы прошивки был обнаружен на IBM PC AT и ранних совместимых компьютерах. В AT интерфейс клавиатуры контролировался микроконтроллером с собственной программируемой памятью. На IBM AT это было 40-контактное устройство с разъемом, в то время как некоторые производители использовали версию этой микросхемы EPROM, которая напоминала EPROM. Этому контроллеру также была назначена функция затвора A20 для управления памятью выше диапазона одного мегабайта; иногда требовалось обновление этого «BIOS клавиатуры», чтобы воспользоваться преимуществами программного обеспечения, которое могло использовать верхнюю память. [ необходима цитата ]

BIOS может содержать такие компоненты, как Memory Reference Code (MRC), который отвечает за инициализацию памяти (например, SPD и инициализацию таймингов памяти ). [64] : 8  [65]

Современный BIOS [66] включает в себя прошивку Intel Management Engine или AMD Platform Security Processor .

Поставщики и продукты

IBM опубликовала полные листинги BIOS для своих оригинальных ПК, PC XT, PC AT и других современных моделей ПК в приложении к Техническому справочному руководству IBM PC для каждого типа машины. Эффект публикации листингов BIOS заключается в том, что любой может увидеть, что именно делает окончательный BIOS и как он это делает.

BIOS для портативного компьютера Compaq 386

В мае 1984 года Phoenix Software Associates выпустила свой первый ROM-BIOS, который позволил OEM-производителям создавать по сути полностью совместимые клоны без необходимости самостоятельного реверс-инжиниринга IBM PC BIOS, как это сделала Compaq для Portable , что способствовало росту индустрии ПК-совместимых устройств и продажам не-IBM-версий DOS. [69] Первый American Megatrends (AMI) BIOS был выпущен в 1986 году.

Новые стандарты, привитые к BIOS, обычно не имеют полной публичной документации или каких-либо листингов BIOS. В результате не так легко узнать интимные подробности о многочисленных не-IBM дополнениях к BIOS, как об основных службах BIOS.

Многие поставщики материнских плат для ПК лицензировали «ядро» BIOS и набор инструментов у коммерческой третьей стороны, известной как «независимый поставщик BIOS» или IBV. Затем производитель материнской платы настраивал этот BIOS в соответствии со своим собственным оборудованием. По этой причине обновленные BIOS обычно приобретаются непосредственно у производителя материнской платы. Основные IBV включают American Megatrends (AMI), Insyde Software , Phoenix Technologies и Byosoft. Microid Research и Award Software были приобретены Phoenix Technologies в 1998 году; позже Phoenix постепенно отказалась от торговой марки Award (хотя Award Software все еще упоминается в новых версиях AwardBIOS и в прошивках UEFI). [ когда? ] General Software , которая также была приобретена Phoenix в 2007 году, продавала BIOS для встраиваемых систем на базе процессоров Intel.

SeaBIOS — это реализация BIOS с открытым исходным кодом.

Замены BIOS с открытым исходным кодом

Сообщество разработчиков ПО с открытым исходным кодом усилило свои усилия по разработке замены фирменных BIOS и их будущих воплощений с помощью аналогов с открытым исходным кодом. Open Firmware была ранней попыткой создать открытую спецификацию для прошивки загрузки. Первоначально она была одобрена IEEE в стандарте IEEE 1275-1994, но была отозвана в 2005 году. [70] [71] Более поздние примеры включают проекты OpenBIOS , coreboot и libreboot . AMD предоставила спецификации продуктов для некоторых чипсетов с использованием coreboot, а Google спонсирует проект. Производитель материнских плат Tyan предлагает coreboot рядом со стандартным BIOS в своей линейке материнских плат Opteron .

Безопасность

Gigabyte DualBIOS PLCC 32
Отделенная микросхема BIOS

Микросхемы EEPROM и флэш-памяти выгодны тем, что их может легко обновить пользователь; производители оборудования обычно выпускают обновления BIOS для модернизации своих продуктов, улучшения совместимости и устранения ошибок . Однако это преимущество несет в себе риск того, что неправильно выполненное или прерванное обновление BIOS может сделать компьютер или устройство непригодным для использования. Чтобы избежать таких ситуаций, более поздние BIOS используют «загрузочный блок» — часть BIOS, которая запускается первой и должна обновляться отдельно. Этот код проверяет, цела ли остальная часть BIOS (используя контрольные суммы хэша или другие методы), прежде чем передавать ей управление. Если загрузочный блок обнаруживает какие-либо повреждения в основном BIOS, он обычно предупреждает пользователя о том, что необходимо инициировать процесс восстановления, загрузившись со съемного носителя (дискеты, компакт-диска или флэш-накопителя USB), чтобы пользователь мог снова попробовать перепрошить BIOS. Некоторые материнские платы имеют резервную версию BIOS (иногда называемую платами DualBIOS) для восстановления после повреждений BIOS.

Известно не менее пяти вирусов, атакующих BIOS. Два из них были демонстрационными. Первым обнаруженным в дикой природе был Mebromi , нацеленный на китайских пользователей.

Первым вирусом BIOS был BIOS Meningitis, который вместо того, чтобы стирать чипы BIOS, заражал их. BIOS Meningitis был относительно безвреден по сравнению с вирусом типа CIH .

Вторым вирусом BIOS был CIH , также известный как «чернобыльский вирус», который мог стирать содержимое флэш-ПЗУ BIOS на совместимых чипсетах. CIH появился в середине 1998 года и стал активным в апреле 1999 года. Часто зараженные компьютеры больше не могли загружаться, и людям приходилось извлекать микросхему флэш-ПЗУ из материнской платы и перепрограммировать ее. CIH был нацелен на широко распространенный в то время чипсет материнской платы Intel i430TX и использовал тот факт, что операционные системы Windows 9x , также широко распространенные в то время, позволяли прямой аппаратный доступ ко всем программам.

Современные системы не уязвимы для CIH из-за использования множества чипсетов, несовместимых с чипсетом Intel i430TX, а также других типов флэш-ПЗУ IC. Также существует дополнительная защита от случайной перезаписи BIOS в виде загрузочных блоков, которые защищены от случайной перезаписи, или систем с двойным и четверным BIOS, которые могут в случае сбоя использовать резервный BIOS. Кроме того, все современные операционные системы, такие как FreeBSD , Linux , macOS , Windows NT , ОС Windows, такие как Windows 2000 , Windows XP и более новые, не позволяют программам пользовательского режима иметь прямой доступ к оборудованию с использованием уровня абстракции оборудования . [72]

В результате, по состоянию на 2008 год, CIH стал по сути безвредным, в худшем случае вызывая раздражение, заражая исполняемые файлы и запуская антивирусное программное обеспечение. Другие вирусы BIOS остаются возможными, однако; [73] поскольку большинство домашних пользователей Windows без UAC Windows Vista/7 запускают все приложения с административными привилегиями, современный вирус, подобный CIH, в принципе все еще может получить доступ к оборудованию без предварительного использования эксплойта. [ необходима цитата ] Операционная система OpenBSD не позволяет всем пользователям иметь такой доступ, и патч grsecurity для ядра Linux также по умолчанию предотвращает этот прямой доступ к оборудованию, разница в том, что злоумышленнику требуется гораздо более сложный эксплойт на уровне ядра или перезагрузка машины. [ необходима цитата ]

Третий вирус BIOS был техникой, представленной Джоном Хесманом, главным консультантом по безопасности британской компании Next-Generation Security Software. В 2006 году на конференции Black Hat Security Conference он показал, как повысить привилегии и прочитать физическую память, используя вредоносные процедуры, которые заменяли обычные функции ACPI, хранящиеся во флэш-памяти. [74]

Четвертый вирус BIOS был методом под названием «Постоянное заражение BIOS». Он появился в 2009 году на конференции по безопасности CanSecWest в Ванкувере и на конференции по безопасности SyScan в Сингапуре. Исследователи Анибал Сакко [75] и Альфредо Ортега из Core Security Technologies продемонстрировали, как вставить вредоносный код в процедуры распаковки в BIOS, что позволяет получить почти полный контроль над ПК при запуске, даже до загрузки операционной системы. Доказательство концепции не использует изъян в реализации BIOS, а включает только обычные процедуры перепрошивки BIOS. Таким образом, для этого требуется физический доступ к машине или пользователь должен быть root. Несмотря на эти требования, Ортега подчеркнул глубокие последствия своего и Сакко открытия: «Мы можем исправить драйвер, чтобы удалить полностью работающий руткит . У нас даже есть небольшой код, который может удалить или отключить антивирус». [76]

Mebromi — это троян , который атакует компьютеры с AwardBIOS , Microsoft Windows и антивирусным программным обеспечением от двух китайских компаний: Rising Antivirus и Jiangmin KV Antivirus. [77] [78] [79] Mebromi устанавливает руткит, который заражает главную загрузочную запись .

В интервью программе 60 Minutes в декабре 2013 года Дебора Планкетт, директор по обеспечению безопасности информации Агентства национальной безопасности США , заявила, что АНБ раскрыло и предотвратило возможную атаку BIOS со стороны иностранного государства, нацеленную на финансовую систему США. [80] Программа ссылалась на анонимные источники, утверждавшие, что это был китайский заговор. [80] Однако последующие статьи в The Guardian , [81] The Atlantic , [82] Wired [83] и The Register [84] опровергли заявления АНБ.

В более новых платформах Intel включена технология Intel Boot Guard (IBG), эта технология проверяет цифровую подпись BIOS при запуске, а открытый ключ IBG встроен в PCH . Конечные пользователи не могут отключить эту функцию.

Альтернативы и преемники

Unified Extensible Firmware Interface (UEFI) дополняет BIOS во многих новых машинах. Первоначально написанный для архитектуры Intel Itanium , UEFI теперь доступен для платформ x86 и Arm ; разработка спецификации осуществляется Unified EFI Forum , специальной отраслевой группой интересов . Загрузка EFI поддерживалась только в версиях Microsoft Windows, поддерживающих GPT , [85] ядро ​​Linux 2.6.1 и более поздние версии, а также macOS на компьютерах Mac на базе Intel . [86] По состоянию на 2014 год новое оборудование ПК в основном поставляется с прошивкой UEFI. Архитектура защиты от руткитов также может помешать системе запускать собственные изменения программного обеспечения пользователя, что делает UEFI спорным как устаревшую замену BIOS в сообществе открытого оборудования . Кроме того, Windows 11 требует UEFI для загрузки, [87] за исключением выпусков IoT Enterprise Windows 11. [10] UEFI требуется для устройств, поставляемых с Windows 8 [88] [89] и выше.

Другими альтернативами функциональности «Legacy BIOS» в мире x86 являются coreboot и libreboot .

Некоторые серверы и рабочие станции используют платформенно-независимую открытую прошивку (IEEE-1275), основанную на языке программирования Forth ; она включена в компьютеры SPARC компании Sun, линейку RS/6000 компании IBM и другие системы PowerPC , такие как материнские платы CHRP , а также OLPC XO-1 на базе x86 .

По крайней мере с 2015 года Apple удалила поддержку устаревшего BIOS из монитора UEFI в компьютерах Mac на базе Intel . Таким образом, утилита BIOS больше не поддерживает устаревший вариант и выводит сообщение «Legacy mode not supported on this system».

В 2017 году Intel объявила, что прекратит поддержку устаревшей версии BIOS к 2020 году. С 2019 года новые OEM-компьютеры на платформе Intel больше не поддерживают устаревшую версию BIOS. [90]

Смотрите также

Примечания

  1. ^ Хотя термин BIOS появился еще до 1981 года, стандарт для IBM PC–совместимых компьютеров появился с выпуском оригинального персонального компьютера IBM .
  2. ^ Сигнатура по смещению +0x1FEв загрузочных секторах — 0x55 0xAA, то есть 0x55по смещению +0x1FEи 0xAAпо смещению +0x1FF. Поскольку в контексте совместимости с IBM PC необходимо предполагать представление little-endian , в программах для процессоров x86 это можно записать как 16-битное слово (обратите внимание на переставленный порядок), тогда как в программах для других архитектур ЦП это должно быть записано как представление big-endian . Поскольку это много раз путалось в книгах и даже в оригинальных справочных документах Microsoft, в этой статье используется представление на основе смещения побайтово на диске, чтобы избежать любой возможной неверной интерпретации.0xAA550x55AA

Ссылки

  1. ^ "Ref — System BIOS". PCGuide . Архивировано из оригинала 21.12.2014 . Получено 06.12.2014 .
  2. ^ abc Kildall, Gary Arlen (июнь 1975 г.), CP/M 1.1 или 1.2 BIOS и BDOS для Lawrence Livermore Laboratories
  3. ^ abc Kildall, Gary Arlen (январь 1980 г.). «История CP/M — Эволюция отрасли: точка зрения одного человека» (т. 5, № 1, ред. № 41). Журнал компьютерной гимнастики и ортодонтии доктора Добба . стр. 6–7. Архивировано из оригинала 24.11.2016 г. Получено 03.06.2013 г.
  4. ^ ab "Загрузка · Linux Inside". 0xax.gitbooks.io . Получено 10.11.2020 .
  5. ^ ab Брэдли, Тони. "RIP BIOS: A UEFI Primer". PCWorld . Архивировано из оригинала 2014-01-27 . Получено 2014-01-27 .
  6. ^ "Унифицированный расширяемый интерфейс прошивки". Intel .
  7. ^ "UEFI". OSDev.org .
  8. ^ "Спецификация модуля поддержки совместимости Intel® Platform Innovation Framework для EFI (версия 0.97)" (PDF) . Intel. 2007-09-04 . Получено 2013-10-06 .
  9. ^ "Техническая рекомендация по удалению поддержки устаревшей загрузки для платформ Intel" . Получено 25 июля 2024 г.
  10. ^ ab "Минимальные системные требования для Windows IoT Enterprise". Microsoft Learn . 2024-05-22 . Получено 2024-06-07 .
  11. ^ Свейн, Майкл (1997-04-01). "Гэри Килдалл и коллегиальное предпринимательство". Журнал доктора Добба . Архивировано из оригинала 24-01-2007 . Получено 20-11-2006 .
  12. ^ ab "IEEE Milestone in Electrical Engineering and Computing - CP/M - Microcomputer Operating System, 1974" (PDF) . Computer History Museum . 2014-04-25. Архивировано (PDF) из оригинала 2019-04-03 . Получено 2019-04-03 .
  13. ^ Шустек, Лен (2016-08-02). «По его собственным словам: Гэри Килдалл». Замечательные люди . Музей компьютерной истории . Архивировано из оригинала 2016-12-17.
  14. ^ Киллиан, А. Джозеф "Джо" (2001). "CP/M Гэри Килдалла: Некоторая ранняя история CP/M - 1976-1977". Томас "Тодд" Фишер , IMSAI . Архивировано из оригинала 29-12-2012 . Получено 03-06-2013 .
  15. ^ Фрейли, Боб; Спайсер, Даг (2007-01-26). "Устная история Джозефа Киллиана, интервью: Боб Фрейли, редактор: Даг Спайсер, запись: 26 января 2007 г., Маунтин-Вью, Калифорния, CHM Номер ссылки: X3879.2007" (PDF) . Музей компьютерной истории. Архивировано из оригинала (PDF) 2014-07-14 . Получено 2013-06-03 .
  16. ^ Glass, Brett (1989). «IBM PC BIOS». Байт : 303–310 . Получено 31 декабря 2021 г.
  17. ^ "HP BIOS Configuration Utility". Hewlett-Packard . 2013. Архивировано из оригинала 2015-01-12 . Получено 2015-01-12 .
  18. ^ Phoenix Technologies, Ltd. (июнь 1991 г.). Системный BIOS для IBM PC, Compatibles и EISA Computers — Полное руководство по системному программному обеспечению на базе ПЗУ . Phoenix Technical Reference Series (2-е изд.). Амстердам: Addison Wesley Publishing Company, Inc. ISBN  0-201-57760-7.
  19. ^ Phoenix Technologies, Ltd. (1989) [1987]. Системный BIOS для компьютеров IBM PC/XT/AT и совместимых с ними — Полное руководство по системному программному обеспечению на базе ПЗУ. Phoenix Technical Reference Series (1-е изд.). Addison Wesley Publishing Company, Inc. ISBN  0-201-51806-6.
  20. ^ Санчес, Хулио; Кантон, Мария П. (2003-02-26). Справочник по компьютерной графике. CRC Press. ISBN 978-0-203-01053-2.
  21. ^ "iAPX 86,88 User's Manual" (PDF) . Intel . 1981. System Reset, стр. 2-29, таблица 2-4 . Получено 15.04.2018 .
  22. ^ "AMD 80286 Datasheet" (PDF) . AMD . 1985. стр. 13. 286 начинает выполнение в реальном режиме с инструкции в физическом месте FFFFF0H.
  23. ^ "Справочное руководство программиста 80386" (PDF) . Intel. 1990. Раздел 10.1 Состояние процессора после сброса, страницы 10-1 - 10.3.
  24. ^ "Справочное руководство программиста 80386" (PDF) . Intel. 1990. Раздел 10.2.3 Первая инструкция, стр. 10-4 . Получено 2013-11-03 . Выполнение начинается с инструкции, адресуемой начальным содержимым регистров CS и IP. Чтобы разрешить размещение программного обеспечения инициализации в ПЗУ в верхней части адресного пространства, устанавливаются старшие 12 бит адресов, выданных для сегмента кода, до первой инструкции, которая загружает регистр CS, такой как дальний переход или вызов. В результате выборка инструкций начинается с адреса 0FFFFFFF0H.
  25. ^ "Intel® 64 and IA-32 Architectures Software Developer's Manual" (PDF) . Intel. Май 2012. Раздел 9.1.4 Первая выполненная инструкция, стр. 2611. Архивировано из оригинала (PDF) 2012-08-08 . Получено 2012-08-23 . Первая инструкция, которая извлекается и выполняется после аппаратного сброса, находится по физическому адресу FFFFFFF0h. Этот адрес на 16 байт ниже самого верхнего физического адреса процессора. EPROM, содержащий код инициализации программного обеспечения, должен находиться по этому адресу.
  26. ^ стр. 5-27 Технический справочник по аппаратному обеспечению персональных компьютеров IBM , 1984, номер публикации 6361459
  27. ^ "IBM 5162 PC XT286 TechRef 68X2537 Техническое справочное руководство" (PDF) . Август 1986. стр. 35 (System BIOS A-5). Архивировано (PDF) из оригинала 2014-12-11 . Получено 2014-12-11 .
  28. ^ How StuffWorks: Что делает BIOS Архивировано 07.02.2008 на Wayback Machine .
  29. ^ Akeljic, Bekir (2017-01-01). "BIOS BASIC INPUT/OUTPUT SYSTEM BIOS FUNCTIONS AND MODIFICATIONS" . BIOS : 12. Архивировано из оригинала 2022-08-08 . Получено 2022-08-08 – через INTERNATIONAL UNIVERSITY TRAVNIKFACULITY OF INFORMATION TECHNOLOGY TRAVNIKSOFTWARE PROGRAMMING.
  30. ^ "BIOS - CodeDocs". codedocs.org . Получено 2022-08-08 .
  31. ^ "Схема памяти и карта памяти". flint.cs.yale.edu . Получено 2022-08-08 .
  32. ^ "Таблица BIOS Data ACPI (BDAT)" (PDF) . Спецификация интерфейса . 4 (5): 67. 2020. Архивировано (PDF) из оригинала 2021-07-03 . Получено 2022-08-08 .
  33. ^ Стиллер, Андреас; Пол, Матиас Р. (12 мая 1996 г.). «Процессоргефлюстер». c't – магазин компьютерной техники . Тенденции и новости / aktuell - Prozessoren (на немецком языке). Том. 1996, нет. 6. Верлаг Хайнц Хайзе ГмбХ & Ко КГ . п. 20. ISSN  0724-8679. Архивировано из оригинала 28 августа 2017 г. Проверено 28 августа 2017 г.
  34. ^ Мюллер, Скотт (2001-06-08). Функция обновления процессора | Типы и характеристики микропроцессоров. InformIT. Архивировано из оригинала 2014-04-16 . Получено 2014-04-15 .
  35. ^ "Linux* Processor Microcode Data File". Центр загрузки . Downloadcenter.intel.com. 2009-09-23. Архивировано из оригинала 2014-04-16 . Получено 2014-04-15 .
  36. ^ Скотт Мюллер, Модернизация и ремонт ПК, 15-е издание , Que Publishing, 2003 ISBN 0-7897-2974-1 , страницы 109-110 
  37. ^ "KB4100347: обновления микрокода Intel". support.microsoft.com . Получено 20-09-2020 .
  38. ^ "Микрокод - Debian Wiki". wiki.debian.org . Получено 2020-09-19 .
  39. ^ ab "Как работают SLP и SLIC". guytechie.com . 2010-02-25. Архивировано из оригинала 2015-02-03 . Получено 2015-02-03 .
  40. ^ "Создание и добавление модуля таблицы OEM ACPI SLIC в BIOS congatec" (PDF) . congatec.com . 2011-06-16. Архивировано (PDF) из оригинала 2014-08-02 . Получено 2015-02-03 .
  41. ^ Уитсон Гордон (2014-01-13). "Введение для новичков в разгон процессора Intel". Lifehacker . Gawker Media. Архивировано из оригинала 2014-12-07 . Получено 2014-12-06 .
  42. ^ Статья Smart Computing - Что такое BIOS? Архивировано 10.03.2012 в Wayback Machine - Computing Basics Июль 1994 • Том 5 Выпуск 7
  43. ^ "Что такое ACPI (Advanced Configuration and Power Interface)? - Определение с WhatIs.com". SearchWindowsServer . Получено 2020-09-18 .
  44. ^ "Изменение уровня абстракции оборудования в Windows 2000 / XP – Smallvoid.com". 2001-01-15 . Получено 2020-09-18 .
  45. ^ "Что такое ACPI?". www.spo-comm.de . Получено 18.09.2020 .
  46. ^ lorihollasch. "Поддержка систем без монитора - драйверы Windows". docs.microsoft.com . Получено 2020-12-05 .
  47. ^ "Карта памяти (x86) - OSDev Wiki". wiki.osdev.org . Получено 11.12.2020 .
  48. ^ Торрес, Габриэль (2004-11-24). "Введение и литиевая батарея". Замена батареи материнской платы . hardwaresecrets.com. Архивировано из оригинала 2013-12-24 . Получено 2013-06-20 .
  49. ^ Beales, RP (2006-08-11). Системы ПК, Установка и обслуживание. Routledge. ISBN 978-1-136-37441-8.
  50. ^ «Как войти в BIOS на любом ПК: клавиши доступа по производителю». Tom's Hardware . 2022-02-04.
  51. ^ Константин А. Муренин (2010-05-21). "11.1. Интерфейс из BIOS". Аппаратные датчики OpenBSD – мониторинг окружающей среды и управление вентиляторами ( диссертация MMath ). Университет Ватерлоо : UWSpace. hdl :10012/5234. Идентификатор документа: ab71498b6b1a60ff817b29d56997a418.
  52. ^ Константин А. Муренин (2007-04-17). "2. Обзор оборудования". Обобщенное взаимодействие с мониторами оборудования микропроцессорных систем. Труды Международной конференции IEEE 2007 года по сетям, датчикам и управлению, 15–17 апреля 2007 г. Лондон, Великобритания: IEEE . стр. 901–906. doi :10.1109/ICNSC.2007.372901. ISBN 978-1-4244-1076-7. IEEE ICNSC 2007, стр. 901—906.
  53. ^ "aibs – ASUSTeK AI Booster ACPI ATK0110 датчик напряжения, температуры и вентилятора". OpenBSD , DragonFly BSD , NetBSD и FreeBSD . 2010.
  54. ^ "acpi_thermal(4)". www.freebsd.org . Получено 2021-02-24 .
  55. ^ Кларк, Глен Э.; Тец, Эдвард (2007-01-30). CompTIA A+ Certification All-In-One Desk Reference for Dummies. John Wiley & Sons. ISBN 978-0-471-74811-3.
  56. ^ Микелони, Рино; Криппа, Лука; Марелли, Алессия (27 июля 2010 г.). Внутри флэш-памяти NAND. Спрингер. ISBN 978-90-481-9431-5.
  57. ^ Мюллер, Скотт (2004). Модернизация и ремонт PCS. Вопрос. ISBN 978-0-7897-2974-3.
  58. ^ Кларк, Глен Э.; Тец, Эдвард (2007-01-30). CompTIA A+ Certification All-In-One Desk Reference for Dummies. John Wiley & Sons. ISBN 978-0-471-74811-3.
  59. ^ «Декодирование RAM и ROM. Архивировано 06.04.2012 в Wayback Machine ». Smart Computing . Июнь 1997. Том 8, выпуск 6.
  60. ^ "Обновление Flash BIOS для Plug And Play. Архивировано 06.04.2012 на Wayback Machine ". Smart Computing . Март 1996. Том 7, выпуск 3.
  61. ^ "Время проверять BIOS. Архивировано 16 июля 2011 г. на Wayback Machine ". Smart Computing . Апрель 1999 г. Том 7, выпуск 4.
  62. ^ "Архивная копия". Архивировано из оригинала 2021-08-18 . Получено 2021-04-01 .{{cite web}}: CS1 maint: архивная копия как заголовок ( ссылка )
  63. ^ "SplashTop's Instant-On Linux Desktop | Geek.com". Архивировано из оригинала 2008-09-07.
  64. ^ Опубликовано Алексом Уотсоном, возможно, перепост с оригинального контента на custompc.com [неразборчиво]. "Жизнь и времена современной материнской платы". 2007-11-27 . Архивировано из оригинала 2012-07-24 . Получено 2013-02-02 .
  65. ^ Дэвид Хилбер-младший (август 2009 г.). «Соображения по проектированию встроенной системы архитектуры Intel с отключенной системной памятью» (PDF) . Intel . Архивировано (PDF) из оригинала 2012-10-18 . Получено 2013-02-02 .
  66. ^ "Типы BIOS". rompacks.com . Получено 2021-09-20 .
  67. ^ Stiller, Andreas (2001). "Prozessor-Patches". c't (на немецком языке) (5). Heise : 240. Архивировано из оригинала 2015-11-22 . Получено 2015-11-21 .
  68. ^ "Award BIOS logo". 2015-06-15. Архивировано из оригинала 2015-12-21 . Получено 2015-12-06 .
  69. ^ Phoenix с нетерпением ждет возможности клонировать BIOS следующего поколения IBM. Архивировано 22 января 2014 г. на Wayback Machine , InfoWorld , 9 марта 1987 г.
  70. ^ Стандарт IEEE для прошивки загрузки (конфигурации инициализации): основные требования и практики. 28 октября 1994 г. С. 1–262. doi :10.1109/IEEESTD.1994.89427. ISBN 978-0-7381-1194-0. IEEE STD 1275-1994.
  71. ^ "Ассоциация стандартов IEEE". Ассоциация стандартов IEEE . Получено 2023-04-26 .
  72. ^ "Определение уровня абстракции оборудования". PCMAG . Получено 2022-07-11 .
  73. ^ Новый вирус BIOS выдерживает очистку жесткого диска, 27 марта 2009 г. Маркус Ям. Tom's Hardware US
  74. ^ "Black Hat 2006 Мультимедиа - Презентация, Аудио и Видео Архивы". www.blackhat.com . Получено 21.04.2019 .
  75. ^ Sacco, Anibal; Alfredo Ortéga (2009-03-23). ​​"Persistent BIOS Infection". Exploiting Stuff . Архивировано из оригинала 2009-08-04 . Получено 2010-02-06 .
  76. ^ Фишер, Деннис. "Исследователи раскрывают устойчивые методы атаки BIOS". Threat Post . Архивировано из оригинала 2010-01-30 . Получено 2010-02-06 .
  77. ^ Джулиани, Марко (2011-09-13). "Mebromi: первый BIOS rootkit in the wild". блог . Архивировано из оригинала 2011-09-23 . Получено 2011-09-19 .
  78. ^ "360发布"BMW病毒"技术分析报告" . блог . Архивировано из оригинала 25 сентября 2011 г. Проверено 19 сентября 2011 г.
  79. ^ Юань, Лян. "Trojan.Mebromi". Threat Response . Архивировано из оригинала 2011-09-23 . Получено 2011-09-19 .
  80. ^ ab "Как 60 Minutes пронесли камеры в шпионское агентство?". CBS News . 2013-12-15. Архивировано из оригинала 2014-04-22 . Получено 2014-04-15 .
  81. Спенсер Акерман в Вашингтоне (16.12.2013). «АНБ выходит на 60 минут: окончательные факты, стоящие за ошибочным отчетом CBS». theguardian.com . Архивировано из оригинала 25.01.2014 . Получено 27.01.2014 .
  82. ^ Фридерсдорф, Конор (16.12.2013). «Вопрос на 60 минут: почему Китай хочет разрушить мировую экономику?». The Atlantic . Получено 26.03.2019 .
  83. ^ Poulsen, Kevin (2013-12-16). «60 Minutes Puff Piece Claims NSA Saved US From Cyberterrorism» (60-минутная статья утверждает, что АНБ спасло США от кибертерроризма). Wired . ISSN  1059-1028 . Получено 26.03.2019 – через www.wired.com.
  84. ^ Шарвуд, Саймон (16.12.2013). «АНБ утверждает, что BIOS замышляет уничтожить ПК». The Register . Получено 26.03.2019 .
  85. ^ "Windows и GPT FAQ". microsoft.com . Microsoft. Архивировано из оригинала 2011-02-19 . Получено 2014-12-06 .
  86. ^ "Extensible Firmware Interface (EFI) и Unified EFI (UEFI)". Intel . Архивировано из оригинала 2010-01-05 . Получено 2014-12-06 .
  87. ^ "Характеристики и системные требования Windows 11 | Microsoft". Microsoft . Получено 14.10.2021 .
  88. ^ «Спецификация загрузки следующего поколения может навсегда заблокировать Linux на ПК с Windows 8».
  89. ^ «Безопасная загрузка Windows 8 может усложнить установку Linux». 2011-09-21.
  90. ^ Танг, Лиам (2017-11-20). «Intel: Мы прекращаем поддержку всех устаревших BIOS к 2020 году». ZDNET .

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

Внешние ссылки