# DR-DOS

DR-DOS è un sistema operativo compatibile con PC-DOS per IBM PC e altri PC IBM compatibili, sviluppato originariamente dalla Digital Research di Gary Kildall e derivato dal CP/M-86.

## Storia
### Origini

Il DR-DOS fu il nome dato a quella che allora era la versione più recente della lunga serie di sistemi operativi per computer creati dalla Digital Research. Il CP/M originale per processori a 8 bit Intel 8080/8085 e Z80 era stato fonte di numerose versioni derivate, la più nota delle quali era il CP/M-86 per la famiglia di processori Intel 8086/8088. Sebbene il CP/M avesse dominato il mercato fino a quel momento e fosse distribuito insieme alla maggioranza dei computer ad architettura non proprietaria, il PC IBM, nel 1981, portò all'inizio di quello che, in seguito, sarebbe stato un cambiamento epocale.
IBM aveva inizialmente pensato di offrire come sistema operativo del suo futuro computer l'ancora in fase di sviluppo CP/M-86 ma le trattative con Digital Research non andarono a buon fine e l'IBM contattò quindi la Microsoft che le fornì un sistema che altro non era se non l'86-DOS, che Microsoft aveva acquistato dalla Seattle Computer Products, e che derivava a sua volta dal QDOS precedentemente scritto da Tim Paterson. Microsoft modificò l'86-DOS e lo fornì a IBM, che lo distribuì poi come PC-DOS. Digital Research notò che il PC-DOS era molto simile al suo CP/M-86: il QDOS di partenza era infatti stato scritto usando le stesse API del CP/M. Digital Research decise perciò di citare in giudizio IBM, che si accordò con la società di Kildall per offrire come opzione sull'acquisto dei suoi PC anche il suo sistema operativo. Kildall accettò, ritenendo che il nuovo sistema di IBM, così come altri computer della stessa classe in passato, non avrebbe avuto un notevole successo. Quando il PC IBM fu presentato, la IBM offriva anche l'acquisto del suo PC-DOS per 40 dollari e, nonostante fosse offerto come scelta, tale acquisto era in realtà obbligatorio dato che il CP/M-86 fu disponibile solo alcuni mesi dopo e a un prezzo, molto superiore, di 240 dollari. Per questi motivi, il CP/M-86 vendette molto meno rispetto al PC-DOS. In seguito Digital Research creò un clone dell'MS-DOS che presentò nel 1988 col nuovo nome di DR-DOS.

### Prima versione

La prima versione uscì nel maggio 1988 e i numeri di versione furono scelti in modo tale da suggerire a quale versione di MS-DOS potessero essere ricondotte le caratteristiche offerte dal sistema operativo; la prima versione resa disponibile al pubblico fu DR-DOS 3.41, che aveva caratteristiche migliori, seppur equivalenti, a quelle di MS-DOS 3.3 - oltre alla versione Compaq, Compaq DOS 3.31; la versione di Compaq fu la prima ad introdurre il supporto a dischi rigidi con partizioni di grandezza superiore a 32 MB, caratteristica che sarebbe divenuta standard in MS-DOS 4.0 e releases successive.
In quel momento, MS-DOS era disponibile soltanto insieme all'hardware, quindi DR-DOS riscosse qualche successo dal momento che gli utenti potevano acquistarlo tramite i normali canali di distribuzione. Inoltre, una licenza per DR-DOS costava di meno di una per MS-DOS. Per questo motivo la DR fu contattata da un certo numero di costruttori di PC che erano interessati a un DOS di terze parti - cosa che suggerì una serie di aggiornamenti per il sistema operativo.

### Nuove versioni

L'aggiornamento più significativo fu il DR-DOS 5.0, distribuito a maggio 1990 (l'azienda saltò la versione 4, in quanto era la versione successiva al MS-DOS 4.0 quella che poi divenne MS-DOS 5). Questa release introdusse il ViewMAX, una shell di gestione dei file con un'interfaccia grafica basata sul GEM, e incorporava un software per la gestione della cache del disco e un sistema di gestione della memoria migliore di quello di MS-DOS. Se confrontato con il meno recente MS-DOS 4.01 - che incorporava già un gestore di memoria in modalità 386 (EMM386.SYS), in grado di convertire memoria XMS in memoria LIM 4.0 EMS, usata più spesso dalle applicazioni DOS - il sistema di gestione della memoria di DR-DOS aveva due caratteristiche in più.
Su sistemi basati su microprocessori Intel 80286 o superiori con almeno 1 MB di RAM, il kernel di DR-DOS e strutture di memoria quali i buffer del disco potevano essere caricati nella High Memory Area, i primi 64 KB di memoria estesa che erano accessibili in modalità reale per via di un incompleto livello di compatibilità dell'80286 con microprocessori precedenti. Questo rendeva disponibile una quantità equivalente di memoria bassa o convenzionale, i primi 640 KB della RAM dei PC - la zona di memoria in cui tutte le applicazioni MS-DOS dovevano essere eseguite. Usare la memoria alta non era un'idea nuova, poiché questa zona poteva essere già utilizzata dalle applicazioni per Windows, a cominciare da Windows/286 2.1, distribuito nel 1988, ma l'offerta di una maggior quantità di memoria per le applicazioni DOS era molto più interessante. Inoltre, su sistemi Intel 80386, il gestore di memoria EMS di DR-DOS consentiva il caricamento dei driver di periferica DOS nei blocchi di memoria superiore (UMB), liberando ancora memoria. DR-DOS 5 fu il primo DOS ad integrare queste funzionalità nel sistema operativo di base. Così, su un sistema 386, con DR-DOS era possibile offrire molta più memoria convenzionale libera che con ogni altro DOS. Dopo che i driver per il mouse e per le periferiche multimediali e uno stack di rete erano stati caricati, un sistema DOS in genere poteva avere da 300 a 400 KB di memoria convenzionale libera - troppo poco per poter eseguire la maggior parte del software progettato alla fine degli anni ottanta ma il DR-DOS 5, con qualche piccolo ritocco manuale, poteva caricare tutto questo e mantenere comunque tutta la sua memoria convenzionale libera - a parte qualche necessaria struttura dati DOS, fino ad arrivare a 620 KB su 640 KB totali, un quantitativo di memoria tale che alcuni programmi non potevano caricarsi perché trovavano libera memoria troppo bassa - i primi 64 KB. Il nuovo comando del DR-DOS 5, LOADFIX, rimediava a questo lasciando un piccolo spazio libero all'inizio della memory map.

### L'aggressiva competizione di Microsoft

La Microsoft rispose annunciando lo sviluppo di MS-DOS 5.0, nel maggio 1990, che avrebbe dovuto essere distribuito qualche mese dopo e avrebbe incorporato caratteristiche avanzate simili a quelle di DR-DOS. Si trattava di vaporware, poiché MS-DOS 5.0 fu distribuito nel giugno 1991 e, anche se includeva controparti per quel che riguarda la gestione della memoria, non offriva tutti i miglioramenti alla sintassi dei comandi DOS che Digital Research aveva fatto.
La DR rispose mettendo in commercio DR-DOS 6.0 nel 1991 il quale incorporava il programma di compressione al volo delle unità a disco SuperStor - così da aumentare al massimo lo spazio disponibile sui piccoli dischi rigidi del tempo; 40 MB era ancora una grandezza comune, che, però, spesso non era sufficiente, a causa della crescita in dimensioni delle applicazioni, in modo particolare Windows. DR-DOS 6.0 comprendeva anche una API per il multitasking su CPU che supportavano la protezione della memoria, in particolare gli Intel 80386 e superiori. L'API era disponibile solo per le applicazioni in grado di rilevare DR-DOS, ma normali applicazioni DOS, se ben progettate, potevano essere soggette a pre-emptive multitasking con l'ausilio del task switcher integrato, TaskMax. Su sistemi 286, le applicazioni DOS potevano rimanere sospese in background, così da permettere ad altre di essere eseguite. Tuttavia, il sistema multitasking di DR fu considerato inferiore tecnicamente rispetto a offerte di terze parti come DESQview, che potevano eseguire più di un'applicazione che richiedevano accesso diretto all'hardware e applicazioni grafiche e persino mostrarle su schermo in finestre ridimensionabili, e non fu quindi largamente utilizzato.
Microsoft rispose con MS-DOS 6.0, che, ancora una volta, offrì delle caratteristiche equivalenti a DR-DOS 6.0 ma era oramai scaduta la sua licenza con la DR e quindi non potendo più produrre versioni di MS-DOS, l'utilizzo di quel codice causò problemi legali alla MS.
Sebbene DR-DOS fosse quasi totalmente compatibile a livello binario con le applicazioni scritte per MS-DOS dato che era la vera versione del DOS poi ceduta alla MS, la Microsoft, tuttavia, si sforzò notevolmente di escogitare trucchi per creare incompatibilità. Per esempio, venne inserito del codice nella versione beta di Windows 3.1 che restituiva un messaggio di errore non fatale se veniva rilevato un DOS non Microsoft. Disabilitando questo codice di rilevamento (o se l'utente decideva di ignorare il messaggio di avviso), Windows funzionava perfettamente su DR-DOS. Questo codice fu, tuttavia, rimosso dalla release definitiva di Windows 3.1 e da tutte le versioni successive.

### Patching per contrastare Microsoft

Fu semplice per Digital Research modificare DR-DOS per evitare il controllo di autenticità di Windows 3.1 e la versione corretta fu disponibile sei settimane dopo la distribuzione di Windows 3.1. Con una strategia di pubblicità migliorata e una confezione riveduta, un sistema di gestione della memoria molto avanzato, compressione del disco e il software di caching Super PC-Kwik, DR-DOS 6.0 riuscì a riscuotere facilmente un grande successo.
In questo periodo, il gigante del networking, Novell, acquistò Digital Research allo scopo di utilizzarne la linea di prodotti come leva nella sua complessa strategia per interrompere il monopolio della Microsoft. Si trattò di una campagna acquisti massiccia ma destinata al fallimento: la ditta acquisì WordPerfect Corporation, alcuni prodotti Borland, e investì massicciamente anche in Unix. La prevista diffusione della nuova versione, DR-DOS 7.0, progettato per avere la meglio su MS-DOS 6.0 della Microsoft, fu ripetutamente posticipata e alla fine fu distribuito come Novell DOS 7.0 ma fu una delusione. Era più pesante e con molti nuovi bug; la principale aggiunta funzionale fu il secondo tentativo di Novell per un sistema di networking peer-to-peer, Personal Netware il quale funzionava meglio del suo predecessore Netware Lite, ma era incompatibile col sistema di rete Microsoft, che stava divenendo popolare perché supportato da Windows per Workgroup, OS/2 e Windows NT; per poter far coesistere entrambi sullo stesso sistema era necessario un lavoro considerevole, e Personal Netware non riscosse, così, troppo successo. Novell DOS 7 richiedeva diverse release per riparare i bug e non era del tutto stabile quando il successivo ciclo di sviluppo ebbe inizio. Realizzando, alla fine, che le grandi abilità nel networking non si applicavano ad altre aree, Novell vendette la linea di prodotto a Caldera, che al momento aveva un valore commerciale limitato.
DR-DOS fu poi venduta a Lineo, che lo produceva per alcune applicazioni speciali. Una di queste applicazioni era Seatools di Seagate, che avviava una versione di DR-DOS. Nel 1998 il DR-DOS fu venduto a una piccola azienda originatasi da Lineo, la DeviceLogics, che continuò a venderlo come sistema operativo embedded. Nel 2002 è stato acquistato dalla DRDOS, Inc..

## Ultime versioni

* Il DR-DOS 7.01, distribuito da Caldera come OpenDOS sotto una licenza di uso non commerciale sotto forma di codice sorgente, viene ancora attivamente sviluppato dal DR-DOS/OpenDOS Enhancement Project, fondato nel luglio 2002 nel tentativo di portare il livello di funzionalità di DR-DOS a quello dei moderni sistemi operativi per PC. Gli sforzi del progetto si sono concretizzati nell'aggiunta del supporto nativo per dischi più grandi (LBA) e del filesystem FAT32. Ci sono stati anche diversi altri miglioramenti, come una migliore gestione della memoria e il supporto per la nuova estensione del filesystem FAT+, che permette la creazione di file di massimo 256 GB su normali partizioni FAT.
* Il DR-DOS 8.0 è stato distribuito il 30 marzo 2004, col supporto per la FAT32 e dischi grandi, la possibilità di avviarsi da una memoria ROM o Flash, il multitasking e un gestore di memoria DPMI. In seguito, l'azienda si divise in DeviceLogics Inc. e DR-DOS Inc., che ha messo in commercio DR-DOS 8.1 nell'autunno del 2005. Tuttavia, questa versione è stata ritirata dal mercato (a causa delle scoperte riassunte fra breve), e sostituita con una versione più vecchia (7.03).

## Controversie
### La causa legale contro Microsoft

Sebbene DR-DOS non fosse più una minaccia concreta alla sua presenza sul mercato nel 1995, Microsoft adesso stava affrontando una crescente competizione da parte del PC DOS 6.3 di IBM, e decise di rendere impossibile l'utilizzo della successiva versione di Windows, Windows 95, con un qualunque prodotto DOS che non fosse il suo. Sebbene fosse presentato come un cambiamento puramente tecnico, questo fu in seguito il motivo di un'importante causa legale iniziata da Caldera a Salt Lake City. Subito dopo la fine della serie di deposizioni precedenti il processo (in cui le parti elencano le prove che intendono presentare), ci fu un accordo privato per un risarcimento, il cui ammontare non fu reso noto, ma dovrebbe aggirarsi sui 150/200 milioni di dollari.

### Licenze

Nell'ottobre del 2005 si è scoperto che con la distribuzione di DR-DOS 8.1, DR-DOS Inc. non aveva rispettato i termini della GPL, con riferimento ad alcune applicazioni incorporate, ed aveva inoltre mancato di aggiungere riferimenti alle licenze e alle notizie sugli autori di altre applicazioni. In particolare, DR-DOS Inc. ha violato i termini di quei software licenziati sotto la GPL mancando di includere informative sulla licenza e di chiedere il permesso agli autori, quasi che il software venisse distribuito sotto una licenza diversa, e facendo pagare un prezzo per il codice sorgente troppo superiore a quelli normali di distribuzione, così da trarne profitto.