Quali sono i passi necessari per creare un sistema operativo in C? [duplicare]

-2

Sto cercando di creare un mio sistema operativo. Questo è solo a scopo educativo, così da comprendere gli interni e avere una buona idea della programmazione di basso livello. Ho alcune precedenti esperienze di sviluppo di applicazioni in C # / python / C ++ / C. Sono un noob in linguaggio assembly (molto meno esperienza e conoscenza). Capisco che scrivendo un sistema operativo, non possiamo andare senza linguaggio assembly.

Attualmente, ho appena stampato una stringa in linguaggio assembly nel settore di avvio usando qemu e BIOS interrupt.
Quello che voglio è che qualcuno possa in particolare indicare i passaggi che devo seguire per far funzionare i miei programmi C sui miei sistemi operativi. In questo modo, posso iniziare a scrivere il mio sistema operativo in C.
Qualsiasi altro consiglio per aiutare un principiante, anche lo stesso è gradito.

Sebbene, ho esaminato molti tutorial / siti Web relativi allo sviluppo di sistemi operativi, non riesco a trovare queste informazioni da nessuna parte.

    
posta Pratik Singhal 22.08.2014 - 07:26
fonte

1 risposta

2

Innanzitutto, non è possibile scrivere interamente un kernel del sistema operativo in C, perché per definizione un SO sta gestendo risorse hardware fisiche e alcune di esse (almeno su hardware comune come x86) non sono accessibili in C (ad es. MMU, porte I / O, ...). Quindi avrai bisogno di un piccolo assemblaggio. (forse la maggior parte di esse può essere asm istruzioni all'interno delle funzioni C).

Quindi, guarda OsDev , ti dà un sacco di informazioni su come iniziare.

Imparerai molto anche estendendo il SO del software libero esistente: in particolare, capire come scrivere i tuoi moduli e driver del kernel Linux ti insegnerà molto. Vedi link

    
risposta data 22.08.2014 - 08:18
fonte

Leggi altre domande sui tag