MikeOS: un sistema operativo open source per PC x86

Mike Saunders, assieme a un team ristretto di sviluppatori, ha realizzato MikeOs, un sistema operativo per PC con architettura x86 interamente scritto in assembler. Il progetto (open-source), ha sopratturro finalità didattiche, e include diverse applicazioni pronte per l'uso oltre alla possibilità di essere ulteriormente espanso e modificato.

MikeOs è un sistema operativo scritto interamente in linguaggio assembler per i sistemi con architettura x86 (quindi la maggior parte dei personal computer). Si tratta fondamentalmente di un progetto con finalità didattiche, con l'obiettivo di mostrare come funziona realmente un sistema operativo, potendone analizzare in dettaglio i meccanismi interni (per i più audaci, esiste anche la possibilità di modifcare il codice sorgente del sistema, ricompilarlo, e creare una nuova immagine dello stesso). Il progetto è inoltre corredato da un'estesa e dettagliata documentazione (purtroppo al momento disponibile solo in lingua inglese), ed il codice è ampiamente commentato. Le caratteristiche principali di MikeOs si possono riassumere nel modo seguente:

  • visualizzazione in modalità testo con interfaccia basata su menu
  • possibilità di avvio da floppy disk, CD-ROM, o chiavetta USB
  • oltre 60 chiamate di stema (system call) utilizzabili dai programmi applicativi (anche forniti da terze parti)
  • applicazioni già disponibili quali file manager (visualizzato nell'immagine seguente), editor, visualizzatore di immagini, giochi, ecc.
  • interprete per il linguaggio BASIC con 42 istruzioni
  • riproduzione sonora tramite l'altoparlante del PC (speaker)
  • gestione della porta seriale

E' importante sottolineare che il codice (sviluppato dal team di sviluppatori guidato da Mike Saunders) è completamente open-source (con una licenza di tipo BSD), ed è scaricabile a questo sito. La versione più recente di MikeOs, la 4.3, è stata rilasciata il 24 febbraio 2012, e include l'aggiunta di numerose istruzioni all'interprete BASIC, nuovi programmi, e altre modifiche.

Seguendo il link visibile in fondo all'articolo, è possibile scaricare non solo il sistema operativo completo e diversi programmi applicativo per lo stesso, ma anche tutto il codice sorgente (si parla di oltre 75000 linee di codice assembler). L'immagine di MikeOs è disponibile per diversi tipi di supporti di memoria, come floppy disk, chiavette USB, e CD-ROM. E' inoltre possibile eseguire il boot di MikeOs direttamente da queste immagini, oppure utilizzare un emulatore per PC come QEMU, VirtualBox oppure VMware. I requisiti di sistema sono tutt'altro che stringenti: è sufficiente disporre di un PC 386, 1MB di memoria RAM, e una comune tastiera.

Quando MikeOs viene avviato, compare una finestra nella quale è presentata la lista di programmi disponibili sotto forma di una normale lista (come indicato nell'immagine seguente). Utilizzando i tasti cursore e il tasto Enter è possibile selezionare il programma da avviare (.BIN oppure .BAS). Dalla linea di comando è inoltre possibile utilizzare il comando DIR per visualizzare la lista delle applicazioni e dei file, e HELP per visualizzare i comandi nativi del sistema operativo.

Un programma viene lanciato inserendo nella linea di comando il nome completo (ad esempio EDIT.BIN), oppure soltanto il nome senza l'estensione (EDIT). Sono inclusi comandi tipici per la gestione dei file quali COPY, REN, DEL e SIZE, il cui significato è intuitivo.

MikeOs include diversi programmi per eseguire svariate attività e dimostrare le funzionalità del sistema. La lista completa è la seguente:

  • EDIT.BIN - è un semplice editor di testo a schermo intero (vengono gestiti solamente file in formato Unix)
  • EXAMPLE.BAS - è un programma dimostrativo relativo alle funzionalità offerte dall'interprete BASIC (apritelo con EDIT.BIN per visualizzarne il contenuto)
  • FILEMAN.BIN - programma di gstione dei file che consente di eliminare, rinominare, e copiare dei file sul supporto di memoria (quest'ultimo deve naturalmente essere di tipo scrivibile)
  • HANGMAN.BIN - è il classico gioco dell' "impiccato", in cui bisogna indovinare il nome di diverse città sparse in tutto il mondo
  • MEMEDIT.BAS - potente e colorato editor della memoria
  • DRAW.BAS - programma per disegni in formato ASCII
  • CALC.BAS - semplice calcolatrice
  • MUNCHER.BAS - gioco simile a snake (utilizza i tasti W, A, S, e D)
  • ADVNTURE.BAS - un gioco di avventura in formato testo
  • KEYBOARD.BIN - è una testiera musicale in cui l'ultima riga di tasti viene utilizzata per generare diversi tipi di suoni (premere Q per uscire)
  • MONITOR.BIN - è un programma per monitorare l'esecuzione del codice macchina
  • SERIAL.BIN - programma di comunicazione sulla porta seriale, simile a Minicom
  • VIEWER.BIN - programma per la visualizzazione di file in formato testo e immagini in formato PCX 320x200x16 (come ad esempio SAMPLE.PCX)

Sul sito del progetto è inoltre presente il link ad altri programmi e applicazioni scritti da terze parti (tutti scaricabili liberamente). Tra questi, occorre notare un progetto per Arduino, nel quale si utilizza una board Arduino Diecimila per interfacciarsi con il sisema operativo MikeOs (in esecuzione su un PC dedicato).

Come detto precedentemente, è possibile utilizzare MikeOs come un normale emulatore di terminale tramite l'applicazione SERIAL.BIN. Questa permette di collegare un sistema MikeOs ad un altro sistema (ad esempio una macchina Unix) e di controllare quest'ultima tramite MikeOs. E'sufficiente un cavo seriale null-modem e un normale programma di emulazione terminale. Di default, MikeOs configura la porta seriale con i parametri 9600 baud, nessuna parità, 8 bit dati, 1 bit di stop. Se si desidera modificare queste impostazioni, è sufficente modificare il file source/features/serial.asm e ricompilare il sistema operativo MikeOs come descritto nella guida System Developer Handbook.

Sito web MikeOs

Scarica subito una copia gratis

3 Commenti

  1. Avatar photo Emanuele 18 Agosto 2012
  2. Avatar photo claudyus 29 Gennaio 2013
  3. Avatar photo Giovanni Di Maria 14 Marzo 2016

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend