MenuetOS: sistema operativo in assembly

MenuetOS

MenuetOS è un sistema operativo per PC sviluppato interamente in assembly a 64 bit, con l’obiettivo dichiarato di ottenere codice più veloce, compatto e diretto rispetto a quello prodotto con linguaggi di più alto livello. Il progetto rappresenta un caso quasi unico nel panorama dei sistemi operativi moderni: un kernel e un ecosistema applicativo progettati senza dipendere da UNIX, POSIX o da altri sistemi preesistenti.

In questo articolo analizziamo l’architettura, le caratteristiche tecniche e le scelte progettuali di MenuetOS, evidenziando gli aspetti che lo rendono interessante per sviluppatori, appassionati di sistemi operativi e programmatori a basso livello.

MenuetOS: Un sistema operativo scritto interamente in assembly

La caratteristica distintiva di MenuetOS è la sua implementazione completa in linguaggio assembly x86-64 (per la versione a 64 bit) e x86 (per quella a 32 bit). Questa scelta comporta diversi vantaggi:

  • Controllo totale sull’hardware

  • Codice estremamente compatto

  • Prestazioni elevate

  • Riduzione dei livelli di astrazione

Il kernel è scritto in assembly puro, e questo permette un’ottimizzazione fine delle routine critiche, come la gestione dei processi, dello scheduler e della grafica. In particolare, la GUI con trasparenze viene calcolata direttamente dalla CPU x86-64 principale, evitando problemi di compatibilità con specifiche schede grafiche.

Dal punto di vista della distribuzione, MenuetOS è estremamente leggero: l’intero sistema può essere contenuto su un singolo floppy disk e può avviarsi anche da CD o unità USB. Questo dato, da solo, offre una misura concreta dell’efficienza del codice.

Architettura indipendente da UNIX e POSIX

Uno degli aspetti più rilevanti del progetto è l’assenza di radici in UNIX o negli standard POSIX. MenuetOS non è un derivato, né un sistema compatibile a livello architetturale con questi standard.

L’obiettivo di design dichiarato è stato quello di eliminare i livelli intermedi tra le varie componenti del sistema operativo. Nei sistemi tradizionali, tali livelli possono:

  • Aumentare la complessità

  • Rendere più difficile il debugging

  • Introdurre potenziali bug

  • Ridurre le prestazioni

MenuetOS adotta un’architettura più diretta, in cui il dialogo tra kernel e applicazioni è progettato per essere semplice ed efficiente. Questo approccio rende il sistema particolarmente interessante dal punto di vista didattico e sperimentale, perché consente di osservare più chiaramente le interazioni tra hardware e software.

Multitasking, SMP e scheduler ad alta frequenza

Tra le caratteristiche tecniche principali troviamo:

  • Multitasking pre-emptive

  • Supporto real-time

  • Supporto multiprocessore (SMP) fino a 32 CPU

  • Protezione ring-3

  • Multithreading

Lo scheduler può operare a frequenze superiori a 1000 Hz, con possibilità di arrivare fino a 100000 Hz per la gestione dei processi. Questo consente latenze audio inferiori al millisecondo, un risultato notevole per un sistema così compatto.

Il supporto ai processi time-critical permette l’esecuzione ininterrotta su una CPU specifica, caratteristica utile in applicazioni real-time. È inoltre presente il pre-empting tra kernel e user mode, anche in configurazioni SMP.

Dal punto di vista della scalabilità, il sistema supporta fino a 32 processori e fino a 32 GB di RAM (come indicato negli aggiornamenti delle versioni M64).

Interfaccia grafica e risoluzioni supportate

MenuetOS integra una GUI reattiva con supporto a risoluzioni fino a 1920×1080 e 16 milioni di colori. Le finestre applicative sono:

  • Free-form

  • Trasparenti

  • Personalizzabili (skinnable)

  • Gestibili con drag & drop

L’interfaccia è progettata per essere facilmente controllabile tramite assembly. Questo punto è coerente con la filosofia generale del sistema: fornire un ambiente completo ma ottimizzato per la programmazione a basso livello.

Struttura delle applicazioni e sviluppo

Sebbene la struttura delle applicazioni non sia riservata esclusivamente all’assembly, l’intero design è pensato per la programmazione in assembly a 64 o 32 bit.

L’header delle applicazioni può essere prodotto anche con altri linguaggi, ma l’ecosistema è fortemente orientato all’uso dell’assembly per ottenere:

  • Codice più piccolo

  • Minore consumo di risorse

  • Maggiore velocità di esecuzione

MenuetOS include un IDE con editor e assembler integrati, semplificando lo sviluppo nativo. Inoltre, Menuet64 è in grado di eseguire applicazioni sviluppate per Menuet32, garantendo una certa continuità tra le versioni.

Stack di rete e servizi inclusi

Il sistema include uno stack TCP/IP con supporto Loopback e driver Ethernet. Sono presenti applicazioni client e server, tra cui:

  • Email

  • FTP

  • HTTP

  • Client scacchi

  • Server FTP, MP3 e HTTP

Questo dimostra che, pur essendo estremamente compatto, MenuetOS non è un semplice esperimento accademico, ma un sistema dotato di funzionalità complete di rete.

Tra i driver e le funzionalità hardware troviamo:

  • USB 2.0 (Storage, Printer, Webcam, TV/Radio)

  • USB 1.1 (Keyboard e Mouse)

  • Supporto audio con latenze inferiori al millisecondo

  • Supporto Digital TV (DVB-T)

  • Driver Intel Pro/1000 e Realtek 816x/811x

Evoluzione del progetto

Il progetto è attivo da molti anni. Menuet32 risale al 2000 ed è rilasciato sotto GPL, mentre Menuet64 (2005) è distribuito sotto una licenza dedicata consultabile sul sito ufficiale.

Tra gli aggiornamenti più recenti si segnalano:

  • M64 1.58.40 (12.02.2026): miglioramenti, bugfix e aggiunte

  • M64 1.53.60 (26.08.2024): inclusione di MPlayer nell’immagine disco

  • M64 1.52.00 (24.07.2024): layer Linux parziale (X-Window/Posix/Elf)

  • M64 1.50.80 (08.05.2024): Fasm-G e numerose applicazioni 32 bit

La presenza di un layer Linux parziale è un elemento interessante, perché introduce compatibilità con X-Window, POSIX ed ELF, pur mantenendo l’architettura indipendente del sistema.

Licenze e risorse ufficiali

Menuet64 è rilasciato sotto una licenza specifica disponibile all’indirizzo:
https://www.menuetos.net/m64l.txt

Menuet32 è distribuito sotto GPL:
http://www.menuetos.net/license.htm

Per approfondimenti, documentazione, screenshot e download è possibile consultare il sito ufficiale:
https://www.menuetos.net/

È inoltre disponibile un video dimostrativo su YouTube:
https://youtu.be/2s0T9kKJ3BU

Conclusioni

MenuetOS rappresenta un progetto fuori dagli schemi nel panorama dei sistemi operativi moderni. La scelta di sviluppare interamente il kernel e l’ecosistema in assembly a 64 bit comporta vantaggi in termini di prestazioni e compattezza, ma richiede competenze tecniche avanzate.

La sua indipendenza da UNIX e POSIX, il supporto SMP fino a 32 CPU, lo scheduler ad alta frequenza e l’interfaccia grafica integrata dimostrano un livello di maturità significativo.

Per sviluppatori interessati alla programmazione a basso livello, alla progettazione di kernel o allo studio di architetture alternative, MenuetOS costituisce un caso di studio concreto e funzionante, capace di mostrare cosa sia possibile ottenere quando si riducono al minimo gli strati di astrazione tra software e hardware.

Iscriviti ai nostri gruppi Telegram

Link utili

Seguici per non perdere le prossime novità!

Simone Candido è un ragazzo appassionato del mondo tech nella sua totalità. Simone ama immedesimarsi in nuove esperienze, la sua filosofia si basa sulla irrefrenabile voglia di ampliare a 360° le sue conoscenze abbracciando tutti i campi del sapere, in quanto ritiene che il sapere umano sia il connubio perfetto tra cultura umanistica e scientifica.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.