Questo potrebbe essere vano, poiché so che scrivere un sistema operativo è insopportabilmente complicato (specialmente da soli).
Non mi aspetto di costruire il prossimo Linux o Windows.
So che sarà orribile e pieno di bug e non funzionerà, ma va bene.
Voglio scrivere tutto da solo, in Assembly , C e (alcuni) C ++ .
Questo è un progetto futuro, poiché al momento sono impegnato con altre cose e non ho tempo immediatamente, ma ho pensato di chiederlo ora, quindi forse potrei ottenere molte risposte a questo, e potrebbe costruire ed essere una risorsa utile per questo tipo di approccio (tutto il resto che ho visto ha coinvolto la creazione di minix, l'utilizzo di un bootloader esistente, la creazione di un programma di avvio virtuale, ecc.).
Desidero configurare uno dei miei vecchi desktop con monitor, tastiera e mouse e iniziare a lavorare su un disco rigido vuoto .
Voglio imparare a scrivere il mio bootloader (ho trovato molte risorse su questo, ma per completezza, aggiungine ancora alcune buone), il mio driver USB (se necessario), un driver CD (se necessario ), ecc. Tutto, da zero.
Come inserisco il codice nel computer? È meglio farlo con un floppy disk? La maggior parte dei computer può farlo da una chiavetta USB?
Di quali driver ho bisogno e potete suggerirmi dei riferimenti per costruirli?
Dopo la sequenza di avvio, allora cosa? Come si entra in modalità protetta, ecc.
Come posso gestire la memoria senza l'aiuto di un sistema operativo? Uso solo gli indirizzi che voglio? Nessuna inizializzazione necessaria?
In cosa mi imbatterò senza dubbio che mi confonderà?
Come posso renderlo un O / S da riga di comando e uno grafico?
Su cosa si basa un O / S grafico? Ad esempio, come potrei fare qualcosa come una riga di comando, con un carattere e un'immagine in alto?
Dove posso leggere informazioni sulla configurazione di un ambiente multitasking? (cioè, avere due righe di comando di tipo grafico in esecuzione fianco a fianco).
Come potrei impostare una sorta di sistema a finestre? Come faccio a visualizzare la grafica sullo schermo una volta configurato il multitasking semplice?
Credimi, capisco che questo è un progetto molto complicato e probabilmente non riuscirò mai a completarlo o a scriverci sopra qualcosa di utile.
Ci sono molti altri pezzi che non ho menzionato, se ne pensi qualcuno, sentiti libero di aggiungere anche quelli.
Si prega di inserire un "argomento" per risposta, ad esempio, driver USB, quindi magari un elenco di risorse, cose a cui prestare attenzione, ecc.
Inoltre, non suggerire di creare un altro sistema operativo o un codice preesistente. So che leggerò molto codice preesistente (come il kernel Linux, o risorse di esempio, driver esistenti, ecc.) Ma alla fine voglio scrivere tutto da solo. So che dovrei partire da qualcos'altro, e ci sono molte altre domande su SO al riguardo che posso leggere se cambio idea e seguo quella strada. Ma in questo caso si tratta di fare tutto da zero.
Qualche suggerimento su come ottenerlo grafico? Diverse modalità video e come lavorare con loro, ecc.?