-= Il Progetto =-
Perchè questo progetto ?
Lo scopo
Le tecniche
In che linguaggio programmare ?
L' aiuto di Linux
Le nostre reali intenzioni
Collaboratori
Link
Ideatori: Mr Black, Mr White.
Data della creazione: Sabato, 17 aprile 2004
Data ufficiale del progetto: Domenica, 18 aprile 2004
Prerequisiti essenziali: Ordine, precisione, Gnu Linux, un cervello funzionante
Scopo: Creare un sistema operativo
Musiche ascoltate: Right here, right now; Praise you; One I love; varie di Marilyn Manson; ....
[-=- PERCHE' QUESTO PROGETTO ? -=-]
-Prologo-
Sono circa tre anni che ho il computer, sono circa 2 anni che studio programmazione, è circa una vita che sto cercando di essere il migliore...
-Start-
Il progetto è nato ad opera di due persone le quali non conoscono la parola "Impossibile", Mr Black & Mr White. Esso si presenta molto ambizioso e difficile, ma in fondo è proprio questo che ci esalta. Amiamo la difficoltà e vogliamo mettere alla prova le nostre capacità.
Il progetto si chiama "Black&White-operating system" o più semplicemente "B&Wos"; esso sarà open source e anche se odiamo Windows ed in generale la Microsoft, il nostro intento non è creare concorrenza né con la Microsoft né tanto meno con altre società di software. Cerchiamo solo di apprendere molti più argomenti al fine di aumentare le nostre conoscenze sull' informatica.
Di seguito verrà spiegato lo scopo di B&Wos.
[-=- LO SCOPO -=-]
-Prologo-
In teoria la pratica è come la teoria, ma in pratica non lo è...
-Start-
Lo scopo del progetto è molto semplice: creare un sistema operativo. Per capire al meglio lo scopo chiediamoci cosa è un sistema operativo.
Come disse Linus Torvalds in un' intervista per il documentario "Revolution OS", un sistema operativo di per sé non svolge nessuna funzione, permette solamente di far girare programmi e di interagire con essi. In realtà, infatti, è sbagliato chiamare sistema operativo l' insieme costituito dal sistema operativo stesso e dai programmi preinstallati. E' il kernel il sistema operativo; ma proprio perché da solo non può svolgere nessuna funziona affermiamo che il sistema operativo è costituito dal kernel(il nucleo) e dall' insieme dei programmi. Dunque dovremo creare il kernel e i programmi base affinché un generico utente possa utilizzare tale os.
In rete ci sono molto programmi con licenza GNU e quindi open source, quindi, per quanto riguarda i programmi alcuni li creeremo noi, altri li prenderemo da internet. Il kernel dovrà essere interamente scritto, magari con qualche aiuto del sorgente di Linux.
Di seguito verranno spiegate le tecniche per poter portare al termine il progetto seguendo determinati "passi".
[-=- LE TECNICHE -=-]
-Prologo-
"Comincia dall'inizio e prosegui finché non giungi alla fine: a quel punto fermati." Questo è ciò che Re di Cuori suggeriva al Coniglio Bianco come metodo per raccontare una storia ed è un consiglio valido oggi quanto allora.
-Start-
Il prologo dice più di qualsiasi altra cosa, ma affinché ciò si realizzi dobbiamo seguire dei "passi" logici o più comunemente chiamati STEP.
-Perché questa tecnica?-
Il nostro cervello è un insieme di milioni di neuroni ed è capace di contenere infinite informazioni. E' facile quindi sbagliare, in fondo siamo umani, ma se così fosse non avremo due dei prerequisiti sopra scritti: precisione ed ordine e non possiamo quindi imbatterci nel progetto. Il nostro lavoro deve essere organizzato nella maniera più efficiente possibile cercando, quindi, di commettere pochi errori se non addirittura nessuno.
Gli STEP da seguire sono i seguenti:
1. Ricerca delle informazioni necessarie.
2. Ordinare efficientemente le informazioni raccolte, anche creando delle mappe logiche con programmi specifici.
3. Creare bozze del kernel su carta o software.
4. Creare effettivamente un progetto kernel su carta o software, ma non iniziare a programmarlo.
5. E' utile ritornare agli STEP 1 e 2 per cercare maggiori informazione e modifiche da apportare al progetto kernel, ma non è obbligatorio.
6. Ritornare agli Step 1 e 2 (obbligatorio) affinché si possa eseguire effettivamente il kernel su un computer. Ciò serve per la compilazione e il debug del kernel stesso.
7. Programmare il kernel.
8. Effettuare il debug.
9. Renderlo User-friendly con l' aggiunta di vari programmi base ed un interfaccia grafica.
10. Creare un pacchetto di installazione in modo che il sistema B&Wos si possa installare su un computer.
Di seguito verrà spiegato in che linguaggio programmare.
[-=- IN CHE LINGUAGGIO PROGRAMMARE? -=-]
-Prologo-
Ci sono 10 tipi di persone al mondo, coloro che conoscono il codice binario e coloro che non lo conoscono.
-Start-
Per poter creare un sistema operativo è scontato che bisogna saper programmare e conoscere in generale "La programmazione" piuttosto che la sintassi di linguaggi specifici. E' preferibile e quasi necessario che il kernel sia scritto in C e/o C++ e/o Assembler. Il C e il C++ sono linguaggi di medio-basso livello, mentre l' assembler è un linguaggio a basso livello. Quando si programma bisogna tener conto su quale architettura hardware ci si trova, infatti, il kernel si creerà solamente per uno specifico processore. In generale dovrà funzionare su un Intel e di conseguenza dovrebbe funzionare anche su un AMD. Quindi bisogna conoscere la loro specifica architettura.
-Perché il C, il C++ e l' assembler?-
La definizione di sistema operativo è anche "Software attraverso il quale è possibile gestire con abbastanza facilità l' hardware". Come precedentemente scritto il C, il C++ e l' assembler sono linguaggi a basso livello e di conseguenza sono più portati per la gestione dell' hardware. Non a caso Windows è scritto in C++ e Linux in C. Il C in particolare è definito da molti programmatori adatto per creare Sistemi operativi.
Per facilitare la programmazione di seguito verrà spiegato il motivo per il quale bisogna aver installato un sistema Linux, possibilmente Debian o Red Hat.
[-=- L' AIUTO DI LINUX -=-]
-Prologo-
Bisogna sapere usare Linux per dire di saper usare un computer...
-Start-
Linux è un sistema operativo, disponibile per diverse piattaforme hardware tra cui anche i processori Intel o compatibili. Linux in se stesso è costituito solo dal Kernel, il nucleo centrale del sistema operativo che controlla il funzionamento di tutto il computer. La maggior parte delle applicazioni di contorno al sistema sono sviluppate dalla GNU. Il kernel di Linux è stato ideato da Linus Torvalds, uno studente finlandese. Attualmente contribuiscono allo sviluppo di Linux migliaia di programmatori sparsi su tutta la terra. Tutto il lavoro viene coordinato tramite l'uso di internet. I sorgenti del kernel sono disponibili in rete sia nella versione stabile (che termina con un numero pari), che nella versione di sviluppo (che termina con numero dispari). Il primo rilascio del kernel è avvenuto nel 1991.
Ora che abbiamo detto cosa è linux cerchiamo di capire perché preferirlo a Windows e in cosa può esserci utile.
Uno dei primi programmi per Linux è stato il 'compilatore'. Dunque in tutte le distribuzioni Linux c'è un compilatore C e C++. Il piu famoso compilatore preinstallato è gcc per il linguaggio C e g++ per il C++. Inoltre attraverso lo stesso Linux è possibile apprendere maggiormente i vari linguaggi ed in particolare il C.
Linux dunque è un ottimo ambiente di sviluppo, al contrario di Windows che non ha preinstallato nessun compilatore. AVERE LINUX è ANCHE UNA FILOSOFIA DI VITA...
[-=- LE NOSTRE REALI INTENZIONI -=-]
Come detto precedentemente il progetto è nato solo per la voglia di apprendere e di conoscere. Speriamo ovviamente che si ampli sempre di più collaborando con noi sempre più users.
[-=- COLLABORATORI -=-]
Il numero dei nostri collaboratori cresce di giorno in giorno e l' aiuto di più persone ci farà senz'altro comodo. Non solo per diminuire il tempo di sviluppo, ma anche per poter confrontare le nostre idee al fine di migliorare B&Wos. Se sei interessato a partecipare inviaci un email a black.white_os@infinito.it
Di seguito verranno messi dei link molto utili
[-=- LINK -=-]
http://www.marcopagnanini.it/articoli/os.php (Cosa è un sistema operativo)
http://www.gnu.org/gnu/linux-and-gnu.it.html (Il progetto GNU)
http://www.isinet.it/~marco/unix/index.html (UNIX: introduzione elementare)
http://www.programmazione.it/index.php?entity=earticle&idArticle=306&idArea=28 (Scrivere un sistema operativo)
Grazie per l' attenzione. Per commenti, suggerimenti, per richiedere di partecipare al progetto scrivete a black.white_os@infinito.it
©2004 by Black & White. Onde evitare qualsiasi tipo di confusione se volete apportare modifiche al testo contattare gli autori all' indirizzo sopra indicato
|