2012-06-05 19 views
28

Non sono pazzo, reinventando la ruota: D
Ho scritto bootloader, mouse & mini-driver di tastiera, mini SO e così via.Scrivi il mio BIOS

Sto sempre cercando di evitare DOS interrompe, utilizzando quelli del BIOS solo, cercando di andare avanti di un mini sistema operativo unità, ma improvvisamente ho deciso di scrivere il mio BIOS :)

The Legend detto:
I era programmatore di alto livello, poi uno di basso livello. Un giorno sarò programmatore in linguaggio macchina!

È un BIOS scritto in assembly? Come posso farlo? Qual è il meccanismo? Posso iniziare a modificare il mio BIOS corrente?

+10

Speriamo utile per voi: http://www.coreboot.org/Welcome_to_coreboot – sarnold

+0

Votare per chiudere come troppo ampio. –

risposta

20

Un BIOS può essere scritto in assembly ma non è necessario, alcune parti devono essere necessarie per ottenere i parametri per la chiamata di sistema poiché non corrispondono alla convenzione di chiamata del compilatore.

Come si fa a lampeggiare? Varia dalla scheda madre alla scheda madre, vorrei iniziare con una macchina virtuale open source e scrivere un bios per questo. O creare una macchina virtuale in cui hai scritto il bios. Il meccanismo varia da un venditore all'altro, generalmente il boot dos (il dos non è morto, è molto vivo nel mondo dei PC, nello sviluppo della scheda madre e nei sistemi embedded). Non vorrei scherzare con una vera scheda madre, se non si conoscono già le risposte a tutte queste domande, si andrà a mettere a punto un certo numero di schede madri se si imbocca questa strada.

È possibile provare a eseguire un aggiornamento del bios per la scheda madre e decodificarlo (anche se è probabile che vi sia un accordo di clic che dice che non lo si farà). Se lo capisci, puoi caricarlo e hackerarlo a. Non andrei là, farò il tuo sistema prima di capirlo.

Sta scrivendo un bios davvero quello che cerchi? Abbastanza vecchia scuola, sarebbe come scrivere codice 6502 per divertimento. Ci sono molti problemi di basso livello che sono più utili e interessanti.

Se riesci a scrivere asm il codice della macchina da scrivere non è poi così difficile, potresti semplicemente farlo per divertimento. x86 è terribile, dovresti passare un po 'di tempo ad imparare altri sistemi e il loro nome asm e codice macchina (e scrivere sistemi operativi per loro). ARM domina il mondo e non si basa su un bios. Mi è stato detto che per ottenere una scheda video su un sistema non-x86 devi ancora armeggiare qualcosa in x86 sul bios x86, potresti capire come far apparire una scheda video mainstream senza la necessità di eseguire il bios x86. guardare un emulatore eseguire il bios e vedere cosa fa, capirlo sostituire quella potenza su init senza che il bios lo faccia ... Scrivere un simulatore di istruzioni o un disassemblatore è il prossimo passo oltre la scrittura del codice macchina, non vorrei sprecare nemmeno un secondo di tempo su x86, però, posso suggerire una lista di alternative (o potresti semplicemente giocare con i simulatori che ho scritto o raccolto).

Se un bios x86 è il modo in cui si desidera andare, il percorso migliore è scrivere, sostituire o hackerare un bios per una macchina virtuale come qemu, virtualbox o altro. Sostituire quel bios con il tuo probabilmente sostituirà un file in qualche directory o usando l'opzione della riga di comando per specificare un bios alternativo. Una volta che hai una buona esperienza in quel caso, se ci sono ancora schede madri con biose legacy su di esse, forse puoi entrare nella programmazione di una (è necessario acquistare diversi tipi di schede madri come farai a qualcuno). Con così tanti sistemi embedded là fuori che si possono avere per $ 20 a $ 200 con lo stesso livello di esperienza acquisita, non ha senso hackerare su una scheda madre del pc senza schemi e documentazione decenti. Potresti trovare un PC originale con lo schema e la lista dei bios che sono stati documentati, e il bios che è stato inserito, quindi se il tuo non si avvia (e non distrugge la scheda madre) non è un mattone puoi riprogrammare o sostituire il bios patata fritta.Probabilmente vorresti usare un microcontrollore per far parte di un bios falso, poiché trovare l'hardware giusto per riprogrammare più chip del bios è forse più difficile da trovare che lavorare su PC originali ... C'è una comunità di amiga che è probabilmente molto più divertente e sii felice di averti migliorato/modificato il loro bios, diciamo mettendo l'hardware moderno dietro alle chiamate di sistema legacy.

+7

alcune schede madri dispongono di un secondo chip di bios che può essere utilizzato per ripristinare quello primario se viene danneggiato durante un aggiornamento. forse questa funzione aiuterebbe ad evitare di far troppi troppi mainboard :) –

+0

@ old_timer Signore, voglio scrivere un BIOS per capire come funziona il computer perché non ho un background di computer formale (eppure sono uno sviluppatore software che scrive software in Giava). Per favore dimmi aiutarmi con la road map come posso capire come microprocessore, BIOS, RAM, SO ecc. Finalmente eseguono il mio codice per fare qualcosa che valga la pena; da quale punto dovrei iniziare a conoscere questo; qual è la fonte da imparare. Vorrei * ardentemente * attendere la tua risposta. –

+1

un x86 è l'ultimo posto in cui vorrei iniziare, e certamente non provo ad avviare la macchina, è un incubo al meglio. Solo perché hai uno è la peggiore ragione. Inizia con alcuni microcontrollori da $ 5 o $ 10, impara le nozioni di base portando alcune cose semplici come gpio e timer e mettiti a tuo agio con la programmazione baremetal (principalmente C molto poco richiesta). Allora magari un raspberry pi o un mips o powerpc, e poi se senti ancora il bisogno prova un x86. Troverai solo circa zero informazioni per quello che ti serve per sostituire un bios e potresti friggere qualche scheda madre, anche con decenni di esperienza. –

0

Ci sono modi per far lampeggiare il BIOS se non per far funzionare il pc. Ma richiede un po 'di hardware. Non dovrebbe essere molto costoso però.

Si potrebbe provare qualcosa di simile a questo tipo di tecnica: http://hackaday.com/2010/11/18/build-your-own-soic-progamming-clip/

Questo discorso che ho visto oggi: https://conference.hitb.org/hitbsecconf2015ams/sessions/how-many-million-bioses-would-you-like-to-infect/

Essa ha spiegato in modo più dettagliato, anche se potrebbe non essere alla ricerca di infezioni, alcune tecniche per arrivare al bios sono coperti, dove la clip di programmazione è uno di loro.

+1

Si prega di aggiungere dettagli dai collegamenti, per rendere questa una risposta migliore. –

1

FWIW Modbin è un programma DOS che, come suggerisce il nome, modifica le immagini BIN in particolare allo scopo di eseguire semplici modifiche al codice BIOS esistente.

Se riesci a ottenere un vecchio mobo (molti sono gettati via ancora funzionanti) ti incoraggerei a giocare con il BIOS. È istruttivo e divertente, se uno è così inclinato e sembra che tu sia :) C'è stato un tempo in cui ho scaricato le immagini del BIOS da un dispositivo che aveva chipset uguali o abbastanza simili realizzati da un altro produttore ... a volte con un vantaggio considerevole così semplici come continuare a ottenere gli aggiornamenti del BIOS dopo che il produttore originale del mobo ha lasciato cadere la palla o è andato a pancia in su, ma ha anche caratteristiche e opzioni orientate al rendimento e alterazioni.

Questo ha portato a "HOT Flashing" che sta tirando su un chip BIOS socket in modo che i pin appena creato contatto e una volta avviato, tirando quella e sostituendo una cattiva (spesso uno che avevo fuxored) mentre ancora in esecuzione e lampeggiante utilizzando la funzionalità del BIOS memorizzata nella cache che manteneva attivo il sistema. Roba divertente per quelli di noi della persuasione geek e mi ha dato la sicurezza di scrivere driver di dispositivo per OS/2