MikeOS è un affascinante sistema operativo a 16-bit (la cui compatibilità è discorso che è stato affrontato in precedenza) scritto interamente in linguaggio assembly, progettato per scopi educativi; creato da Mike Saunders (dal quale prende il nome), questo sistema operativo offre un’esperienza unica per coloro che vogliono comprendere in profondità il funzionamento interno di un sistema operativo e apprezzare l’arte della programmazione di livello più basso.
Storia e origini
Caratteristiche principali
Questo curioso sistema operativo si porta appresso delle curiose caratteristiche:
- Linguaggio assembly: MikeOS è scritto completamente in linguaggio assembly x86, il ché significa che il codice sorgente è altamente ottimizzato e offre un controllo completo sulle risorse hardware del sistema.
- Semplicità ed istruzione: Una delle caratteristiche distintive di MikeOS è la sua semplicità, pertanto il sistema operativo è progettato per essere comprensibile anche per chi è alle prime armi nella programmazione di sistemi operativi, offrendo un ambiente didattico ideale.
- Emulatore integrato: MikeOS è accompagnato da un emulatore che consente agli utenti di eseguire e testare il sistema operativo direttamente sul loro computer, senza la necessità di installare nulla sul disco rigido e questo facilita l’esplorazione del sistema senza rischi.
- Piccole dimensioni: Il kernel di MikeOS è notevolmente piccolo, rendendolo adatto per eseguire su sistemi con risorse limitate, pertanto questa caratteristica è particolarmente interessante per chi vuole capire come progettare sistemi operativi efficienti.
Utilizzo e comunità
MikeOS è ampiamente utilizzato come risorsa educativa nelle scuole e nelle università per insegnare i principi fondamentali dei sistemi operativi e la sua comunità attiva contribuisce allo sviluppo continuo e alla condivisione di risorse educative, tutorial e esempi di codice.
Pro e contro
Come tutti i sistemi operativi anche lui si porta dei pro e dei contro appresso.
I pro
- Semplicità didattica: MikeOS è progettato con l’obiettivo di offrire un’esperienza didattica accessibile per chiunque voglia imparare i principi fondamentali dei sistemi operativi. La sua semplicità consente agli studenti di concentrarsi sulla comprensione dei concetti chiave senza essere sopraffatti da complessità inutili.
- Kernel piccolo: La dimensione ridotta del kernel di MikeOS lo rende adatto per eseguire su hardware con risorse limitate. Questa caratteristica è vantaggiosa per coloro che vogliono comprendere come progettare sistemi operativi efficienti, con un’attenzione particolare alle prestazioni.
- Comunità attiva: MikeOS ha una comunità attiva che contribuisce al suo sviluppo continuo. La presenza di tutorial, documentazione e risorse educative online offre un supporto prezioso a chi sta iniziando o vuole approfondire le proprie conoscenze.
- Emulatore integrato: Come detto prima l’emulatore integrato semplifica il processo di test del sistema operativo senza richiedere un’installazione diretta sul disco rigido. Ciò consente agli utenti di sperimentare e comprendere MikeOS senza compromettere il loro sistema operativo principale.
Contro
- Limitazioni hardware: essendo un sistema operativo a 16-bit, MikeOS ha limitazioni intrinseche sulle risorse hardware e non può sfruttare appieno le caratteristiche dei moderni processori a 32 o 64-bit e questo potrebbe renderlo inadatto per applicazioni più complesse o per l’esecuzione su hardware recente.
- Applicazioni limitate: a causa della sua natura didattica e delle sue dimensioni ridotte, MikeOS potrebbe non essere adatto per l’esecuzione di applicazioni complesse o moderne; è orientato principalmente verso lo studio e la comprensione dei concetti di base.
- Curva di apprendimento: la scelta di scrivere un sistema operativo in linguaggio assembly potrebbe presentare una curva di apprendimento significativa per coloro che sono nuovi alla programmazione di basso livello. Questo potrebbe essere un ostacolo iniziale per alcuni utenti.
MikeOS rappresenta una risorsa educativa eccezionale per chiunque desideri apprendere i principi dei sistemi operativi a 16-bit: tuttavia, è essenziale considerare le sue limitazioni hardware e la sua natura didattica prima di decidere se sia la scelta giusta per uno specifico contesto di utilizzo.
Integrazione con Linguaggio BASIC e File BIN in MikeOS
Un aspetto distintivo di MikeOS è la sua stretta integrazione con il linguaggio di programmazione BASIC e l’utilizzo di file con estensione .BAS e BIN; il sistema operativo favorisce la programmazione in BASIC, offrendo una piattaforma amichevole per gli studenti e gli appassionati di programmazione e i file .BAS contengono il codice sorgente in BASIC e possono essere eseguiti direttamente su MikeOS, consentendo agli utenti di scrivere applicazioni e script in un ambiente familiare e intuitivo.
I file BIN, d’altra parte, rappresentano eseguibili binari diretti, consentendo l’integrazione di codice a basso livello scritto in linguaggio assembly, pertanto questa flessibilità permette agli sviluppatori di combinare la potenza di programmazione a basso livello con l’accessibilità di BASIC, ampliando le possibilità di creazione di software personalizzato.
L’utilizzo di file .BAS e BIN riflette l’approccio educativo di MikeOS, poiché facilita la comprensione dei diversi livelli di programmazione, dall’alto livello offerto da BASIC al basso livello rappresentato dal linguaggio assembly e questa combinazione unica di linguaggi di programmazione consente agli utenti di sperimentare, apprendere e creare, mantenendo un equilibrio tra la semplicità didattica e la versatilità nell’esplorazione dei concetti di programmazione di sistemi operativi.
Isolamento da Internet in MikeOS
Una caratteristica distintiva di MikeOS è il suo isolamento da Internet, pertanto a differenza di molti sistemi operativi moderni che incorporano connettività di rete nativa, MikeOS è progettato principalmente come un ambiente chiuso e autonomo.
La mancanza di supporto per la connessione di rete riflette il suo focus principale sull’insegnamento dei concetti di base dei sistemi operativi senza le complicazioni aggiuntive legate alla gestione di connessioni di rete.
Questa scelta di progettazione è in linea con l’obiettivo educativo di MikeOS, concentrandosi sulla comprensione dei principi di base senza distrazioni esterne; gli utenti possono concentrarsi sulla programmazione di sistemi operativi senza doversi preoccupare delle sfide legate alla gestione della rete, rendendo l’esperienza più accessibile per coloro che sono nuovi a questo campo.
Sebbene l’assenza di connettività di rete possa sembrare una limitazione in un contesto moderno, è importante considerare che MikeOS è progettato principalmente per scopi educativi e offre un ambiente isolato in cui gli utenti possono esplorare e apprendere senza le complicazioni aggiuntive della connessione di rete.
Preambolo prima di testare MikeOS
Essendo didattico e per dispositivi molto, ma molto datati (si parla dei primi 386 o 486) a livello prettamente teorico servirebbe un vecchio PC che abbia ancora il lettore floppy disk, tant’è vero che uno dei file da cui è possibile fare il boot su una chiavetta USB o su altri dispositivo è un file estensione .flp (apposito per i floppy disk).
Come puoi vedere dall’immagine, gli autori del sistema operativo ti lasciano dei file dmg, ISO, flp, rar e zip per il boot, senza dilungarmi tanto, facendo un po’ di prove alla fine l’unico a funzionare per il boot su chiavetta era il file .dmg; sì, hai capito bene: per far andare uno dei progetti più open source del pianeta, ho dovuto usare il file tipico del sistema operativo più chiuso del globo terracqueo, ossia macOS.
Dato che Rufus non funzionava ho dovuto usare un particolare software chiamato unetbootin, e provando i file uno ad uno, come detto solo il file .dmg faceva partire correttamente MikeOS.
MikeOS: una panoramica
Una volta eseguito questo passaggio appena descritto il sistema operativo parte piuttosto liscio, nessun inconveniente, tutto va come deve andare.
Tra suoni nostalgici e in PC Speaker e un caricamento rapido (è un sistema a 16-bit, quindi leggero per forza di cose), il sistema operativo arriva finalmente al menù principale; prima di vedere cosa c’è, non aspettarti chissà che grafica, né un eventuale supporto mouse, è volutamente un sistema operativo “scarno” fatto appositamente per apprendere la programmazione, oltre che avere le basi per creare il proprio sistema operativo.
Come puoi vedere da quest’ultimo video il sistema operativo è volutamente minimalista, perché è implicito, come detto all’inizio, che i file .bas (BASIC) o .bin (Binary, quindi in assembly) ce li piazzi in un secondo momento.
Di base il sistema operativo contiene qualche giochino tra cui un “simulatore di vita”, un giochino simile a Snake, un piccolo programma musicale che fa andare il tutto in PC speaker, una sorta di terminale simile a quello di Linux e poco altro, ma nulla vieta di aggiungerci altro previa conoscenza della programmazione in BASIC o Assembly.
Il processore usato come test è un Vortex86SX A9100, che sono processori montati su PC che possono essere utilizzati in una varietà di applicazioni, tra cui controllori industriali, sistemi di automazione, dispositivi medicali, thin client, e altri dispositivi embedded
E infatti come puoi notare da questo video è perfetto per chi vuole approcciarsi al BASIC o all’Assembly.
Conclusioni
MikeOS è molto più di un semplice sistema operativo a 16-bit; è un progetto educativo che ha aperto le porte della programmazione di sistemi operativi a un pubblico più ampio; con la sua semplicità e il suo focus sull’apprendimento pratico, MikeOS è un’opportunità preziosa per coloro che desiderano immergersi nel mondo affascinante e complesso dei sistemi operativi, quindi se stai cercando di approfondire la tua comprensione della programmazione a basso livello e dei sistemi operativi, MikeOS è sicuramente un punto di partenza entusiasmante.