Sul web è facile farsi un’idea di quelli che, temporalmente, sono i principali sistemi operativi che hanno segnato la storia di Microsoft.
Si parte da Xenix, il primo sistema operativo Microsoft (sviluppato su base Unix), si passa per lo storico MS/PC DOS, per le prime versioni dell’ambiente operativo Windows, per OS/2 e si arriva a Windows NT, alla base degli attuali OS della casa di Redmond.
Quello di cui si ha scarsa traccia, però, è di quale sia stato effettivamente il primo sistema non-Unix di Microsoft ad incorporare funzionalità multitasking, anche minimali. Ebbene sarete probabilmente sorpresi nello scoprire che si tratta dell’European MS-DOS 4 (per comodità E-DOS), da non confondere con il disastroso MS/PC-DOS 4.0x.
Di cosa stiamo parlando? E qual è il periodo di riferimento?
Bene, partiamo dal quando: 1986 circa, anno in cui la versione più recente dell’MS/PC-Dos è la 3.2 e Windows 1.0x è stato appena presentato al grande pubblico. Il dove? Beh, questa è una novità: non siamo nei laboratori statunitensi di Microsoft, ma nei Simens Lab in Europa.
Infatti è proprio Siemens a chiedere una versione rivisitata dell’MS/PC-DOS che possa garantire un minimo di esecuzione concorrente sui propri sistemi. Microsoft, all’epoca molto attenta alle esigenze dei principali OEM, mette a disposizione i suoi tecnici e, con un Team congiunto, inizia a lavorare a un nuovo branch del proprio sistema operativo, che trova le fondamenta nella versione 2.x dell’MS/IBM-DOS e che procede in parallelo con lo sviluppo dell’MS/IBM-DOS 3.x.
Uno dei pochi riferimenti all’European MS-DOS 4
L’E-DOS dispone di un multitasking real-mode di tipo pre-emptive, eseguibile sull’intera famiglia di processori x86. Per raggiungere tale scopo il sistema utilizza uno specifico gestore di memoria in grado di spostare e/o deallocare parti di codice applicativo (movable and discardable code segments) e la possibilità di spostare i dati in diverse aree di memoria (movable data segments).
E’ interessante notare che questo gestore è lo stesso adottato nelle versioni di Windows (fino alla 3.x), così come l’E-DOS condivide con l’ambiente a finestre il nuovo formato dei file eseguibili a 16bit denominato New Executable (NE o NewEXE), pensato per supportare proprio le funzionalità di allocazione dinamica del codice sorgente.
Questo formato è, inoltre, utilizzato anche dalla prima versione di OS/2, tant’è che il campo presente nell’Header che identifica il sistema operativo target può assumere i valori: 01=OS/2 02=Windows 03=European MS-DOS 4.0.
Per quanto riguarda l’esecuzione concorrente vera e propria, l’E-DOS è in grado di effettuare lo switch dinamico delle schermate relative all’applicazione, catturando quella attualmente in primo piano (foreground), salvandola e ripristinando (avviando) quella relativa all’applicazione richiesta.
In realtà l’utilizzo del sistema si rileva tutt’altro che efficiente, principalmente per due motivi: il funzionamento in modalità “real mode”, quindi senza nessuna protezione nell’accesso alla memoria da parte delle applicazioni in esecuzione, ed il conseguente limite dei 640Kb di memoria indirizzabile dalle applicazioni, assolutamente insufficiente per l’esecuzione contemporanea di più applicazioni. Un altro problema risiede nell’inefficienza del time slicing che si somma al fatto che le applicazioni DOS esistenti, “convinte” di essere le uniche attive nel sistema, tentano di utilizzare al 100% la CPU.
L’E-DOS non divenne mai un prodotto commerciale, viste le politiche di marketing di Microsoft che, nel periodo, la vedevano come fornitrice ai grandi OEM e non impegnata nella vendita diretta.
La versione 4.0 venne anche aggiornata alla 4.1 per tenere il passo con il cugino MS-DOS 3.2, e addirittura ne era stata già pianificata una versione 5.0, ma nel frattempo le priorità di Microsoft erano cambiate, anche in seguito al disinteresse di IBM in un nuovo “DOS” .
BigBlue voleva infatti un nuovo sistema operativo che sfruttasse appieno le CPU i286 e, per questo, creò con Microsoft un Joint Development Program per lo sviluppo di OS/2. Proprio nel team dedicato al nuovo sistema operativo confluirono le risorse che la casa di Redmond aveva dedicato all’European MS-DOS.
Per approfondimenti sul multitasking riguardanti il sistema DOS, vi consiglio gli ottimi articoli di Alessio e Cesare