# 86-DOS

L'86-DOS (in precedenza QDOS, acronimo di Quick and Dirty Operating System) è un sistema operativo per dischi scritto da Tim Paterson presso Seattle Computer Products (SCP) per i computer Gazelle basati sul microprocessore Intel 8086. L'86-DOS fu acquistato da Microsoft che lo rinominò MS-DOS. Successivamente l'MS-DOS fu dato in licenza ad IBM, che lo distribuì come PC-DOS insieme al suo nuovo PC.

## Storia

Nel mese di giugno del 1979 Seattle Computer Products presentò il primo personal computer basato sul processore Intel 8086/8088, il Seattle Computer Gazelle. Il computer fu messo in commercio nel mese di novembre dello stesso anno ma senza un vero sistema operativo per dischi a corredo: la macchina era offerta con solo una versione dell'interprete Microsoft BASIC sviluppato da Microsoft stessa per l'8086 sulla base di un prototipo dell'hardware di SCP. Ma SCP voleva offrire un vero sistema operativo per il computer e la sua scelta era ricaduta sul CP/M-86, da tempo annunciato da Digital Research. Ma la data di apparizione di questo sistema operativo non era certa per cui SCP non poteva aspettare oltre e decise di svilupparlo in proprio.
Il compito fu affidato a Tim Paterson, che produsse in 4 mesi un sistema operativo con un'interfaccia di programmazione compatibile con quella del CP/M, apportando allo stesso tempo delle modifiche e dei miglioramenti al sistema. Ad esempio, il CP/M teneva in cache le informazioni sulle modifiche al file system per aumentare la velocità ma ciò richiedeva all'utente di aggiornare lo stato del disco prima di rimuoverlo, pena il danneggiamento del file system stesso. Paterson scelse di seguire la meno performante ma più sicura strada di aggiornare il disco ad ogni operazione. Un altro caso era il comando PIP (Peripheral Interchange Program) deputato alla copia dei file, che supportava diversi nomi di file speciali che facevano riferimento a dispositivi hardware come stampanti e porte di comunicazione. Paterson inserì questi nomi speciali nel sistema operativo come interfaccia logica così che tutti i programmi li avrebbero potuti usare. Dette poi al suo programma per la copia il più intuitivo nome COPY. Invece che implementare il file system del CP/M, utilizzò il FAT che il Microsoft BASIC-86 usava per salvare i file, così da mantenere la compatibilità con i sistemi che SCP aveva già venduto.
Il sistema fu commercializzato a partire dal mese di agosto del 1980 come QDOS, sigla che stava per "Quick and Dirty Operating System" ossia "sistema operativo sporco e veloce".
Prima della fine dell'anno, il sistema fu migliorato e la nuova versione fu commercializzata come 86-DOS.
L'86-DOS fu studiato per avere una struttura dei comandi ed un'interfaccia di programmazione delle applicazioni che imitava quella del sistema operativo CP/M di Digital Research così da rendere facile la conversione di applicazioni CP/M per l'86-DOS.
L'86-DOS fu in gran parte una riprogettazione a 16 bit del sistema operativo CP/M di Digital Research, che all'epoca era il più diffuso sistema operativo a 8 bit. Il sistema fu scritto anche interamente in assembly x86 per avere il massimo dell'efficienza e della velocità.

## Microsoft e IBM

Verso la fine del 1980 IBM stava completando lo sviluppo di quello che poi sarebbe divenuto l'IBM Personal Computer. Il CP/M era all'epoca il più famoso sistema operativo, ed IBM pensava che questo sistema operativo sarebbe stato la scelta giusta per rendere la propria macchina competitiva. Alcuni rappresentanti di IBM decisero quindi di far visita a DR per discutere della possibilità di ottenere il CP/M in licenza ma DR non accettò la proposta di 250.000 dollari che IBM fece per acquistare una licenza senza limiti di copie. DR infatti negoziava solo licenze basate sul classico sistema a royalty.
IBM contattò allora la Microsoft e Bill Gates menzionò l'esistenza dell'86-DOS, ottenendo da Jack Sams, rappresentante di IBM, il parere favorevole a contattare SCP per ottenere quel sistema operativo.

## MS-DOS e PC-DOS

Microsoft acquistò da SCP nel dicembre del 1980 una licenza non esclusiva dell'86-DOS per 25.000 dollari. Nel maggio del 1981 Microsoft assunse Paterson per effettuare la conversione del sistema per il più economico processore Intel 8088, che sarebbe stato usato nei primi PC di IBM, e per la specifica linea di periferiche del computer. Nel luglio del 1981, circa 1 mese prima della messa in commercio del PC di IBM, Microsoft acquistò tutti i diritti dell'86-DOS da SCP per 50.000 dollari. Il sistema fu ribattezzato MS-DOS.
L'86-DOS/MS-DOS rispondeva alle esigenze di IBM: sembrava il CP/M ed era facile convertire gli esistenti programmi per il CP/M per farli girare su di esso grazie al comando TRANS, che eseguiva la trasformazione del sorgente dal linguaggio macchina dell'Intel 8080 a quello dell'8086. Microsoft dette così in licenza ad IBM il sistema operativo, che lo distribuì come PC-DOS 1.0. Questa licenza non era esclusiva e permetteva anche a Microsoft di vendere il DOS ad altre società, cosa che fece distribuendo il sistema ai produttori di computer compatibili IBM PC come MS-DOS.
L'accordo che Bill Gates ottenne con SCP si rivelò così vantaggioso per la sua società che SCP, in seguito, denunciò la Microsoft per comportamento fraudolento e ricevendo nel 1986 il pagamento di un risarcimento pari a 1 milione di dollari.

## EDLIN

Nel 1982, IBM chiese a Microsoft di sviluppare una versione del DOS che supportasse un disco rigido. Microsoft mise in commercio una versione quasi completamente riscritta del sistema operativo che divenne il PC-DOS 2.0 del 1983. In esso quasi nulla era rimasto dell'originario QDOS: solo il suo primitivo editor Edlin fu lasciato, e restò nel sistema fino al 1991, quando Microsoft mise in commercio l'MS-DOS 5.0, che includeva un editor basato su un'interfaccia testuale basata sul QBasic. L'EDLIN può essere ancora usato sulle macchine attuali dato che è integrato nell'ambiente di emulazione DOS dei sistemi Windows.

## Disputa sulla proprietà intellettuale

Quando il fondatore di Digital Research, Gary Kildall, esaminò il PC-DOS e vi trovò duplicata l'interfaccia di programmazione del suo CP/M, decise di denunciare IBM, che a quel tempo dichiarava che il PC-DOS era un suo prodotto. I suoi legali lo sconsigliarono però di intentare una causa legale perché la legge di allora non era sufficientemente chiara.
Kildall decise comunque di contattare IBM, la quale rispose con la proposta di offrire alla sua clientela, come condizione per non finire in tribunale, la versione per Intel 8086 del CP/M come alternativa al suo PC-DOS.
La controversia è continuata, sottolineando le similarità fra i due sistemi. Probabilmente la rivelazione più clamorosa viene da Jerry Pournelle, che afferma che Kildall in persona gli dimostrò come il DOS contenesse il CP/M inserendo un comando al prompt del DOS che visualizzò il nome di Kildall. Pournelle però non ha mai rivelato quel comando e nessuno ha quindi potuto verificare le sue affermazioni. Un libro su Kildall del 2004 afferma che egli usò un messaggio cifrato per dimostrare che altre società avevano copiato il CP/M ma non dice se tale messaggio fu trovato o meno nel DOS. Le memorie di Kildall (citate come fonte del libro) puntano invece il dito sulle similitudini dell'interfaccia di programmazione. Paterson ha sempre sostenuto che l'86-DOS sia stato un software scritto completamente da lui senza aver usato nessuna parte del codice del CP/M.
Paterson, dopo la pubblicazione del libro, ha citato gli autori e gli editori per diffamazione. Il giudice che ha esaminato il caso ha respinto la querela presentata da Paterson perché, a suo dire, egli non è stato in grado di fornire prove concrete sul fatto che il capitolo su Gary Kildall sia inesatto e quanto dichiarato dall'autore sono opinioni protette dal I emendamento della Costituzione degli Stati Uniti d'America e non provatamente false.

## Versioni

| QDOS v0.1 | Luglio 1980 | Versione del S.O. completata circa per metà. |
| QDOS v0.11 | Agosto 1980 | Versione con correzione di bug, commercializzata. |
| 86-DOS v0.33 | Dicembre 1980 | Prima versione distribuita agli OEM ed alla Microsoft. |
| 86-DOS v0.60 | | Il file DOSIO.ASM presente nella versione 1.00 menzionava che esso era il "sistema di I/O per l'86-DOS in versione 0.60 e successive." |
| 86-DOS v1.00 | Aprile 1981 | Chiamate di sistema modificate. |
| 86-DOS v1.14 | Luglio 1981 | L'86-DOS viene denominato MS-DOS il 27 luglio 1981. Il sistema diventa anche il PC-DOS 1.0. |
| 86-DOS v1.24 | Marzo 1982 | La versione 1.24 diventa il PC-DOS 1.1 e l'MS-DOS 1.25. |

## Citazione

«We needed an operating system at Seattle Computer for our own computers and I wanted to do one. So we decided to go for it. I was waiting for Digital [Research] to come out with CP/M-86. I thought they would have it real soon. If they had beat me I wouldn't have taken the trouble. I had always wanted to write my own operating system. I've always hated CP/M and thought I could do it a lot better.»
«Noi di Seattle Computer avevamo bisogno di un sistema operativo per i nostri computer ed io volevo scriverne uno. Così decidemmo di provarci. Mi aspettavo che Digital Research mettesse in commercio il CP/M-86. Pensavo che lo avrebbero fatto molto presto. Se mi avessero battuto non mi sarei preso la briga di farlo. Avevo sempre odiato il CP/M e pensavo che avrei potuto fare qualcosa di molto meglio.»
(Tim Paterson, The Roots of DOS)
«IBM wanted CP/M prompts. It made me throw up.»
«IBM voleva i prompt del CP/M. Mi venne da vomitare.»
(Tim Paterson, The Roots of DOS)