x86 ПК прошивка имеет стандартные программные интерфейсы (во многом как системные вызовы), либо современный UEFI, либо устаревший BIOS int 0x10
и другие прерывания.
Ключевым моментом является то, что это не просто голый x86, он совместим с IBM PC, что означает программное обеспечение и даже эмулируемое устаревшее оборудование, такое как порт PS / 2, VGA и даже устаревший контроллер прерываний.
Если вы этого не сделалиЕсли бы у вас не было всей этой помощи от встроенного программного обеспечения (в пользу загрузчиков и игрушечных ОС), вам пришлось бы выполнять гораздо более сложную работу, например, требовать хотя бы базового драйвера USB-hid и USB-контроллера хоста для получения ввода с клавиатуры. Функция самого низкого уровня для обработки пользовательского ввода
Почему ввод / вывод работает из коробки на материнских платах x86, а не на встроенных компьютерах?
Это не ваш настоящий вопрос. Встроенные машины имеют работающее оборудование ввода-вывода, они просто не поставляются с переносимыми программными API / ABI, обернутыми вокруг драйверов, как часть прошивки.
Я думаю, что SDK большинства поставщиков поставляется с функциями для доступа к вводу-выводуаппаратное обеспечение (после того, как, возможно, придется немного поиграть, чтобы привести его в рабочее состояние). то есть написать свой собственный драйвер для него.
Встроенный не нуждается в этом в прошивке, потому что ожидается, что ядро будет настроено для аппаратного обеспечения.
Willn 'Разве лучше иметь BIOS или UEFI для максимальной переносимости? Есть ли у него недостатки, чтобы включить один?
Да: размер кода в загрузочном ПЗУ, и кто-то должен написать + отладить этот код. Это стоит времени и заработной платы разработчика.
Нет смысла загружать почти операционную систему (среду UEFI) только для загрузки ядра, которое в любом случае займет HW.
ТакжеНедостаток времени загрузки: любой код, который запускается, кроме загрузки ядра, где он хочет быть, тратит впустую процессорное время, которое замедляет загрузку. Имея очень легкий интерфейс, который всего позволяет загружать ваше ядро, и оставляя все операции ввода / вывода, имеет смысл для этого.
В отличие от компьютеров x86, здесь нетожидание того, что вы можете использовать это оборудование с установочным диском ОС / загруженным вами образом, который не специально настроен для этого оборудования.
Для любителей не легко играть с использованиемAPI-интерфейсы учебных колес. Реальные ОС на этом оборудовании не будут использовать такие API, так зачем вообще их предоставлять?