2010-01-17 12 views
8

Desidero saperne di più sul funzionamento interno del computer, per migliorare le mie conoscenze sullo sviluppo di sistemi embedded.emulatore x86 per formazione sviluppo integrato

Al lavoro, non sono mai stato coinvolto con i dettagli di basso livello (come GDT, il caricatore del codice da flash a RAM, ecc.) Poiché tutti questi sono già stati scritti.

Preferisco non acquistare nessun altro hardware al momento. C'è un emulatore e un sistema operativo molto semplice, con cui posso giocare, per padroneggiare con tutti quegli aspetti di basso livello del programmincng incorporato? C'è un tutorial che mi può camminare attraverso l'impostazione di un ambiente di tipo embedded molto semplice (l'impostazione dei segmenti di memoria, la GDT, di arrivare a modalità protetta, ed eseguire main())

risposta

2

Per il nostro corso Sistemi operativi attualmente stiamo utilizzando un OS giocattolo chiamato PATATE. È piuttosto semplice e AFAIK basato sui tutorial del kernel di James Molloy. Potresti dare un'occhiata a questo here.

Inoltre posso consigliare il Wiki e discussion board su OSdev.org.

Happy hacking! :)

Modifica: alcune buone informazioni sull'architettura x86 sono disponibili nel volume 3 di Intel IA-32 Architectures Software Developer's manuals. Il Volume 1 presenta l'architettura di base e nel volume 2 troverai un riferimento completo del set di istruzioni di assemblaggio x86.

1

In sviluppo di sistema integrato emulatore ha un significato molto specifico; stai parlando di un "simulatore"? Ma se stai sviluppando su un x86, il simulatore di set di istruzioni non è necessario e limitato quando puoi invece usare una VM.

Infatti, se si desidera "un ambiente incorporato molto semplice" non si sceglie un x86. Il bootstrap e la configurazione di questi dispositivi complessi (e dei relativi set di chip e memoria) non è banale.

Se la piattaforma è x86, la cosa più semplice da fare è utilizzare una macchina virtuale in esecuzione su un vero x86. La VM più flessibile e robusta è disponibile gratuitamente da VMWare e un'altra libera da Microsoft. Microsoft Virtual PC è comunque ottimizzato per l'esecuzione di Windows, far funzionare Linux su di esso può essere problematico, per non parlare di alcuni RTOS di nicchia.

+0

Sto parlando di un VM completo, come virtualbox/Qemu/Bochs/VMware ecc. Ho solo pensato che ci fosse qualcosa di più adatto ai sistemi embedded. –

+0

E ovviamente, x86 è complicato, ecco perché voglio imparare tutte le sue caratteristiche intriganti (segmenti, modalità protetta di paging, oh mio ...) –

+0

Se si dispone di un budget, forse l'hardware reale potrebbe essere più adatto - Una scheda PC industriale, ad esempio, schede di fattore di forma PC/104 di fascia bassa non devono essere costose. – Clifford