Подтвердить что ты не робот

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

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

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

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

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

4b9b3361

Ответ 1

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

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

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

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

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

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

Ответ 2

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

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

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

Ответ 3

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

Вы могли бы попробовать что-то вроде этого типа 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/

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

Ответ 4

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

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

Ответ 5

BIOS может быть написан на любом из ваших любимых языков, хотя языки более низкого уровня дают вам больше контроля. Сборка и машинный код почти одинаковы, разница в том, что интерфейс микрокода и то, что вы вводите, например. для машинного кода вы должны ввести только 2 символа, а сборка даст вам буквенно-цифровые символы. Моя охота за кастомным BIOS началась, когда мне нужно было загружать компьютер каждые несколько часов, и я не нашел ни одного BIOS, который бы это делал.

Для прошивки BIOS следуйте инструкциям производителя. BIOS теперь заменен на UEFI (для дополнительной безопасности). Оформить заказ: https://www.pcworld.com/article/187437/how-to-update-your-bios.html

Справочник по инструкциям x86 и amd64: https://www.felixcloutier.com/x86/
Инструкции x86 с расширениями: https://en.wikipedia.org/wiki/X86_instruction_listings
Ссылка на инструкцию i386: https://css.csail.mit.edu/6.858/2014/readings/i386.pdf
Руководство по сборке x86: https://www.cs.virginia.edu/~evans/cs216/guides/x86.html
Набор инструкций Intel: https://software.intel.com/sites/default/files/managed/a4/60/325383-sdm-vol-2abcd.pdf