XVilkaВ идеале оно конечно верно, только один принципиальный вопрос: как отделить
нужный код в BIOSе от
ненужного?
NB: выбор "нужный-ненужный" определяется спецификой конкретной задачи. Для каких-то задач надо, например, сохранить Setup-меню, в других случаях можно работать на жестком дефолте (даже не инициализируя текстовый режим), а в третьих - вообще перешить весь ROM с нуля, как в CoreBoot.В любом случае нужны
1) тысячи человеко-часов каторжной работы, плюс
2) достоверные исходники BIOS для каждой конкретной платформы.
Я вовсе не отвергаю Ваше предложение: есть задачи, для которых овчинка ст
оит выделки. Какие могут быть варианты их решения?
1) работать с ворованным/взломанным BIOSом: минимум затрат, минимум технической поддержки и никаких шансов для выхода на открытый рынок. Годится для разовых шабашек и закрытых проектов; работает только на одной конкретной доске, переносимость не гарантируется, легального рынка нет.
2) заказать легальные исходники BIOS у производителя: максимум затрат и всяческих проверок на вшивость, полноценная техническая поддержка и полное право на продажи конечного продукта. Открывать исходный код (даже твой собственный) никакая лицензия не разрешит. Переносимость (во всяком случае для одного семейства чипсетов) гарантируется. Идеальный вариант для перспективных коммерческих проектов.
3) использовать альтернативный 32-разрядный загрузчик CoreBoot, заточенный под Линукс-ядро. Очень заманчиво во всех отношениях, но в Колибри под него очень много всего надо перепиливать. К тому же этот загрузчик приходится индивидуально затачивать под каждую систему. Почти все
платформы, на которых CoreBoot достоверно и стабильно работает - унылое старьё.
Но есть и кое-что интересное: ASUS M4A78/785, AsRock 939A785, GigaByte GA-MA78* - это всё мои клиенты. Еще в декабре их не было - явно не обошлось без слива из АМД...
yogev_ezra, как насчет CoreBoot-загрузки - может, объединим усилия? (правда, Vortex'ов там в списке нет совсем)
_________________
Евангелие от Иоанна: стих 1Code:
; В начале было Слово:
B32: mov ax, os_stack ; Selector for os