















Verificare possibili deadlock e altri errori. Errori, deadlock e altri problemi inizieranno a comparire nel progetto del tuo sistema operativo. Se desideri che il tuo sistema sia fattibile, assicurati di implementare le funzionalità di sicurezza come priorità assoluta. Con siti web come OSDev e OSDever puoi sviluppare il tuo sistema operativo. Nota: per la maggior parte degli scopi, OSDev.org community preferirebbe che tu consultassi la loro wiki per domande e non partecipassi al forum. Se decidi di iscriverti al forum, ci sono dei requisiti: devi avere una conoscenza approfondita del C o C++ e dell`assembler x86. Dovresti anche comprendere concetti di programmazione comuni e complessi come elenchi collegati, code, ecc. La Comunità OSDev afferma espressamente nelle sue regole che la Comunità non ha lo scopo di fare da babysitter ai nuovi programmatori. `Non aderire l`OSDev.org forum per iniziare a porre domande ovvie subito dopo. Ciò si tradurrà semplicemente in risposte come""leggi il manuale/leggi il manuale". Leggi Wikipedia e i manuali per i diversi strumenti che desideri utilizzare. Se stai cercando di sviluppare un sistema operativo, è ovvio che dovresti essere un dio della programmazione. Devi anche aver letto i manuali del processore per l`architettura del processore che hai scelto; che si tratti di x86 (Intel), ARM, MIPS, PPC, ecc. è. I tutorial sull`architettura del processore possono essere trovati facilmente con una ricerca su Google ("manuali Intel", "manuali ARM" eccetera.). Una volta completato lo sviluppo, puoi decidere se rilasciare il codice come open source o proprietario. Non iniziare con un progetto di sistema operativo per imparare a programmare. Se non hai già una conoscenza approfondita di C, C++, Pascal o di qualsiasi altro linguaggio appropriato, inclusa la manipolazione del puntatore, la manipolazione dei bit di basso livello, lo spostamento dei bit, il linguaggio assembly inline, ecc., allora non sei davvero pronto per lo sviluppo del tuo sistema operativo. Potrebbe essere saggio creare una partizione completamente nuova per lo "sviluppo" del sistema operativo.
Crea un sistema operativo
Contenuto
I sistemi operativi consentono alle persone di interagire con l`hardware di un computer; sono costituiti da centinaia di migliaia di righe di codice. Di solito sono realizzati con linguaggi di programmazione C#, C, C++ e assembler. I sistemi operativi consentono di navigare in un computer, abilitare l`archiviazione dei dati ed eseguire comandi. Non pensare che sia facile creare un sistema operativo. Richiede molte conoscenze.
Passi

1. Impara a programmare prima di iniziare. L`assemblaggio è essenziale e un altro linguaggio di programmazione aggiuntivo di alto livello come C è altamente raccomandato.

2. Decidi su quale supporto caricare il tuo sistema operativo. Potrebbe trattarsi di un`unità CD, un`unità DVD, un`unità flash, un disco rigido, un floppy disk o qualsiasi altro PC.

3. Decidi qual è l`idea di base sul sistema operativo. In Windows, ad esempio, l`idea principale è una GUI facile da usare e una sicurezza avanzata.

4. Determina quale piattaforma di processore supporterà il tuo sistema operativo. IA-32, ARM e x86_64 sono le architetture più comuni per i personal computer, quindi quelle sono la soluzione migliore.

5. Decidi se vuoi costruire tutto da solo da zero o se c`è un kernel esistente su cui vuoi costruire. Linux From Scratch è un progetto di esempio per coloro che vogliono creare la propria distribuzione Linux.

6. Decidi se utilizzare il tuo bootloader o uno esistente, come Grand Unified Bootloader (GRUB). Poiché la codifica del proprio bootloader richiede una conoscenza approfondita dell`hardware e del BIOS, può rallentare la pianificazione per la programmazione del kernel effettivo.

7. Decidi quale linguaggio di programmazione usare. Sebbene sia possibile creare un sistema operativo in un linguaggio come Pascal o BASIC, è meglio usare C o Assembly. L`assemblaggio è assolutamente necessario poiché alcune parti vitali di un sistema operativo lo richiedono. C++, d`altra parte, contiene elementi del linguaggio che richiedono un altro sistema operativo completo per essere eseguito.
Per poter compilare un sistema operativo da codice C o C++ è ovviamente necessario un qualche tipo di compilatore. Dovresti quindi leggere la guida per l`utente/manuali/documentazione per il compilatore C/C++ scelto, sia fornito con il software sia disponibile sul sito web del distributore. Avrai bisogno di sapere molte cose complicate sul tuo compilatore e, per sviluppare in C++, dovrai conoscere lo schema di manipolazione del compilatore e l`ABI. Vedrai i vari formati eseguibili (ELF, PE, COFF, binario normale, ecc.).), nonché il fatto che il formato nativo di Windows, PE (.exe), è protetto da copyright.

8. Decidi quale API (Application Programming Interface) utilizzare. Una buona API tra cui scegliere è POSIX poiché è ben documentata. Tutti i sistemi Unix hanno un supporto almeno parziale per POSIX, quindi sarebbe banale trasferire i programmi Unix sul tuo sistema operativo.

9. Decidere il design. Esistono kernel e microkernel monolitici. I kernel monolitici eseguono tutti i servizi nel kernel, mentre i microkernel combinano un piccolo kernel con un demone utente combinato che implementa i servizi. In generale, i kernel monolitici sono più veloci, ma i microkernel hanno un migliore isolamento dei guasti e affidabilità.

10. Prendi in considerazione lo sviluppo e il lavoro in team. In questo modo, è necessario meno tempo per risolvere più problemi, che possono produrre un sistema operativo migliore più velocemente.

11. Non cancellare completamente il disco rigido. Ricorda che la pulizia dell`unità eliminerà irreversibilmente tutti i dati! Usa GRUB o un altro boot manager per configurare un dual boot con un altro sistema operativo finché il tuo sistema non è completamente funzionante.

12. Inizia in piccolo. Inizia con piccole cose come la visualizzazione di testo e interruzioni prima di passare ai problemi più grandi come la gestione della memoria e il multitasking. Assicurati anche di creare una versione a 32 bit e 64 bit.

13. Conserva un backup del tuo codice sorgente funzionante più di recente. Ciò fornisce una misura di protezione nel caso qualcosa vada terribilmente storto con la versione corrente del sistema operativo o il suo sviluppo. Se il tuo computer si arresta in modo anomalo e non è più in grado di avviarsi, è un`ottima idea avere una seconda copia con cui lavorare in modo da poter eseguire il debug.

14. Prendi in considerazione la possibilità di testare il tuo nuovo sistema operativo con una macchina virtuale. Invece di riavviare il computer ogni volta che apporti modifiche o trasferire file dal computer di sviluppo al computer di prova, puoi utilizzare una macchina virtuale per eseguire il tuo sistema operativo con il tuo attuale sistema operativo. Alcuni dei programmi VM includono VMWare (ha anche un software server disponibile gratuitamente), l`alternativa open source Bochs, Microsoft Virtual PC (non compatibile con Linux) e Oracle VirtualBox.

15. Rilascia un "candidato al rilascio".Ciò consentirà agli utenti di avvisarti di potenziali problemi con il tuo sistema operativo.

16. Un sistema operativo può anche essere intuitivo, quindi assicurati di aggiungere funzionalità intuitive, che lo rendano parte integrante del tuo progetto.
Consigli
Il sistema operativo che crei quindi appartiene alla società che ha avviato il servizio per prima (anche se hai il diritto alla distribuzione gratuita e di modificarlo a tuo piacimento ed eseguirlo sotto GPL).
Avvertenze
- Non avrai creato un sistema operativo completo in due settimane. Inizia con un sistema operativo in grado di avviarsi, quindi passa alle cose divertenti.
- Se fai qualcosa di sconsiderato come scrivere byte casuali su porte I/O casuali, il tuo sistema operativo si arresterà in modo anomalo e potresti (in teoria) danneggiare il tuo hardware.
- Non aspettarti che sia facile costruire un sistema operativo ben funzionante. Ci sono tutti i tipi di complicate interdipendenze. Ad esempio, per consentire a un sistema operativo di gestire più processori sarà necessario utilizzare i "meccanismi di blocco" di gestione della memoria per impedire a più processori di utilizzare la stessa risorsa/risorsa contemporaneamente. Il "serrature" utilizzato per questo richiedono la presenza di uno scheduler/scheduler per garantire che solo un processore possa accedere a una risorsa critica in un dato momento, con tutti gli altri in attesa. Ma lo scheduler dipende ancora dalla presenza di un Memory Manager. Questo è un caso di dipendenza da deadlock. Non esiste un modo standard per risolvere problemi come questo; ogni programmatore di sistemi operativi dovrebbe essere abbastanza esperto da trovare il proprio modo di affrontarlo.
- La scrittura negligente del tuo sistema operativo sul disco rigido può danneggiarlo completamente. Stai attento.
Necessità
- Un computer
- Una CPU per l`architettura che svilupperai
- Memoria sufficiente (RAM) per una macchina virtuale
- Un sistema operativo "host" (utilizzato per sviluppare il codice sorgente di Assembler (e altri), nonché per compilarlo e confezionarlo mentre è ancora nelle sue fasi iniziali, alla fine il tuo sistema operativo può ospitarsi da solo)
- Un editor di programmazione con codice colore (usalo se non hai un IDE - Ambiente di sviluppo integrato)
- Un compilatore
- Un`unità CD/DVD
Articoli sull'argomento "Crea un sistema operativo"
Condividi sui social network:
Popolare