Написание собственного BIOS

Я не сумасшедший, просто изобретаю колесо: D
Я написал загрузчики, мини-драйверы для мыши и клавиатуры, мини-ОС и так далее.

Я всегда стараюсь избегать прерываний DOS, используя только BIOS, пытаясь продвигать unity mini OS, но внезапно я решил написать свой собственный BIOS:)

легенда сказал :
Я был программистом высокого уровня, потом низкого. Однажды я стану программистом машинного языка!

написан ли BIOS в сборке? Как могу я помахать им? Каков механизм? Могу ли я начать редактирование текущего BIOS?

4 ответов


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

Как прошить его? Варьируется от материнской платы к материнской плате, я бы начал с виртуальной машины с открытым исходным кодом и написал bios для этого. Или создайте виртуальную машину, на которой вы написали bios. Механизм варьируется от поставщика к поставщику, как правило, вы загружаете dos (dos не мертв, это очень жив в мире ПК, разработке материнских плат esp и встроенных систем). Я бы не возился с реальной материнской платой, если вы еще не знаете ответов на все эти вопросы, вы собираетесь заложить кирпичом ряд материнских плат, если вы пойдете по этому пути.

вы можете попробовать взять обновление bios для вашей материнской платы и реконструировать его (хотя, вероятно, есть соглашение, в котором говорится, что вы не будете). Если вы поймете это, вы можете загрузить его и взломать на. Я бы не пошел туда, вы заложите кирпичом свою систему, прежде чем поймете это.

действительно ли вы пишете bios? Довольно старая школа, было бы похоже на написание кода 6502 для удовольствия. Есть много проблем низкого уровня, которые являются более полезными и интересными.

Если вы можете написать asm код пишущей машины не так сложно, вы можете просто пойти сделать это для удовольствия. x86 ужасен, вы должны потратить некоторое время на изучение других систем и их asm и машинный код (и написание операционных систем для них). ARM доминирует в мире и не полагается на bios. Мне сказали, что для того, чтобы получить видеокарту в системе, отличной от x86, вам все равно нужно что-то возиться в x86 в x86 bios, можно выяснить, как поднять основную видеокарту без необходимости запускать x86 bios. посмотрите, как эмулятор запускает bios и посмотрите,что он делает, выясните, замените это питание на init без bios...Написание тренажера набора инструкций или дизассемблер-это следующий шаг после написания машинного кода, я бы не стал тратить ни секунды времени на x86, хотя, я могу предложить список альтернатив (или вы можете просто поиграть в симуляторы я написал или собираются).

Если bios x86-это то, что вы хотите, ваш лучший путь-написать, заменить или взломать bios для виртуальной машины qemu, virtualbox или другого. Замена этого bios на ваш, вероятно, заменит файл в каком-либо каталоге или с помощью команды опция line для указания альтернативного bios. После того, как вы хорошо опытны в этом, то если есть еще материнские платы с наследием bioses на них, возможно, вы можете взломать свой путь в программировании один (нужно купить несколько каждого типа материнской платы, как вы будете кирпич некоторые). С таким количеством встроенных систем, которые могут быть за $20 до $ 200 С таким же уровнем опыта, не имеет смысла взломать материнскую плату ПК без достойных схем и документации. Можно нарыть оригинальный ПК со схемой и списком bios документируется, а bios закрепляется, поэтому, если ваш не загружается (и не разрушает материнскую плату), это не кирпич, который вы можете перепрограммировать или заменить чип bios. Вероятно, хотите использовать микроконтроллер, чтобы стоять в качестве поддельного bios, так как найти правильное оборудование для перепрограммирования большего количества чипов bios, возможно, сложнее найти, что работает оригинальный ПК...Существует сообщество amiga, которое, вероятно, намного веселее и будет рад вас видеть улучшение / настройка их bios, скажем, размещение современного оборудования за устаревшими системными вызовами.


Fwiw Modbin-это программа DOS, которая, как следует из названия, изменяет изображения BIN, особенно с целью простых qnd довольно экстремальных изменений существующего кода BIOS.

Если вы можете получить старый mobo (многие выбрасываются все еще работают), я бы рекомендовал вам поиграть с BIOS. Это информативно и весело, если кто-то так склонен, и Вы, кажется,:) было время, когда я загружал изображения BIOS с mobos, которые имели те же или похожие чипсеты, хотя сделано другим изготовителем...иногда для значительного преимущества, включая такие простые, как продолжение получения обновлений BIOS после того, как оригинальный производитель mobo уронил мяч или пошел животом вверх, а также функции и параметры производительности и изменения.

Это привело к "горячему миганию", которое тянет вверх чип BIOS с носком, так что штыри едва вошли в контакт и один раз загрузились, потянув его и заменив плохой (часто тот, который я fuxored), в то время как все еще работает и мигает, используя кэшированную функцию BIOS, которая поддерживала активность системы. Забавные вещи для тех из нас, кто выродок убеждения и дал мне уверенность, чтобы написать драйверы устройств для OS / 2


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

вы можете попробовать что-то вроде этого вида tecnique: http://hackaday.com/2010/11/18/build-your-own-soic-progamming-clip/

этот разговор я видел сегодня: https://conference.hitb.org/hitbsecconf2015ams/sessions/how-many-million-bioses-would-you-like-to-infect/

Он объяснил это более подробно, хотя вы, возможно, не ищете инфекции, некоторые технологии для получения bios покрыты, где клип программирования является одним из них.


Если вы хотите написать BIOS для IBM PC совместимого компьютера (который является то, что большинство настольных ПК сегодня, хотя и с большим количеством расширений для набора инструкций CPU, и некоторые различные интерфейсы шины), то я предлагаю вам посмотреть через IBM PC, IBM PC XT и IBM PC AT технические справочники. В частности, IBM PC AT manual, как таков фактический стандарт.

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