Материнские платы разработаны с учетом набора заданных инструкций, а прошивка BIOS написана в разумном подмножестве этого набора команд (есть немного места для маневра). Например, вы не можете использовать материнскую плату x86 с процессором ARM (и если есть такие платы, они должны быть способны обрабатывать несколько разных наборов команд и, что более важно, системные архитектуры).
Код запускается на «основном» процессоре - если у вас нет встроенного процессора, BIOS тоже не работает. На самом деле, если вы хотите узнать больше о том, как работают первые шаги в процессе загрузки, просто выберите бесплатную книгу в Intel Systems Architecture (для x86 и друзей) - она ответит почти на все ваши вопросы, включая более современные такие технологии, как «как запустить многопоточную ОС» или «как переключиться в защищенный режим» и «как заставить процессор спать».
В качестве примера, ранние процессоры Intel начали выполнять по адресу 0x000FFFF0h
. Это отображается непосредственно в BIOS ROM (копирование в ОЗУ отсутствует - это всего лишь сопоставление), поэтому он просто запускает запуск BIOS. Более современные процессоры Intel начинаются с другого адреса, но основной принцип все тот же.
Теперь устаревшая IBM BIOS была очень простой и должна была уместиться в небольшом объеме памяти, поэтому они обычно записывались в чистой сборке (и, возможно, в машинный код напрямую, но я не думаю, что это необходимо, действительно - хотя я это сделал, экспериментируя с архитектурой IBM/Intel PC). Однако также были, например, полностью графические системы BIOS, которые, возможно, были написаны на C, например. Тем не менее, C не является большим шагом от сборки , за исключением за его переносимость - и, как мы видели, нет смысла иметь портативный BIOS; все компьютеры IBM работали на процессорах x86. То же самое касается следующего шага загрузки, загрузчика ОС - он должен был входить в крошечный объем памяти, поэтому он обычно записывался в сборку, однако в чем-то менее древнем, чем оригинальный IBM PC, они просто стремятся инициализировать «минимальную» файловую систему с минимальными файловыми системами и запускать с диска (дискету или жесткий диск).
Точно. Инструкции в BIOS - это первая программа, которую процессор запускает при загрузке, чтобы обеспечить стандартный интерфейс для аппаратного обеспечения. Обычно записывается в сборке и компилируется в машинный код –
Итак, вы говорите, что типичная материнская плата полностью плотная, например, только для x86? И, что вы подразумеваете под «немного комнаты для маневра»? – Reflection
@Reflection Вам не нужны все * инструкции для работы с BIOS. Два разных процессора Intel могут работать, если они подходят. – Luaan