Un grazie speciale a Gaz (Gareth Owen) per avermi permesso di ospitare nella mia pagina i suoi sorgenti, leggendoli potrete imparare molto su cosa deve fare un OS nei suoi primi momenti di vita. I seguenti microkernel sono tutti in codice sorgente (per la maggioranza C/C++), alcuni sono anche disponibili in versione eseguibile.

GazOS

L'intero progetto è scritto in C, tranne il bootloader e poche altre cose. Interessante l'implementazione del FileSystem molto chiara e comprensibile, da prendere come spunto per realizzare un proprio fs o, magari, per emularne uno vero !!!!

status
  • Inizializzazione del Protected Mode
  • 8259 PIC handling routines
  • Video Driver
  • Keyboard Driver
  • 8254 Timer driver
  • Floppy Driver
  • Supporto per il "GazFS"
  • CPU Speed detection and memory counter
files

 

Finalmente una progetto di spicco della comunità OpenSource approda sulla OSZone!!! Devo dei ringraziamenti interminabili a Tudor Hulubei un personaggio davvero in gamba che ha fatto DA SOLO un sistema operativo conforme allo standard POSIX.1 (IEEE 1003.1 1988), con il porting dell'ambiente di sviluppo GNU C/C++ COMPLETO......cosa dire di più!?! Una persona da prendere come esempio! Il sistema operativo prende il nome di THix e vi consiglio di visitare la sua pagina e magari di mandargli una mail di apprezzamento, se la merita davvero!
Molto gentilmente Tudor mi ha dato il permesso di ospitare il suo progetto e di tradurlo, quindi data la vastità dell'argomento trattato dedicherò a THix un'intera sottosezione del mio sito. Potrete imparare moltissimo dai suoi sorgenti, e dalla pagina che spiega il funzionamento stesso di THix. Cosa aspettate adesso? Coraggio, al lavoro!!

THix

Il sistema operativo di Tudor Hulubei,conforme allo standard POSIX.1(IEEE1003.1 1988).
THix è stato sviluppato su piattaforma LINUX usando il compilatore GCC, ed è distribuito sotto la GNU Public Licence, quindi se ancora non la conoscete dategli una lettura!

status Al momento in cui sto scrivendo il sistema operativo è completamente funzionante. Molti programmi FREE sono stati compilati con successo e girano sotto THix, compresa tutta la suite di tools di sviluppo del compilatore GNU C/C++.Non è ancora pronto il supporto per il networking, e gli unici drivers disponibili sono:
  • floppy disk
  • (E)IDE hard disk
  • stampante
  • Terminali virtuali (ALT+1....12)
  • memoria del sistema
  • memoria del kernel
  • device "null"

Il formato degli eseguibili è ancora il famoso a.out che è molto difficoltoso da mantenere a causa delle sue molte varianti, l'autore pensa di cambiarlo nel più versatile ELF ma come sempre il tempo è tiranno.....in complesso il sistema è molto stabile, provare per credere!

files
  • THix-demo.bin.gz 569Kb Demo su floppy del sistema operativo, una volta scompattato deve essere "dumpato" su floppy o con rawrite -f thix-demo.bin -d a: (sotto DOS) oppure con dd -i thix-demo.bin -o /dev/fd0 (sotto LINUX).Fate partire il PC con il disco così preparato e alla richiesta di login digitate root per entrare come superuser oppure guest per loggarsi come utente ordinario. La password di root è root ,quella di guest è guest Se siete curiosi e volete installare tutta la distribuzione di THix (incluso il compilatore GCC e le relative utility), scaricate i sorgenti e leggete le istruzioni contenute nel file INSTALL.
  • THix-0.37.tar.gz 418Kb I sorgenti dell'intero sistema da compilarsi con GNU C/C++
  • tfs-0.2.1.tar.gz 17Kb I sorgenti dell'utility THix File System, che serve a ripristinare il file system di Thix in caso di problemi.

I seguenti sono i file immagine dei dischi della distribuzione completa di THix

 

 traduzione

LEGGI
ThixOS.txt

SCARICA
ThixOS.zip

THix ha una propria HOMEPAGE scritta in ottimo inglese a cui fa riferimento, altrimenti potete consultare la mia fedele traduzione (sarà pronta a breve), che segue passo passo quello che Tudor ha imparato e implementato costruendo il suo clone Unix (devo dire molto ben fatto!)....Dopo MILLENNI finalmente metto in rete una parte della traduzione che ho fatto, mi scuso con tutti quanti per la terribile attesa, che comunque dovrà ancora prolungarsi per poter vedere tutta la traduzione pronta..i'm sorry! :P )
Copyright © 1999,2000 Tudor Hulubei (tudor@cs.unh.edu)
Translated by MrCODE (under permission of the author)

 

TOPSY A Teachable Operating System.
Implementazione di un piccolo e semplice microkernel a scopo di insegnamento, realizzato presso lo Swiss Federal Institute of Technology
files

 

LittleOS Un sistema operativo allo stato embrionale da cui si può imparare molto, specialmente nella gestione della memoria. Sviluppato e mantenuto sotto licenza GNU e creato da Lacroix Pascal 
files

 

TINOS Un sistema operativo scritto in C giunto alla sua build 206, supporta pienamente il FAT filesystem, IO asincrono (poco testato), ed ha una ricca libc anche se non ancora completa.
files

    

PICOS Questa ragazzi e' davvero una chicca, un bellissimo OS REAL TIME scritto per girare nei microcontrollori Microchip della famiglia PIC16F84 e simili (16c84, 16f84a, 16f876 etc..).
I PIC sono dei piccoli processori molto interessanti, vi consiglio di visitare il sito della MICROCHIP per reperire maggiori informazioni.
files

    

JOHNFINE OS-TOOLS

Una raccolta di esempi di codice asm pmode veramente chiara e completa. Anche se non rappresenta un vero e proprio OS è comunque un'ottima base per crearne uno da soli. Le spiegazioni sono chiare ed esaurienti, il codice si segue benissimo e permette di cominciare a "ciacciare" da subito col pmode.Potete compilare questi programmi usando il NASM.

VLoad04.zip

9

Loader di immagini pmode (non grafiche ovviamente;) Carica una pagina di 64Kb di codice ed usa le chiamate VCPI per passare il controllo della macchina a tale codice, ottimo per non dover reebotare ogni volta che volete provare il codice modificato. (JohnFine asm page)

TaskTest1.zip

26

100 task che girano simultaneamente (necessita del Vload04.zip) Ogni task ha la sua TSS privata, una page directory privata, una page table privata ed una pagina riservata allo stack. Tutti i task condividono lo stesso codice (IDT e GDT compresi), Il progr. modifica solo il TSS nella GDT per puntare ogni volta al task in esecuzione. (JohnFine asm page)

V86test2.zip

19

Piattaforma di base per scrivere uno nuovo OS. Supporta una copia del BIOS o DOS+BIOS in modalità V86, così potete continuare ad usare gli int del BIOS per tastiera, floppy etc. supporta anche il (fantastico) filesystem DOS FAT12. (JohnFine asm page) 

V86call3.zip

19

Esempio generico utile per sviluppare un nuovo pmode OS. Nato principalmente con lo scopo di mostrare l'uso dell chiamate BIOS all'interno di codice in modalità V86. Contiene un file di testo V86.txt che spiega benissimo l'approccio da usare per chiamare routine BIOS dall'interno del vostro codice pmode. (JohnFine asm page) 

pmcom01.zip

6

Piccolo programma .com che switcha in modalità raw 32 pmode, carica una IDT, stampa un messaggio e si blocca. Dimostra come passare in modalità protetta partendo dalla modalità reale (spunto per un loader?)
8254ex04.zip 21 Esempio di uso del timer 8254 per realizzare uno scheduler real-time. L'algoritmo usa intervalli di tempo dinamici per far generare interrupts al 8254, e un heap di priorità per gli eventi pendenti.(JohnFine asm page) 
8254ex05.zip 23 Altro esempio come sopra (JohnFine asm page) 

 

BOCHS Questo non e' un sistema operativo, ma un emulatore FREE di PC...si avete capito bene, un programma che "fa finta" di essere un pc. La sua utilita' e' presto detta: permette di testare il vostro personalissimo OS senza dover tutte le volte crearsi un floppy e riavviare il PC. La vostra MainBoard vi ringraziera'! :)
Attenzione, la release che provai tempo fa' aveva dei problemi nella gestione del NMI, quindi se il vostro bootcode crasha, prima di impazzire a cercarne la causa, togliete le istruzioni asm per la gestione dell'NMI. Nelle ultime release questo problema non dovrebbe piu' sussistere.
un buon emulatore di PC per darvi una mano nei vostri esperimenti.
  • Niente files, ma un bel link alla pagina del BOCHS (esiste sia per Win32 che per Linux), cosi' potrete scaricarvi l'ultima release fresca fresca di compilatore :)
  • BOCHS32

    

 

 

Torna alla main page! Torna alla pagina principale