Come Creare un Sistema Operativo per Computer: 13 Passaggi (Illustrato)

Sommario:

Come Creare un Sistema Operativo per Computer: 13 Passaggi (Illustrato)
Come Creare un Sistema Operativo per Computer: 13 Passaggi (Illustrato)

Video: Come Creare un Sistema Operativo per Computer: 13 Passaggi (Illustrato)

Video: Come Creare un Sistema Operativo per Computer: 13 Passaggi (Illustrato)
Video: COME INSTALLARE LINUX SPIEGATO SEMPLICE 2024, Aprile
Anonim

Questo articolo spiega come pianificare e sviluppare un sistema operativo se non sai come programmare in C o C++. I sistemi operativi gestiscono l'hardware del computer e forniscono le risorse necessarie per l'esecuzione delle applicazioni. Scrivere un sistema operativo da zero richiede una forte padronanza dell'informatica, un linguaggio di programmazione come C o C++, assembly e pratiche di gestione del codice.

Passi

Parte 1 di 2: Imparare le basi

Crea un sistema operativo per computer Passaggio 1
Crea un sistema operativo per computer Passaggio 1

Passaggio 1. Segui alcuni corsi di informatica di base

A differenza dello sviluppo per il Web, la creazione di un sistema operativo richiede una profonda conoscenza di algoritmi, strutture dati, hardware del computer e gestione delle risorse. Le persone ottengono una laurea in queste cose, quindi non aspettarti di scrivere un intero sistema operativo dopo aver letto un tutorial online! Il corso Intro to Computer Science di Harvard è disponibile online gratuitamente tramite EDX.

Crea un sistema operativo per computer Passaggio 2
Crea un sistema operativo per computer Passaggio 2

Passaggio 2. Impara un linguaggio di programmazione di alto livello come Python

Una volta acquisita una solida conoscenza di base dell'informatica, il passo successivo è padroneggiare C e/o C++. Come imparare l'informatica, padroneggiare una lingua non è facoltativo: non sarai in grado di codificare un sistema operativo se non puoi scrivere applicazioni solide.

Se non conosci il C, dai un'occhiata al corso C Programming: Getting Started di Dartmouth, che è gratuito tramite EDX. Una volta completato quel corso, puoi seguire il corso successivo della serie: Programmazione C: Fondamenti del linguaggio. Quindi, passa ai corsi successivi come Programmazione modulare e Gestione della memoria e Puntatori e Gestione della memoria

Crea un sistema operativo per computer Passaggio 4
Crea un sistema operativo per computer Passaggio 4

Passaggio 3. Impara un linguaggio assembly

I linguaggi assembly sono linguaggi di basso livello progettati per comunicare con processori diversi. Poiché l'assembly è diverso per i diversi tipi di processore (ad esempio, x86 assembly Language per Intel, AMD, VIA e altri processori), dovrai imparare la versione per il tipo di processore per cui stai codificando.

  • Questo libro open source, se letto nella sua interezza, può darti una comprensione abbastanza solida per costruire un sistema operativo.
  • The Art of Assembly Language è un libro altamente raccomandato sull'assemblaggio disponibile sia online che offline.
  • Dovresti anche fare molte ricerche sul tipo di processore su cui dovrebbe funzionare il tuo sistema operativo. I manuali per l'architettura del processore possono essere facilmente trovati utilizzando una ricerca su Google ("Manuali Intel, " "manuali ARM, " ecc.).
Crea un sistema operativo per computer Passaggio 5
Crea un sistema operativo per computer Passaggio 5

Passaggio 4. Completa un tutorial sul sistema operativo

I tutorial del sistema operativo ti guideranno attraverso il processo di creazione di un sistema operativo di base. Questo ti abitua al processo e ti aiuta a capire se ci sono dei pezzi che ti mancano. Dopo aver completato uno o due tutorial, sarai sulla buona strada per creare il tuo sistema operativo personale.

  • Bare Bones è un tutorial che ti aiuta a scrivere il tuo primo semplice kernel a 32 bit. Dopo aver completato il tutorial, il passaggio successivo consiste nell'utilizzare Meaty Skeleton per strutturare il proprio sistema operativo.
  • Linux from Scratch è un libro online che ti guida nella creazione del tuo sistema operativo Linux.
  • Sistemi operativi da 0 a 1 è un libro gratuito sulla creazione di vari sistemi operativi dall'inizio alla fine.
Crea un sistema operativo per computer Passaggio 3
Crea un sistema operativo per computer Passaggio 3

Passaggio 5. Individua gli obiettivi del tuo sistema operativo

Cosa vuoi che faccia il tuo sistema operativo? Come dovrebbe apparire? Hai davvero bisogno di scrivere un intero sistema operativo o stai solo cercando di creare un certo look per il tuo desktop? Queste sono tutte cose da considerare prima di iniziare a programmare.

  • Considera lo sviluppo con un team di altri programmatori. Avere un team di sviluppatori che lavora al progetto ridurrà significativamente i tempi di sviluppo.
  • Aggiungi gli obiettivi, i piani e le domande del tuo progetto al tuo archivio pubblico in modo che sia facile per gli altri aiutarti.

Parte 2 di 2: Costruire il tuo sistema operativo

Divertiti con il computer Passo 16
Divertiti con il computer Passo 16

Passaggio 1. Scegli un ambiente di sviluppo

Questa è la piattaforma che utilizzerai per codificare il tuo nuovo sistema operativo. È una questione di preferenze personali, ma la maggior parte delle persone usa Windows o una versione di UNIX. Se stai usando Windows, è una buona idea installare un ambiente UNIX come Cygwin o MinGW. In genere vorrai assicurarti che qualsiasi ambiente tu stia utilizzando includa quanto segue:

  • GCC (il compilatore Gnu). Se stai usando Windows, puoi installarlo in Cygwin o MinGW.
  • Binutils è una raccolta di strumenti utilizzati per manipolare i file oggetto. Di nuovo, se stai usando Windows, puoi installarlo in Cygwin.
  • Un buon editor di testo. Vim ed emacs sono comunemente usati negli ambienti UNIX. Gli utenti Windows possono utilizzare Blocco note o controllare Notepad ++ per un aggiornamento multi-scheda.
  • Perl e/o Python. Uno o entrambi sono consigliati per la manipolazione delle stringhe.
Crea un sistema operativo per computer Passaggio 13
Crea un sistema operativo per computer Passaggio 13

Passaggio 2. Configura il tuo sistema di controllo della versione

Scrivere un sistema operativo significa che probabilmente creerai centinaia (o migliaia!) Di righe di codice. Quando lavori sulle revisioni, questo può creare confusione. Alcune opzioni da verificare sono CVS, Mercurial e Subversion.

Crea un sistema operativo per computer Passaggio 6
Crea un sistema operativo per computer Passaggio 6

Passaggio 3. Decidi un bootloader

Se non vuoi crearne uno tuo, puoi usarne uno esistente come Grand Unified Bootloader (GRUB). Se ti senti abbastanza audace da codificare un bootloader, dai un'occhiata a Rolling Your Own Bootloader su OSDev.org.

Crea un sistema operativo per computer Passaggio 9
Crea un sistema operativo per computer Passaggio 9

Passaggio 4. Scegli un design del kernel

Il kernel è il cuore del tuo sistema operativo, fornendo un'interfaccia tra l'utente e l'hardware del computer. Esistono kernel monolitici e micro kernel. I kernel monolitici implementano tutti i servizi nel kernel, mentre i microkernel hanno un piccolo kernel combinato con i demoni utente che implementano i servizi. In generale, i kernel monolitici sono più veloci, ma i microkernel hanno un migliore isolamento e affidabilità dei guasti.

Crea un sistema operativo per computer Passaggio 12
Crea un sistema operativo per computer Passaggio 12

Passaggio 5. Inizia in piccolo

Inizia con piccole cose come la visualizzazione di testo e interruzioni prima di passare a cose come la gestione della memoria e il multitasking. Puoi anche provare a creare un semplice sistema operativo a 16 bit, invece di fare un grande salto.

Non avrai un sistema completo in due settimane. Inizia con un sistema operativo che si avvia, quindi passa alle cose interessanti

Creazione di un sistema operativo per computer Passaggio 14
Creazione di un sistema operativo per computer Passaggio 14

Passaggio 6. Testa il tuo nuovo sistema operativo con una macchina virtuale

Invece di riavviare il computer ogni volta che si apportano modifiche o si devono trasferire i file dal computer di sviluppo alla macchina di prova, utilizzare un'applicazione di macchina virtuale. VMWare è un'opzione comune che funziona sia con Windows che con Linux, così come Bochs. Verifica la presenza di potenziali deadlock e altri bug e riparali se necessario.

Crea un sistema operativo per computer Passaggio 15
Crea un sistema operativo per computer Passaggio 15

Passaggio 7. Rilasciare un "release candidate

Puoi farlo caricando il tuo codice testato nel tuo repository pubblico. Ciò consentirà alle persone di testare il tuo sistema operativo e segnalare eventuali problemi che incontrano.

Divertiti con il computer Passo 28
Divertiti con il computer Passo 28

Passaggio 8. Rete con altri sviluppatori di sistemi operativi

Esiste un'intera comunità di sviluppatori di sistemi operativi che si riunisce su vari forum, tra cui /r/osdev su Reddit e Software Engineering Stack Exchange. Una volta che hai imparato a sviluppare un sistema operativo di base, leggi i post esistenti per vedere che tipo di cose emergono durante il processo di sviluppo.

Video - Utilizzando questo servizio, alcune informazioni potrebbero essere condivise con YouTube

Suggerimenti

  • Assicurati di implementare le funzionalità di sicurezza come priorità assoluta se desideri che il tuo sistema sia praticabile.
  • Dopo aver completato lo sviluppo, decidi se vuoi rilasciare il codice come open source o proprietario.
  • Per rendere un sistema operativo in grado di gestire più processori, Memory Manager deve disporre di meccanismi di "blocco" per impedire a più processori di accedere alla stessa risorsa contemporaneamente. I "blocchi" utilizzati per questo richiederanno la presenza di uno scheduler per assicurarsi che solo un processore acceda a una risorsa critica in un dato momento e tutti gli altri siano fatti aspettare. Eppure lo scheduler dipende dalla presenza di un Memory Manager. Questo è un caso di dipendenza in deadlock. Non esiste un modo standard per risolvere problemi come questo; come programmatore, ci si aspetta che tu sia abbastanza abile da capire il suo modo di affrontarlo.
  • Anche un sistema operativo può essere facile da usare. Assicurati di aggiungere funzionalità intuitive, rendendole parte integrante del tuo design.
  • Non unirti i forum OSDev.org e iniziare a porre domande ovvie. Risulterà semplicemente in "Leggi il manuale" risposte. Dovresti provare a leggere Wikipedia e i manuali dei vari strumenti che desideri utilizzare.
  • Non iniziare un progetto di sistema operativo per iniziare ad apprendere la programmazione. Se non conosci già C, C++, Pascal o qualche altro linguaggio adatto, inclusa la manipolazione dei puntatori, la manipolazione dei bit di basso livello, lo spostamento dei bit, il linguaggio assembly in linea, ecc., non sei pronto per lo sviluppo del sistema operativo.
  • Se fai qualcosa di sconsiderato, come scrivere byte casuali su porte I/O casuali, bloccherai il tuo sistema operativo e potresti (in teoria) friggere il tuo hardware.

Consigliato: