di  -  venerdì 7 gennaio 2011

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

Infoworld del 12 Agosto 1991

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

14 Commenti »

I commenti inseriti dai lettori di AppuntiDigitali non sono oggetto di moderazione preventiva, ma solo di eventuale filtro antispam. Qualora si ravvisi un contenuto non consono (offensivo o diffamatorio) si prega di contattare l'amministrazione di Appunti Digitali all'indirizzo info@appuntidigitali.it, specificando quale sia il commento in oggetto.

  • # 1
    Drizzt
     scrive: 

    ‘spetta, prima che vada avanti a ridere, magari ho frainteso io. Con: “quale sia stato effettivamente il primo sistema non-Unix ad incorporare funzionalità multitasking, anche minimali” intendi dire “quale sia stato effettivamente il primo sistema non-Unix di origine Microsoft su cloni IBM ad incorporare funzionalità multitasking, anche minimali”, vero?

  • # 2
    Felice Pescatore (Autore del post)
     scrive: 

    @Drizzt
    si certo. L’intero contesto è relativo a Microsoft ed ai suoi sistemi operativi, il che esclude ovviamente Windows 1.0x che era un “ambiente operativo” e necessitava del dos.

  • # 3
    Drizzt
     scrive: 

    @Felice: in quel caso, ottimo articolo, onestamente non ne sapevo assolutamente nulla di un DOS multitasking.
    C’e’ da dire pero’ una cosa…occhio a “stupirsi” dei Siemens Lab europei…anche oggi Siemens e’ una delle realta’ piu’ a stretto contatto con MS, e’ una collaborazione molto profonda che dura da sempre :-)

  • # 4
    Felice Pescatore (Autore del post)
     scrive: 

    @Drizzt
    thk. Grazie per l’accento sui Siemens Lab, anche se in realtà lo “stupirsi” era riferito al fatto che, contrariamente a quello che era la prassi di Microsoft di sviluppare tutto in-house (e negli USA al tempo), lo sviluppo avvenne out-of-house ed in Europa.

  • # 5
    joker
     scrive: 

    Tutto molto bello, ma per rimanere in tema e ad essere giusti il primo sistema operativo che ha offerto il multitasking reale e nemmeno minimale ma completo che non fosse *NIX based è sicuramente il sistema operativo AmigaOS presentato nel lontano 1985 con l’Amiga 1000, che per molti è stato un punto di riferimento, MS poteva solo sognare qualcosa di simile a quel tempo.

  • # 6
    Felice Pescatore (Autore del post)
     scrive: 

    @Joker.
    Ciao, il dominio dell’articolo è relativo ai sistemi Microsoft. Cmq. da questi primi commenti potrei prendere spunto per realizzare un articolo e delineare la timeline degli os multitasking (preemptive e cooperative).
    Giusto per anticipare qualcosa: sicuramente con l’Amiga siamo già troppo in avanti nel tempo, basti pensare che “Pilot” dello Star (Xerox) era già multitasking.

  • # 7
    joker
     scrive: 

    Si mi sono lasciato prendere la mano, anche se mi ricordo bene che all’interno del AmigaOS c’era un software compatibile PC-DOS fornito all’interno del Workbench se non erro, ma non ricordo bene fino dove si spingeva.

  • # 8
    Giovanni
     scrive: 

    Argomento molto particolare, curioso ed interessante… siamo tornati ai tempi epici della microinformatica!
    Direi che Siemens è qualcosina di più di un semplice OEM: oltre alle molteplici attività industriali nel settore energetico, era già allora un colosso mondiale dell’informatica, aveva acquisito da poco la Nixford e produceva grossi mainframe con SO proprietari. Forse anche per questo l’allora piccola MS puntava produrre una personalizzazione del suo DOS pensandola come una IBM europea… e, indipendentemente dalla qualità del prodotto risultante, riuscire ad instaurare un rapporto privilegiato con una realtà di tale importanza (come dice @Drizzt, appunto: collaborazione tuttora esistente).

    @joker
    Mi pare che Felice abbia già limitato l’ambito della discussione alla sola Microsoft. Infatti, sicuramente AmigaOS è stato un riferimento indiscusso anche per molti altri aspetti, oltre al multitasking. Ma sempre rimanendo in ambito MICROocomputer anche Digital Research aveva già presentato MP/M(mi pare nel 1984, poi Councurent DOS già più volte nominato in questo blog). Un OS evoluzione di CP/M inizialmente disponibile per Z80 (I8080) e poi anche per x86, che era multiutente e multitasking in modo sicuramente più professionale e utilizzabile dello stesso E-DOS qui descritto (e anche più diffuso commercialmente).

    Saluti

    Buon RC con http://www.jurassicnews.com!

  • # 9
    Giovanni
     scrive: 

    Ovviamente mi riferisco ai microcomputer (per intenderci, quelli nati a metà Settanta per uso personale): macchine per cui le esigenze di disporre di un multitasking che consentisse di condividere anche la cpu tra più utenti, si sono presentate solo in un secondo momento. In quest’ambito perciò, penso che sia difficile anticipare la data limite degli anni Ottanta… lo stesso STAR è un micro piuttosto anomalo e un po’ particolare e comunque in vendita dal 1981.

    Chiaramente il discorso del multitasking in generale è molto più ampio, per esempio, se inteso come time-sharing per la multiutenza, risale addirittura all’inizio degli anni Sessanta (DTSS).

    Ciao

  • # 10
    Cesare Di Mauro
     scrive: 

    @joker: all’interno del Workbench non c’era nessun software “compatibile PC-DOS”.

    Forse ti riferisci al Trasformer: http://en.wikipedia.org/wiki/Emulation_on_the_Amiga#Amiga_Transformer che era un emulatore PC, ma era estremamente lento.

    Concordo con gli altri: vero è che l’Amiga aveva il multitasking (pre-emptive), ma si tratta di roba già vista parecchi anni prima.

    Amiga ha, però, avuto il grande merito di sdoganare questa (e molte altre) tecnologia alla massa. ;)

  • # 11
    Giovanni
     scrive: 

    Eccome! Anch’io da vero amighista non posso che sostenere la stessa identica tesi. Il multitasking di Amiga era una prerogativa esaltante soprattutto come palestra di programmazione(anche se con tutti i suoi limiti di stabilità e soprattutto quelli imposti dalla poca memoria delle configurazioni di base e della ChipRAM in generale). Con una milionata inoltre, ti portavi a casa un sistema con una eccezionale interfaccia grafica a finestre (quella dei Mac non era certo proponibile per un quindicenne e non era nemmeno multitask) e con un OS basato su principi evolutissimi disponibili solo su macchine dedicate con prezzi superiori di almeno un ordine di grandezza!

    Si, Amiga è sicuramente “multitasking per le masse” (ovviamente: definizione RC con chiaro riferimento ai Depeche degli stessi anni)

    Notte

  • # 12
    Mauro
     scrive: 

    Leggendo degli sforzi di Microsoft per implementare una prima forma di rudimentale multitasking sui PC degli anni ’80 mi vengono articoli ben più recenti sull’altrettanto travagliato parto delle funzioni multitasking su iOS di Apple. Curioso, no?

  • # 13
    Marco
     scrive: 

    “Leggendo degli sforzi di Microsoft per implementare una prima forma di rudimentale multitasking …”

    Si tratta ovviamente di precise scelte architetturali, dettate dai motivi più disparati.

    Mi permetto inoltre di aggiungere il Sinclair QDOS (1984) alla lista dei sistemi multitasking consumer grade.

  • # 14
    Giovanni
     scrive: 

    @Marco: “mi-ti-co!” (per citare il vecchio Homer): è vero, l’OS del dimenticatissimo QL era multitasking. Tra l’altro il QL è anche il primo “home/personal” consumer con M68000 (seppure con bus 8bit: M68008) veramente economico. Anzi, ho appena verificato che, essendo stato presentato nel Gennaio 1984, la sua uscita anticipa addirittura il Macintosh (seppure di un solo mese) e pur non essendo, il Mac, un pc ad altrettanto basso costo…

    E pensare, questo me lo ricordo, che la sua uscita era stata addirittura a lungo posticipata perché si trattava della solita promessa di Sir Clive: avviava la produzione (e quindi pagava i fornitori) con gli acconti dei clienti che acquistavano i pc consegnandoglieli con enormi ritardi! In fondo era anche lui un “visionario”: ma molto meno fortunato di altri.
    Essendo un C64ista non ho mai avuto né Spectrum né QL, ma li conoscevo entrambi abbastanza bene per poter sostenere i confronti ideologici!

    Grazie, ciao

Scrivi un commento!

Aggiungi il commento, oppure trackback dal tuo sito.

I commenti inseriti dai lettori di AppuntiDigitali non sono oggetto di moderazione preventiva, ma solo di eventuale filtro antispam. Qualora si ravvisi un contenuto non consono (offensivo o diffamatorio) si prega di contattare l'amministrazione di Appunti Digitali all'indirizzo info@appuntidigitali.it, specificando quale sia il commento in oggetto.