Computer / Informazione / Varie · 17 febbraio 2012 0

Le radici del DOS

Tempo fa ho tradotto per la Wikipedia italiana la voce relativa a Tim Paterson. Per chi non lo sapesse, Paterson è il creatore del QDOS, Quick and Dirty Operating System, un sistema operativo per sistemi 8086 che Paterson scrisse per il computer della ditta presso cui lavorava, la Seattle Computer Products, che commercializzò con il nome di 86-DOS. Nel 1980 questo sistema operativo fu acquistato da Microsoft che, dopo averlo riveduto e adattato, lo concesse in licenza ad IBM con il nome di PC-DOS mentre Microsoft lo distribuì come MS-DOS. Nacque così uno dei più famosi sistemi operativi per computer, che permise alla società di Bill Gates di affermarsi a livello mondiale.

Rileggendo la voce, sono andato a riguardarmi una sua fonte, un’intervista di David Hunter fatta a Paterson e pubblicata nel 1983 come articolo intitolato “The Roots of DOS“, “Le Radici del DOS“. Ve la ripropongo tradotta in italiano.

Le Radici del DOS

di David Hunter


“La vita inizia con un disco rigido”

-Tim Paterson

Non si scrive un sistema operativo senza riuscire a farsi un po’ di esperienza con questa cosa, soprattutto quando il sistema operativo diventa di proprietà di Microsoft Corporation.

Tim Paterson, che ha spesso cambiato lavori e aziende negli ultimi anni, è soddisfatto della sua attuale posizione. E’ alla Seattle Computer, un’azienda che si è fatta un nome nel mercato dei computer S-100 e che ha, grazie a ciò, sviluppato il suo proprio microcomputer, il Gazelle. E’ passato un anno da quando ha lasciato Microsoft. Le esperienze fatte nel realizzare un sistema operativo che in seguito sarebbe divenuto il punto centrale del Personal Computer di IBM e di molti altri computer sono proprio una storia.

Visto e Non Visto. Paterson sta bene. Indossa dei jeans scoloriti. Ha barba e baffi scuri, e mostra spesso un sorriso malizioso. Un programmatore straordinario ed un ingegnere hardware, Paterson ha l’aspetto innocente proprio dei suoi 26 anni.

Lui e quelli come lui formano l’ossatura delle aziende di computer. Non c’è scarsità di uomini d’affari e di commercio nell’industria dei computer, ma ci sono solo pochi programmatori capaci. Tutti gli altri sono rimpiazzabili. Inoltre, in una grossa azienda, i programmatori sono spesso i meno conosciuti, i dipendenti meno apprezzati.

Chi si prende il merito di tutto il codice scritto che c’è in circolazione? Le persone come Bill Gates se lo prendono, e lui è da anni che non scrive più nulla“, dice Paterson.

Paterson è stata una pedina, una pedina di valore, in un gigantesco gioco di scacchi aziendale. E’ stato mosso sulla scacchiera e gli è stato chiesto di eseguire numerosi compiti, alcuni dei quali che preferirebbe dimenticare. E come ogni buona pedina, è stato generalmente leale ed affidabile. Ma sotto sotto ha sempre voluto essere il padrone di sé stesso, di fare le proprie mosse.

Mio padre era un ingegnere elettronico e quando andai a scuola fu la prima cosa che provai a fare“, dice Paterson.

Alle scuole superiori Paterson seguì un corso semestrale di FORTRAN. Lavorò con un 7400, uno dei chip logici della serie TTL. Non apprese però la progettazione da dei buoni libri di testo. “Imparai leggendo e poi sperimentando. Avevo accesso ad un sacco di materiale elettronico a casa.

Mentre era studente all’Università di Seattle a Washington, Paterson conobbe i personal computer. Agli inizi del 1976 il suo compagno di stanza comprò un IMSAI 8080. “Lui ci mise i soldi. Io scelsi il computer e ne curavo l’assistenza”, ricorda Paterson. “Aveva una scheda di memoria da 4K con un chip 8080 e nessun dispositivo di I/O. Potevi giocarci qualche stupido gioco come ‘chase the bit’, che ti divertiva per una quindicina di minuti“.

I giorni dei fili e del saldatore. Dopo quegli anni, Paterson trovò un lavoro come tecnico in un negozio di computer della zona di Seattle. Lì fu testimone oculare dei giorni in cui l’unico modo per possedere un microcomputer era quello di acquistare i componenti e di assemblarselo da sé. Non scherza quando dice che “la vita inizia con un disco rigido“.

Grazie agli studi universitari ed all’esperienza pratica fatta nel negozio, Paterson imparò velocemente. Iniziò quindi a giocare nella progettazione delle sue schede periferiche.

Ebbi modo di conoscere Rod Brock di Seattle Computer perché veniva periodicamente nel negozio. Noi vendevamo le sue schede. In seguito mi chiese di fare da consuletente per Seattle Computer“.

Avevano dei problemi con una scheda di memoria statica da 16K per il bus S-100“, continua Paterson. “Rod Brock mi assunse nel giugno del 1978, per 50 dollari al giorno, per sistemare la scheda. Lasciai quindi il negozio di computer“. Dopo alcune settimane di consulenza, fu assunto come dipendente di Seattle Computer.

Durante le lezioni riguardanti i computer, Paterson si interessò sia ai sistemi operativi sia all’hardware ed ai compilatori. Dopo essersi diplomato nel giugno del ’78, seguì dei corsi di perfezionamento per un altro anno. Ma alla fine perse interesse in essi. “Pensai che fossero troppo orientati alla teoria e non fossero ciò che volessi“.

Presso Seattle Computer lavorò a diversi progetti: la riprogettazione di una scheda di memoria per il bus S-100 lo portò a lavorare a 2 nuove schede di memoria. Le cose cambiarono quando Paterson seguì una conferenza sul chip Intel 8086 alla fine del mese di luglio del 1978.

Mi ero guadagnato il rispetto di Rod Brock perciò mi permisi di dargli un suggerimento. Pensai che fare qualcosa con l’8086 sarebbe stato facile e Brock mi dette il suo consenso“.

Il primo progetto basato sulla CPU 8086 fu terminato alla fine di gennaio. Il prototipo fu pronto nel mese di maggio del 1979. Costruimmo 3 schede, ma non le assemblammo completamente tutte. Contenevano sia degli errori di disposizione che di progettazione, ma riuscimmo ad ottenere 2 prototipi funzionanti“.

Il computer dei giorni di pioggia. Seattle Computer stava accarezzando l’idea di costruirsi un proprio computer, ecco quindi il motivo del progetto della scheda CPU. La società voleva diversificare l’offerta ma non aveva nessun piano di business aziendale.

Quando il prototipo della scheda CPU con l’8086 fu disponibile e funzionante, Seattle fu avvicinata da Digital Research per vedere se il suo CP/M poteva girarci sopra. Anche Microsoft, che si era spostata nell’area di Seattle nel gennaio del 1979, voleva verificare se su quella CPU poteva girarci qualcuno dei suoi programmi. Alla fine del mese di maggio del 1979, Paterson passò in Microsoft per lavorare con Bob O’Rear. In circa una settimana, Paterson convertì i 32K del BASIC Microsoft per l’8086.

La cosa era notevole”, dice Paterson. “Microsoft aveva già sviluppato alcune buone utility, come un cross-assembler da usare con il PDP-10. C’erano alcuni bug ma in sostanza la CPU lavorava e gli strumenti di sviluppo funzionavano“.

Alla National Computer Conference del 1979 a New York, Seattle Computerfu ospite di Microsoft e Lifeboat. Esse mostrarono il BASIC-86, all’epoca l’unico software per l’8086. Seattle Computer iniziò a distribuire quel prodotto con la sua scheda CPU a partire da novembre, principalmente agli sviluppatori di software.

Agli inizi del 1980, Paterson iniziò a lavorare ad un sistema operativo.

Alla Seattle Computer avevamo bisogno di un sistema operativo per i propri computer ed io volevo scriverne uno. Così decidemmo di farlo“.

Mi aspettavo che Digital rilasciasse il CP/M-86. Pensavo che lo avrebbero fatto a breve. Se mi avessero anticipato non mi sarei preso la briga di farlo io”.

Avevo sempre voluto scrivere un mio sistema operativo. Avevo sempre odiato il CP/M e pensavo di poter fare qualcosa di molto migliore“.

Veloce e sporco. Nella primavera del 1980, Paterson iniziò a lavorare su ciò che sarebbe divenuto l’MS-DOS. A luglio, aveva finito circa il 50% del sistema opeativo, che chiamò QDOS 0.10 (per “Quick and Dirty OS”, “S.O. Veloce e Sporco”). Scoprì un bug ed esso divenne il QDOS 0.11.

Il primo passo fu quello di segnarsi ciò che il CP/M-80 faceva. Il secondo passo fu quello di progettare un file system che fosse rapido ed efficiente“.

Una delle principali differenze fra l’MS-DOS ed il CP/M-86, quando alla fine fu commercializzato, era il sistema di gestione dei file. Il CP/M normalmente ne forniva una porzione di non più di 16 o 32K. Con l’MS-DOS si poteva gestire l’intero file. Paterson creò il modulo di gestione dei file del QDOS usando lo stesso metodo utilizzato dal BASIC-86.

Io programmo dal basso verso l’alto. Tu sai che in seguito avrai bisogno di qualche funzione nel programma, per cui io costruisco gli strumenti con cui in seguito fare lo strato superiore“.

Quando programmi dall’alto verso il basso, si procede invece con la rifinitura dalle funzioni generali verso le funzioni più piccole. Con il mio metodo non c’è molta progettazione da fare. La programmazione dal basso verso l’alto è legittima, solo non è molto pubblicizzata“.

Alla fine del mese di agosto del 1980, il QDOS 0.11 funzionava e fu messo in commercio. Non rimase QDOS molto a lungo, e non ne furono distribuite molte copie. Per il successivo, sostanzioso aggiornamento, Paterson lavorò duro per includere tutte le caratteristiche presenti in un sistema operativo completo.

C’era un assembler, residente nel sistema operativo, e si poteva fare debugging, ma nessun editor. Scrissi il più veloce editor di riga che potessi immaginare — veloce relativamente alla velocità con cui lo scrissi, 2 settimane“.

Rimasi stupefatto“, dice Paterson, “quando seppi che IBM lo stava usando e non lo aveva lanciato dalla finestra“.

Ottanta-sei nel segno. Nel mese di dicembre del 1980, Paterson e la sua società rilasciarono l’86-DOS 0.33, che aveva molte migliorie rispetto al QDOS.

L’86-DOS integrava tutto ciò che avevamo imparato in questo tempo. L’unica cosa che esso non aveva era la dimensione variabile dei settori. L’assembler, inizialmente scritto sullo Z80, fu reso più veloce. Facemmo anche altre modifiche alle chiamate di sistema. Quando fu pubblicato, era un pacchetto controllato a fondo“.

Alla fine del 1980, Seattle Computer vendette l’86-DOS agli OEM (Original Equipment Manufacturers) e ad altre società come Microsoft.

Essa [Microsoft] pagò per una licenza completa. Non era una licenza con una royalty a copia, ma per OEM. Un passaggio del contratto diceva che noi non potevamo chiederle a chi lo stava vendendo o stava progettando di venderlo“.

Agli inizi del 1981 il Personal Computer di IBM non era stato ancora presentato ma alcune voci stavano circolando sul microcomputer di Big Blue.

Avevamo tutti il sospetto che fosse IBM il cliente di Microsoft, ma non ne eravamo certi“.

Verso il mese di aprile del 1981, mentre stava eseguendo alcune modifiche sull’86-DOS (modifiche alle chiamate di sistema ed inclusione della gestione degli errori sui dischi rigidi), Paterson decise di lasciare Seattle Computer. A maggio, entrò a lavorare alla Microsoft per dedicarsi a tempo pieno alla versione PC-DOS dell’86-DOS.

Il primo giorno di lavoro attraverso la porta e ‘Hey! E’ l’IBM!‘”, esclama Paterson, sorridendo maliziosamente. ”

Lavorai presso Microsoft almeno per almeno 11 mesi. A maggio, giugno e luglio lavorai a cose che non avevo terminato per bene, perfezionando il PC-DOS“.

International Business Machines. Quello fu l’inizio di un calvario lungo 11 mesi. Quasi giornalmente, Paterson spediva del materiale a Boca Raton per l’approvazione da parte di IBM, ed IBM rispediva immediatamente commenti, modifiche ed ulteriori problemi.

Erano molto minuziosi. Spedivo loro un diso lo stesso giorno tramite Delta Dash. IBM era al telefono non appena il disco arrivava“. Paterson fa una pausa e sbuffa. Si ricorda di una richiesta che si scontrò violentemente con la sua visione del progetto.ù

IBM voleva i prompt del CP/M. Mi venne da vomitare“. Ma quando l’IBM chiede, tu acconsenti se sei un piccolo programmatore, e questo è ciò che fece Paterson.

Terminò il PC-DOS a luglio, un mese prima che il PC fosse ufficialmente presentato al mondo. A quel tempo, l’86-DOS divenne MS-DOS.

“La Microsoft voleva possederlo: pagare tutti i soldi ora e strapparlo dalle mani di Seattle Computer. Entrambe le società fecero un buon affare quando lo conclusero. Seattle Computer veramente non aveva la penetrazione commerciale di Microsoft.

Così, il 27 luglio 1981, il sistema operativo divenne proprietà di Microsoft. Secondo l’accordo, Seattle Computer può sempre accedere al sorgente ma diventa comunque un’altra licenziataria. Io credo che entrambe le società erano molto felici. L’accordo fu concluso proprio alcune settimane prima che il PC fosse annunciato. Microsoft era molto fiduciosa di sé“. Paterson fa una pausa.

Venderlo fu la mossa giusta. Seattle Computer stava facendo bene senza di esso. Il momento era giusto. Fui invitato al tavolo dell’accordo tra Rod Brock e Paul Allen. Ne fui lusingato“.

C’è vita dopo il DOS? Dopo la prima versione del PC-DOS, Paterson fu impegnato con altri progetti presso Microsoft. Lavorò alla versione per 8086 del compilatore BASIC di Microsoft.

Paterson è come moltri programmatori del settore. Sicuramente ama l’eleganza. Sicuramente ama la semplicità. Sicuramente ama rendere le cose semplici all’utente. Ma ciò che ama più di tutto in un programma o in un sistema è la velocità.

Amo il linguaggio assembly. Sono un fanatico della velocità, soprattutto nelle routine matematiche. Se c’è un ciclo che va ripetuto 5 volte, io riscriverò quella riga per quelle tante volte. Bam, bam, bam, woosh! L’8086 esegue i cicli normali molto lentamente“.

Paterson, che è ancora presso Microsoft (ai tempi dell’intervista), prestò nell’autunno di quell’anno alcune consulenze per Seattle Computer per un progetto basato su una scheda di RAM per il PC IBM. Non appena finì quel lavoro, apprese che anche la Microsoft stava lavorando ad un progetto simile.

Fu molto emozionante progettare una scheda per un rivale del mio datore di lavoro. Microsoft non si indignò. Non mi tagliò le dita. Nel mese di marzo del 1982, la scheda di Seattle divenne molto popolare. Fu messa in vendita diversi mesi prima delle schede multifunzione di altri progettisti“.

Alla fine del 1981, Paterson e Microsoft vennero a conoscenza del fatto che IBM stava pensando ad una versione 1.1 di aggiornamento. A novembre [Paterson] fu fatto direttore del reparto tecnico dell’MS-DOS. Insieme al suo gruppo posero la basi iniziali della versione 1.1 qualche giorno prima della fine dell’anno. Dopo arrivò il diluvio di Boca Raton.

L’intero processo mi fece impazzire. Un sacco di bug, PRT (Program Trouble Reports), tenuti in ballo ed IBM che avrebbe fatto una chiamata telefonica al giorno. Impazzii veramente. Mi sentivo come una marionetta mossa da IBM“.

Nel mese di marzo del 1982, dopo 2 mesi di continui tira e molla con Paterson, IBM accettò la versione 1.1. Paterson passò le ultime settimane di quel mese a pianificare la 2.0. Poi, il 1° aprile, si licenziò da Microsof (e Mark Zbikowski divenne il responsabile del gruppo di sviluppo portando l’MS-DOS fino ad un passo dal rilascio della versione 2.0, con cui Paterson aveva poco da spartire).

Paterson, che non era un uomo da bruciarsi i ponti dietro, si lasciò con Microsoft in maniera cordiale e tornò in Seattle Computer per lavorare, inizialmente, su un controller per floppy disk che stava sviluppando.

La direzione sbagliata di Paterson. Gli affari di Seattle Computer andavano bene. Paterson deteneva il 10% della società fin dal 1979, ed era un membro del consiglio di amministrazione. Con Microsoft non gi riuscì di raggiungere gli stessi traguardi.

Il problema non era ciò che non andava con Microsoft, era ciò che Seattle Computer aveva da offrire. Dentro a Seattle, io sono il direttore del reparto ingegneria. Hey! Ciò è molto motivante. Fu la molla che mi fece ritornare. Ero un po’ adirato con Microsoft, principalmente perché dovevo lavorare con IBM. Microsoft riconosce il talento. Se uno si lamenta, allora cerca di spostarlo su altre cose.

Paterson si spostò da solo, invece, fuori della porta principale.

Oggigiorno, lui e Seattle Computer stanno “recuperando”. Hanno dei nuovi prodotti S-100 in fase di sviluppo ed avranno presto anche “delle novità per l’IBM”.

Stiamo lavorando alle nostre schede di espansione, per dotarle di 4 funzioni invece che di 2. Vogliamo recuperare rispetto a coloro che offrono quelle con 4 funzioni. Stiamo anche lavorando ad un nuovo contenitore per il Gazelle.

Vorrei scrivere un altro sistema operativo, per vedere se, per caso, non lo avessi potuto fare meglio. Non credo che lo avrei potuto fare, per lo meno non presso la Seattle Computer. Ma non ho il tempo.

In questo momento il mio lavoro non contempla lo sviluppo di software, anche se mi considero uno sviluppatore di software. Posso progettare tutta una serie di cose distinte – dei pacchetti combinati. Le memorie hanno prezzi bassi in questo periodo e sarebbe possibile avere un foglio di calcolo, un editor di testo, un database e molto altro tutto a portata di dito ed in un unico pacchetto.

Inoltre, l’8086/8088 sembra interessante,anche se non ha ancora ripreso lo Z80. Penso che farò un salto di software.”

Pilota di velocità. Quando Paterson è lontano dal mondo della programmazione e dalle politiche aziendali, segue le auto da corsa. E’ copilota di una Mazda RX-7 nei pro rally.

La macchina ha un roll-bar e noi indossiamo i caschi e tutto il resto. Ho una RX-7 e, sì, sono nel mondo delle corse.

Paterson è sempre alla ricerca di qualcosa di intangibile. Mente indipendente, egli ricerca la completa libertà. Non gli va di dover lavorare per qualcuno per tutta la sua vita. Più precisamente, non vuole fare sempre il lavoro degli altri.

Tra qualche anno Paterson vuole fondare una propria società. Quando le sue azioni di Seattle Computer saranno cresciute abbastanza, le venderà e si metterà in proprio.

Non preoccuparti, il boss ne è a conoscenza. Rod Brock mi disse: <Tim, tra pochi anni te ne andrai.> Ci sono le premesse affinché resti in Seattle, ma non lo so. Sono le piccole società che ti permettono o di diventare grande o di far parte di una grande azienda.

Per ora, Paterson è un altro brillante programmatore. Egli è felice, anche se alle volte un po’ triste.

A chi interessa chi scrisse il sistema operativo?

Ce lo ricorderemo, Tim.

Intervista per “IBM Personal Computer March 1983″