Microsoft rende open source il DOS più antico: dentro 86-DOS del 1980

Pubblicati i primi listati di 86-DOS e PC-DOS: uno sguardo diretto su sviluppo, errori e tecniche degli anni '80, tra codice assembly e documenti originali.

Una parte rilevante della storia del software di base per PC riemerge grazie a un lavoro di recupero che va oltre il semplice rilascio di codice sorgente. In occasione dell’anniversario dei 45 anni di 86-DOS 1.00, Microsoft ha annunciato la pubblicazione del codice DOS più antico. Parliamo di un’epoca in cui il personal computing muoveva i primi passi concreti, tra la fine degli anni ’70 e l’inizio degli ’80, quando l’hardware limitato imponeva scelte progettuali molto rigorose e spesso definitive.

Nel 2018, l’azienda di Redmond aveva reso disponibili i sorgenti di MS-DOS 1.25 e 2.11; nel 2024 è toccato a MS-DOS 4.0. Il materiale appena pubblicato spinge lo sguardo ancora più indietro: non solo codice, ma anche documentazione tecnica, listing stampati e annotazioni manuali. In pratica, una fotografia diretta del lavoro quotidiano di sviluppo, quando strumenti come sistemi di versionamento distribuiti o ambienti integrati di sviluppo semplicemente non esistevano.

Chi è Tim Paterson e come nasce 86-DOS

Tim Paterson è una figura chiave nella nascita dei sistemi operativi per personal computer. Ingegnere statunitense, lavorava presso la società Seattle Computer Products alla fine degli anni ’70, un periodo in cui il mercato dei microcomputer stava iniziando a strutturarsi ma mancava ancora uno standard software diffuso per CPU Intel 8086.

Il principale contribuito di Paterson fu lo sviluppo di QDOS (Quick and Dirty Operating System): Paul Allen si accordò con Paterson e con Seattle Computer Products per acquisire QDOS (rinominato in 86-DOS) e l’intera società. Era il 1980.

Il progetto nacque anche come risposta indiretta a CP/M, che dominava i sistemi a 8 bit ma non era ancora stato adattato in modo efficace alle nuove architetture a 16 bit. Paterson aveva previsto un insieme di syscall e comportamenti simili a CP/M, così da facilitare il porting delle applicazioni esistenti. Il risultato fu un sistema relativamente semplice ma estremamente pragmatico, scritto quasi interamente in assembly per garantire prestazioni e controllo diretto dell’hardware.

Paul Allen e Bill Gates, dopo aver acquisito i diritti su QDOS/86-DOS, lo adattarono per il primo IBM PC, trasformandolo in PC-DOS (per IBM) e MS-DOS (per il mercato generale).

Dai listati cartacei al codice: come si sviluppava DOS

Nel repository Paterson Listings si trovano le trascrizioni del codice di 86-DOS originariamente stampate e scritte in linguaggio assembly.

I documenti resi pubblici da Microsoft includono il kernel di 86-DOS 1.00, diversi snapshot intermedi del kernel di PC-DOS 1.00 e utility fondamentali come CHKDSK, che esiste ancora ai tempi di Windows 11.  Il dato più interessante è che tra i materiali compare anche il codice dell’assembler stesso, ovvero lo strumento usato per tradurre il sorgente in binario eseguibile.

Lo sviluppo avveniva in un ciclo molto più manuale: si scriveva codice, lo si stampava, lo si analizzava su carta, si correggevano errori a penna e poi si reinserivano le modifiche nel sistema. Un approccio che oggi appare lento, ma che all’epoca rappresentava la normalità, e che contribuiva a produrre codice estremamente compatto e ottimizzato.

Una caratteristica unica di questi materiali è la presenza di versioni intermedie del sistema operativo: non si tratta di release ufficiali, ma di stati di avanzamento ovvero vere e proprie istantanee del lavoro in corso. Si può osservare quando una funzione è stata introdotta, quali errori sono emersi e come sono stati corretti. In un certo senso, si può parlare di una forma primitiva di version control, pur basato su carta e archiviazione fisica.

Archeologia del software: tra OCR e preservazione digitale

Come spiegano Scott Hanselman e Stacey Haffner, recuperare e rendere disponibile il sorgente di 86-DOS 1.00 non è stato un semplice lavoro di scansione.

I listati originali sono stati digitalizzati e sottoposti a processi di OCR per ottenere codice leggibile e analizzabile. Il passaggio ha inevitabilmente introdotto margini di errore, soprattutto considerando la qualità variabile delle stampe originali e la presenza di annotazioni manuali.

Il lavoro ha richiesto quindi una validazione tecnica accurata: confronto tra fonti, correzione manuale e verifica del comportamento del codice ricostruito. Il risultato è un archivio consultabile che conserva non solo il codice, ma anche il modo in cui è stato prodotto.

Perché questi materiali contano ancora oggi

Analizzare questi sorgenti offre indicazioni concrete su come si progettava software in condizioni estreme. L’uso intensivo di assembly x86, l’assenza di astrazioni e la gestione diretta dell’hardware mostrano una disciplina ingegneristica molto diversa da quella attuale.

In pratica, leggere questi listati aiuta a capire perché alcune scelte architetturali sono rimaste per decenni. Molte convenzioni di basso livello presenti ancora nei sistemi moderni derivano proprio da queste prime implementazioni.

C’è anche un aspetto più critico: la disponibilità del codice storico permette di studiare vulnerabilità strutturali e limiti progettuali originari. Alcuni pattern di sicurezza, o la loro assenza, affondano le radici in questo periodo. Non si tratta solo di curiosità storica, ma di un’occasione concreta per comprendere meglio le fondamenta del software contemporaneo.

Accesso pubblico e valore per la ricerca

I materiali sono stati resi disponibili con licenza MIT, rendendoli accessibili a ricercatori, appassionati e sviluppatori. Questa scelta facilita l’analisi e la sperimentazione, senza vincoli legali stringenti.

Il progetto non si limita a un repository: include scansioni originali, codice ricostruito e documentazione correlata. Inoltre, parte dei materiali sarà esposta fisicamente presso l’Interim Computer Museum, trasformando questi documenti in veri e propri oggetti storici, grazie alle donazioni di Paterson.

Credit immagine in apertura: Richard A. Cini

Ti consigliamo anche

Link copiato negli appunti