2015-09-30 13 views
2

Как я понимаю, код BIOS/бит-поток, хранящийся в ПЗУ, должен быть общим (работать вместе с несколькими типами процессоров или ISA). Кроме того, я видел упоминания в Интернете, которые утверждают, что имеют возможность сбросить его код (и «разобрать» его).На каком языке написана BIOS?

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

Возможно, у него есть внутренний процессор?

ответ

1

Материнские платы разработаны с учетом набора заданных инструкций, а прошивка 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, они просто стремятся инициализировать «минимальную» файловую систему с минимальными файловыми системами и запускать с диска (дискету или жесткий диск).

+0

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

+0

Итак, вы говорите, что типичная материнская плата полностью плотная, например, только для x86? И, что вы подразумеваете под «немного комнаты для маневра»? – Reflection

+0

@Reflection Вам не нужны все * инструкции для работы с BIOS. Два разных процессора Intel могут работать, если они подходят. – Luaan

0

BIOS является аппаратная часть и полностью написана на языке системного уровня, как язык «C» и работать на 1 и 0 бит, который не что иное, как напряжение света .....

0

биос для материнская плата чрезвычайно уникальна для этой материнской платы. Вам либо нужен опыт всех нюансов процессора Intel, либо просто заплатите кому-то, чтобы написать биос для вас, есть очень маленький список компаний, которые это делают, и вам лучше просто нанять их. Это будет стоить вам много времени и денег в любом случае (дешевле и быстрее, если вы нанимаете их). Естественно, они, скорее всего, используют C и asm в качестве языков программирования. Non-x86 не использует биос, который использует какой-то загрузчик (redboot, u-boot и т. Д.), Поэтому это действительно интеллект/x86.

Bios работает на основном процессоре x86. это не какая-то волшебная вещь, это просто загрузочная программа, написанная для основного процессора, который сидит мгновенно.

Теперь, если у вас есть BMC (машина класса сервера), то да, это, вероятно, процессор для рук отдельно от x86, но вы знаете, что вы получили тем же людям, которых вы заплатили за биос, и вы платите им сделайте свою прошивку bmc тоже. по той же причине. опыт, который вы не сможете преодолеть в доступные сроки. здесь снова, скорее всего, написано на C и asm, но кто знает, кроме них.

0

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

 Смежные вопросы

  • Нет связанных вопросов^_^