Passa ai contenuti principali

Archeologia Informatica - MS-DOS 5.0: il DOS che portò al limite l'architettura del PC originale e la sua evoluzione

Microsoft MS-DOS 5.0 OEM (1991) - Versione Boxed
Archivio Storico Privato dicecca.net 

Mi capita a volte di accedere ad uno degli scaffali dell'Archivio Storico Privato dicecca.net per cercare qualcosa e finisco per vedere, ricordare (qualche volta trovare) altro.

Il mio primo PC risale al 1994, tempo in cui esisteva già MS-DOS 6.0 e rev successive, ma il rivenditore (caso quasi unico) mi diede una serie di programmi originali boxed che conservo come reliquie e di tanto in tanto pubblico delle immagini nei post sia come oggetto in sé sia come riferimento al prodotto.

Tra questi c'è MS-DOS 5.0 del 1991, di cui ricorrono i 35 anni quest'anno, dall'uscita.

E' sicuramente il software più antico che posseggo per PC, ed è anche il software più spartiacque del tempo.

Forse successivamente solo Windows 95, Windows NT 4.0 e Windows XP saranno pietre miliari più famosi e forse più grandi, ma si collocano in momenti differenti della diffusione dei PC.

Studiai questo sistema e come gestiva la memoria, ma ovviamente non misi mano a nulla, anche per ragioni brutalmente anagrafiche

Iniziali la mia carriera di BT con Windows 95, di cui scrissi solo una piccola guida su richiesta dei miei professori del Liceo, post diploma, ma, tre anni dopo, in parallelo con il BT di Windows 98, scrissi, quello che ad oggi è ancora la mia più corposa opera: How to Use Windows 98 di, appena, 844 pagine nella versione volume unico, ed una più slim di 166 (spin-off del primo).

Nella parte dedicata a MS-DOS 7.1 illustravo come spostare la memoria base (concetti che sono incomprensibili per almeno un paio di generazioni di utenti ed informatici, ma esistevano all'epoca).

Tutte queste novità furono introdotte in questa versione di MS-DOS che vide anche l'ultima collaborazione tra Microsoft ed IBM (fine di MS-DOS e di OS/2).

Non mi dilungo su questo aspetto poiché spero prima o poi di dedicare un post a OS/2 ed al divorzio tra i due brand.

Il post su MS-DOS 5.0 l'ho fatto scrivere a ChatGPT (e si vede anche dall'impaginato) perché necessitavo di alcuni aspetti che erano interessanti in relazione al flop di MS-DOS 4 (reso MIT license un paio d'anni fa, clicca qui sul sito Microsoft e qui direttamente du GitHub) ed in relazione al suo predecessore MS-DOS 3.3 che seppure ho avuto occasione di osservare, non ho potuto studiarlo bene per certi aspetti, ma anche qui l'anagrafica mi remava, forse giustamente, contro... 😅

Ma anche di ciò che accade dopo, perché con MS-DOS 6.2 (6.22 di cui questa rev cambiava il tipo di algoritmo di compressione del disco) e poi con i sotto sistemi di MS-DOS 7.0 e 7.1 di Windows 95 e 98.

In ultimo uno sguardo a Windows Millenium Edition, l'Ultimo Samurai, l'ultimo Sistema Operativo della serie Windows 9x che aveva una versione successiva di MS-DOS, la Ver. 8.0, ma che da questo aspetto aveva una serie di particolarità rispetto ai suoi predecessori.

Su Win ME, scrissi una veloce guida nel 2000, ma non l'ho, ancora, affrontato in questa sede di Archeologia Informatica.

Da qui l'idea di usare ChatGPT (che sicuramente ha in pancia parecchio materiale) per scrivere il pezzo in questione.

MS-DOS 5.0 e l'evoluzione del DOS

Da MS-DOS 3.3 e 4.0 fino a MS-DOS 6.2, 7.0, 7.1 e 8.0


Microsoft MS-DOS 5.0 OEM (1991) - Dettaglio dischetti
Archivio Storico Privato dicecca.net 


Introduzione

Nella storia del personal computer, MS-DOS 5.0 occupa una posizione particolare.

Non fu la prima versione realmente matura del DOS — questo titolo può essere attribuito almeno in parte a MS-DOS 3.3 — e non fu neppure l'ultima versione autonoma della famiglia, ruolo che sarebbe spettato alla serie 6.x. Tuttavia, MS-DOS 5.0 rappresentò probabilmente il punto nel quale Microsoft riuscì meglio a conciliare tre esigenze apparentemente incompatibili:

  1. mantenere la compatibilità con l'enorme quantità di software scritto per i PC 8086/8088;

  2. sfruttare finalmente le caratteristiche dei processori 80286 e soprattutto 80386;

  3. recuperare quanta più memoria possibile dal famigerato limite dei 640 KB.

La sua importanza diventa ancora più evidente confrontandolo con ciò che venne prima e dopo.

La sequenza evolutiva può essere riassunta così:

MS-DOS 3.3
   │
   │ DOS tradizionale, piccolo e relativamente semplice
   ▼
MS-DOS 4.x
   │
   │ grandi dischi, DOS Shell, maggiore complessità
   ▼
MS-DOS 5.0
   │
   │ HMA + UMB + EMM386 + strumenti moderni
   ▼
MS-DOS 6.x
   │
   │ automazione, manutenzione, compressione e MemMaker
   ▼
MS-DOS 7.0
   │
   │ DOS diventa parte integrante di Windows 95
   ▼
MS-DOS 7.1
   │
   │ FAT32 e grandi dischi
   ▼
Windows 98 / 98 SE

Con MS-DOS 7.x avviene però qualcosa di molto più importante di un semplice aggiornamento: MS-DOS smette sostanzialmente di essere un prodotto indipendente e diventa un componente della piattaforma Windows 9x. MS-DOS 7 non venne infatti commercializzato autonomamente come le versioni precedenti.

Una precisazione è importante fin dall'inizio: quando si parla di MS-DOS 7.1 come “DOS di Windows 98”, l'associazione è corretta ma incompleta. MS-DOS 7.1 compare già con Windows 95 OEM Service Release 2 (OSR2) nel 1996, introducendo FAT32; Windows 98 e Windows 98 Second Edition ne proseguono l'utilizzo.


1. Cinque generazioni a confronto

CaratteristicaMS-DOS 3.3MS-DOS 4.xMS-DOS 5.0MS-DOS 6.2MS-DOS 7.0 / 7.1
Epoca19871988199119931995–1998
RuoloOS autonomoOS autonomoOS autonomoOS autonomocomponente Windows 9x
CPU minima concettuale8086/80888086/80888086/80888086/808880386 per Windows 95
FAT12SìSìSìSìSì
FAT16SìSìSìSìSì
FAT16B / grandi volumiNoSìSìSìSì
FAT32NoNoNoNo7.0 No / 7.1 Sì
Limite tipico volume32 MB~2 GB~2 GB~2 GB7.0 ~2 GB / 7.1 >2 GB
HMANolimitato/non equivalenteSìSìSì
UMBNoNo come nel 5.xSìSìSì in real mode
HIMEM.SYSnon centralepresente in contesti 4.xfondamentalefondamentaleancora disponibile
EMM386Noprimi strumentiSìSìancora utilizzabile in real mode
LOADHIGHNoNoSìSìSì
DEVICEHIGHNoNoSìSìSì
MemMakerNoNoNoSìnon più centrale
ScanDiskNoNoNoSìSì, adattato a Windows
Compressione integrataNoNoNoDoubleSpaceDriveSpace
Nomi lunghiNoNoNoNoVFAT sotto Windows
GUINoDOS ShellDOS ShellDOS sempre meno centraleWindows 95/98
MultitaskingNoNoNoNoWindows 9x sì; DOS puro no

La tabella mostra immediatamente che MS-DOS 5.0 rappresenta il grande salto nella gestione della memoria, mentre MS-DOS 6.x perfeziona soprattutto l'amministrazione del sistema.

MS-DOS 7.x cambia invece completamente prospettiva.


2. MS-DOS 3.3: il DOS “classico”

MS-DOS 3.3, pubblicato nel 1987, appartiene ancora pienamente alla prima filosofia DOS.

Il sistema operativo è relativamente piccolo e il suo compito principale consiste nel fornire:

  • filesystem;

  • gestione di file e directory;

  • caricamento dei programmi;

  • gestione basilare dei dispositivi;

  • servizi tramite interrupt software;

  • interprete dei comandi COMMAND.COM.

Il prompt rappresenta praticamente l'interfaccia principale:

Microsoft(R) MS-DOS(R) Version 3.30

C:\>

La documentazione originale di MS-DOS 3.3 mostra esattamente questo modello operativo, centrato completamente sul prompt.

Il problema dei dischi

MS-DOS 3.3 usa FAT16, ma ogni volume DOS è ancora limitato a circa 32 MB.

Per utilizzare un disco da, ad esempio, 100 MB, una configurazione tipica potrebbe essere:

Disco fisico: 100 MB

C: 32 MB
D: 32 MB
E: 32 MB

DOS 3.3 introduce però un meccanismo estremamente importante: la partizione estesa, all'interno della quale possono essere create unità logiche aggiuntive.

Il limite rimane quindi 32 MB per volume, non necessariamente 32 MB per l'intero disco.


3. MS-DOS 4.x: il primo tentativo di modernizzazione

MS-DOS 4.0/4.01 costituisce una generazione di transizione.

Microsoft cerca di trasformare DOS da semplice ambiente a riga di comando in qualcosa di più simile a un sistema completo.

Fra le innovazioni troviamo:

  • DOS Shell;

  • installazione più elaborata;

  • migliore supporto alla memoria espansa;

  • comando MEM;

  • grandi partizioni;

  • FAT16B;

  • strumenti di amministrazione più sofisticati.

Il cambiamento più importante sul fronte storage è FAT16B.

Con DOS 3.3:

Volume DOS
   ↓
circa 32 MB max

Con DOS 4.x:

Volume FAT16B
   ↓
fino a circa 2 GB

Per il 1988 è un aumento enorme.

Ma DOS 4.x introduce anche un problema: cresce.

Più codice significa maggiore consumo della risorsa più preziosa dell'ecosistema DOS: la memoria sotto 640 KB.

Il paradosso diventa quindi:

più funzionalità
      ↓
DOS più grande
      ↓
meno memoria convenzionale
      ↓
meno memoria per i programmi

MS-DOS 5.0 affronterà esattamente questo problema.


4. Il limite fondamentale: i 640 KB

Per capire MS-DOS 5.0, 6.2 e perfino parte del comportamento di DOS 7.x bisogna partire dalla mappa di memoria del PC IBM.

Nel primo megabyte:

100000h ───────────────────────── 1 MB
         High Memory Area →
         inizia immediatamente sopra

FFFFFh  ─────────────────────────
         BIOS ROM
F0000h  ─────────────────────────

         ROM periferiche
         Option ROM
C0000h  ─────────────────────────

         memoria video
         VGA / EGA / CGA

A0000h  ───────────────────────── 640 KB

         MEMORIA CONVENZIONALE

         applicazioni
         TSR
         driver
         COMMAND.COM
         parti del DOS

00000h  ─────────────────────────

Gli indirizzi:

00000h - 9FFFFh

forniscono 640 KB di conventional memory.

La zona:

A0000h - FFFFFh

è la Upper Memory Area, o UMA.

Tradizionalmente viene utilizzata per:

  • memoria video;

  • BIOS;

  • ROM delle schede;

  • frame EMS;

  • altri dispositivi.

Il problema è che un normale programma DOS real-mode deve vivere principalmente nei primi 640 KB.

Avere:

1 MB RAM
4 MB RAM
16 MB RAM

non significa automaticamente poter lanciare un programma DOS da 700 KB.

La memoria esiste, ma l'architettura real-mode dell'8086 non la rende direttamente equivalente alla conventional memory.

Ed è qui che MS-DOS 5.0 cambia le regole.


5. MS-DOS 5.0 e la High Memory Area

Una delle innovazioni più importanti di DOS 5 è l'utilizzo sistematico della High Memory Area, o HMA.

La HMA consiste nei primi 65.520 byte circa immediatamente sopra il primo megabyte.

La sua esistenza deriva dall'indirizzamento segmento dell'8086.

L'indirizzo fisico viene calcolato come:

physical_address =
(segment × 16) + offset

Consideriamo:

FFFF:0010

Calcolo:

FFFFh × 10h = FFFF0h

FFFF0h
+0010h
-------
100000h

Si arriva quindi esattamente a 1 MB.

Sull'8086 originale l'indirizzo “ritornava” all'inizio dello spazio indirizzabile, perché erano disponibili soltanto 20 linee di indirizzo.

Nei processori successivi poteva invece essere raggiunto lo spazio sopra 1 MB.

Per preservare la compatibilità venne introdotto il famoso meccanismo A20 Gate.


6. HIMEM.SYS

In MS-DOS 5.0 entra quindi in gioco:

HIMEM.SYS

Il driver gestisce la memoria estesa secondo lo standard XMS e controlla, fra le altre cose, l'accesso tramite A20.

Un CONFIG.SYS tipico:

DEVICE=C:\DOS\HIMEM.SYS
DOS=HIGH

DOS=HIGH dice al sistema operativo di spostare una parte significativa del proprio codice nella HMA.

Prima:

640 KB conventional memory
│
├─ DOS
├─ COMMAND.COM
├─ driver
├─ TSR (Terminate and Stay Resident, tipo antivirus)
└─ applicazione

Dopo:

HMA
└─ parte di DOS

640 KB conventional memory
│
├─ COMMAND.COM
├─ driver
├─ TSR
└─ applicazione

Lo spazio sottratto al DOS diventa nuovamente disponibile alle applicazioni.

La documentazione Microsoft descrive HIMEM, HMA, DOS=HIGH, EMM386 e UMB proprio come gli elementi fondamentali della gestione memoria di MS-DOS 5 e successivi.


7. EMM386 e gli Upper Memory Blocks

Su un processore 80386 la situazione diventa ancora più interessante.

La zona compresa tra 640 KB e 1 MB non è sempre completamente occupata.

Immaginiamo:

A0000-BFFFF   VGA
C0000-C7FFF   VGA BIOS
C8000-DFFFF   libero
E0000-EFFFF   libero
F0000-FFFFF   BIOS

Le zone libere possono diventare Upper Memory Blocks, UMB.

MS-DOS 5.0 utilizza:

EMM386.EXE

per sfruttare il paging hardware del 386 e trasformare questi “buchi” nello spazio superiore in memoria utilizzabile dal DOS.

La configurazione classica diventa:

DEVICE=C:\DOS\HIMEM.SYS
DEVICE=C:\DOS\EMM386.EXE NOEMS
DOS=HIGH,UMB

A questo punto è possibile utilizzare:

DEVICEHIGH=

per i driver e:

LOADHIGH

o semplicemente:

LH

per programmi residenti.

Per esempio:

DEVICEHIGH=C:\DOS\ANSI.SYS

e:

LH C:\DOS\DOSKEY
LH C:\MOUSE\MOUSE.COM

8. EMS contro XMS

Qui è necessario distinguere due concetti spesso confusi.

XMS — Extended Memory

La memoria sopra 1 MB nei processori 286 e successivi.

4 MB RAM

000000
   │
   ├── primi 640 KB
   │
100000
   │
   └── Extended Memory
       fino a 4 MB

HIMEM.SYS ne è il gestore tipico.

EMS — Expanded Memory

EMS nasce invece come sistema a pagine.

Una finestra, tipicamente di 64 KB, viene posizionata nella Upper Memory Area:

Upper Memory Area

+-------------------+
|                   |
| EMS Page Frame    | ← 64 KB
|                   |
+-------------------+

Il programma cambia dinamicamente quali pagine della memoria espansa vengono visualizzate nella finestra.

Con l'80386 non è più necessaria una scheda hardware EMS: il paging del processore può simularla.

Ed è esattamente ciò che fa EMM386.

Con:

DEVICE=C:\DOS\EMM386.EXE RAM

EMM386 può fornire EMS e UMB.

Con:

DEVICE=C:\DOS\EMM386.EXE NOEMS

si rinuncia all'EMS tradizionale e si privilegia l'utilizzo degli UMB.


9. Perché DOS 5.0 è tanto migliore di DOS 3.3 e 4.x

Questa è la vera differenza.

DOS 3.3 dice, sostanzialmente:

I programmi devono convivere nei 640 KB.

DOS 4.x aggiunge funzionalità, ma tende perfino ad aumentare la pressione sulla conventional memory.

DOS 5.0 dice invece:

Mettiamo il DOS nella HMA.
Mettiamo i driver negli UMB.
Mettiamo i TSR negli UMB.
Lasciamo i 640 KB alle applicazioni.

L'architettura non è stata realmente eliminata.

È stata aggirata intelligentemente.


10. EDIT, QBasic e DOSKEY

MS-DOS 5.0 non è soltanto gestione della memoria.

Introduce strumenti che modificano sensibilmente l'esperienza quotidiana.

EDIT

Finalmente compare:

EDIT

al posto del rudimentale EDLIN come soluzione pratica per modificare file di testo.

Per esempio:

EDIT CONFIG.SYS
EDIT AUTOEXEC.BAT

L'editor è fullscreen e dispone di menu.

QBasic

DOS 5 introduce anche Microsoft QBasic.

Rispetto a GW-BASIC offre un ambiente decisamente più moderno:

  • editor fullscreen;

  • procedure;

  • controllo della sintassi;

  • debugging;

  • menu;

  • ambiente Immediate;

  • organizzazione più strutturata del codice.

EDIT e QBasic sono inoltre strettamente collegati: l'editor fornito con DOS 5 usa componenti dell'ambiente QBasic.

DOSKEY

Con:

DOSKEY

la riga di comando acquista:

  • cronologia;

  • modifica dei comandi;

  • richiamo delle istruzioni precedenti;

  • macro.

Un piccolo cambiamento che rende il prompt molto più piacevole da usare.


11. UNDELETE e UNFORMAT

MS-DOS 5 introduce anche strumenti di recupero.

Quando un file FAT viene cancellato, normalmente DOS non cancella immediatamente i contenuti dei suoi cluster.

L'operazione è approssimativamente:

directory entry
     ↓
marcata come eliminata

FAT
     ↓
cluster marcati come liberi

dati
     ↓
rimangono sul disco
finché non vengono sovrascritti

UNDELETE cerca quindi di recuperare i file prima che i cluster vengano riutilizzati.

UNFORMAT può analogamente recuperare determinate informazioni da supporti accidentalmente formattati, in circostanze appropriate.


12. Il passo successivo: MS-DOS 6.2


Microsoft MS-DOS 6.2 Aggiornamento (1993) - Dettaglio dischetti
Archivio Storico Privato dicecca.net 

Se MS-DOS 5.0 introduce l'architettura moderna della memoria DOS, MS-DOS 6.x tenta di automatizzarla e renderla più gestibile.

Questa differenza è fondamentale.

DOS 5:

utente esperto
   ↓
modifica CONFIG.SYS
   ↓
prova DEVICEHIGH
   ↓
controlla MEM
   ↓
sposta i TSR
   ↓
riavvia

DOS 6.x:

MEMMAKER
   ↓
analisi della memoria
   ↓
modifica automatica
   ↓
test
   ↓
configurazione ottimizzata

13. MemMaker: l'evoluzione naturale di DOS 5

Microsoft MemMaker compare con la generazione 6.x.

Non introduce una nuova tecnologia fondamentale paragonabile agli UMB di DOS 5.

Utilizza invece meglio ciò che DOS 5 aveva già reso possibile:

  • HIMEM;

  • EMM386;

  • UMB;

  • DEVICEHIGH;

  • LOADHIGH.

Microsoft descrive MemMaker proprio come un programma che libera conventional memory spostando driver e TSR nella Upper Memory Area, in particolare sui sistemi 386 e superiori.

Un tipico processo era:

C:\>MEMMAKER

Il computer veniva riavviato più volte mentre MemMaker verificava differenti disposizioni della memoria.

Alla fine poteva produrre, ad esempio:

Conventional memory free

prima:  535 KB
dopo:   568 KB

A volte l'ottimizzazione manuale di un esperto poteva fare meglio, ma MemMaker rendeva accessibile questa procedura a molti più utenti.


14. CONFIG.SYS diventa più sofisticato con DOS 6.x

MS-DOS 6.x introduce inoltre strumenti più raffinati per decidere dove caricare un programma.

Per esempio:

LOADHIGH /L:1 ...

o:

DEVICEHIGH /L:1 ...

consentono di selezionare specifiche regioni UMB.

Microsoft raccomandava comunque agli utenti DOS 6.x di utilizzare MemMaker anziché configurare manualmente ogni regione.

Questo mostra bene la differenza filosofica:

DOS 5

ecco gli strumenti
↓
configurali tu

DOS 6

ecco gli strumenti
↓
proviamo a configurarli automaticamente

15. MultiConfig

MS-DOS 6 introduce anche una funzione estremamente utile: configurazioni multiple di CONFIG.SYS.

Per esempio:

[menu]
menuitem=GAMES, Games
menuitem=WINDOWS, Windows
menuitem=NETWORK, Network

[GAMES]
device=c:\dos\himem.sys
device=c:\dos\emm386.exe ram

[WINDOWS]
device=c:\dos\himem.sys
device=c:\dos\emm386.exe noems

[NETWORK]
device=c:\dos\himem.sys
device=c:\net\network.sys

Questo permette di avere boot differenti.

Per i giochi:

più conventional memory

Per la rete:

driver di rete

Per Windows:

configurazione differente

È una caratteristica importantissima in un'epoca in cui pochi kilobyte potevano determinare se un gioco funzionava oppure mostrava:

Not enough memory

16. F5 e F8: il boot diventa interattivo

La generazione DOS 6 permette inoltre di bypassare o analizzare la configurazione durante l'avvio.

Per esempio:

F5

può evitare l'elaborazione normale della configurazione.

F8

permette invece un avvio interattivo, chiedendo conferma per le varie istruzioni.

Queste funzionalità esistevano nella famiglia DOS 6.x e diventano concettualmente importanti anche per il successivo sistema di boot di Windows 95.


17. ScanDisk: un enorme miglioramento

Uno degli strumenti più importanti di MS-DOS 6.2 è:

SCANDISK

Non bisogna considerarlo semplicemente un nuovo CHKDSK.

ScanDisk può analizzare:

  • struttura FAT;

  • directory;

  • cluster persi;

  • file cross-linked;

  • errori fisici;

  • superficie del disco.

Microsoft lo descriveva come uno strumento capace di rilevare, diagnosticare e riparare sia errori logici sia determinati errori fisici del disco.

Per esempio:

SCANDISK C:

oppure:

SCANDISK /ALL

DOS diventa così molto più autonomo dal punto di vista della manutenzione.


18. DEFRAG

MS-DOS 6.x integra inoltre Microsoft Defragmenter:

DEFRAG

Con FAT, un file può essere distribuito su cluster non contigui:

File A:

cluster 100
cluster 101
cluster 305
cluster 712
cluster 713

Una lettura meccanica da hard disk richiede quindi movimenti continui delle testine.

Dopo la deframmentazione:

cluster 100
cluster 101
cluster 102
cluster 103
cluster 104

Il guadagno poteva essere significativo soprattutto sui dischi dell'epoca.


19. DoubleSpace: utilizzare la CPU per guadagnare disco

Un'altra grande differenza fra DOS 5 e DOS 6.2 è la compressione integrata del disco.

MS-DOS 6.2 utilizza DoubleSpace.

L'idea consiste nel creare un grande contenitore compresso e presentarlo come unità DOS.

Concettualmente:

disco fisico
│
├── piccola parte non compressa
│
└── file contenitore DoubleSpace
      │
      └── unità logica compressa C:

La capacità “percepita” può così aumentare.

Il prezzo è:

  • utilizzo della CPU;

  • maggiore complessità;

  • maggiore rischio in caso di corruzione;

  • dipendenza dal driver di compressione.

DOS 6.2 introduce miglioramenti di sicurezza importanti, fra cui DoubleGuard, che controlla possibili corruzioni della memoria utilizzata da DoubleSpace.


20. DOS 6.2 contro DOS 5.0

A questo punto il confronto è molto chiaro.

MS-DOS 5.0

La grande rivoluzione riguarda:

HMA
UMB
HIMEM
EMM386
LOADHIGH
DEVICEHIGH

MS-DOS 6.2

La base rimane sostanzialmente quella di DOS 5, ma vengono aggiunti:

MemMaker
ScanDisk
Defrag
DoubleSpace
MultiConfig
boot interattivo
migliore Help
strumenti di diagnostica
backup
anti-virus

DOS 6.2 non rivoluziona quindi il modo in cui il processore vede la memoria.

Rende molto più completo l'ambiente operativo.


21. Una nota su MS-DOS 6.22

Anche se il confronto richiesto riguarda principalmente MS-DOS 6.2, vale la pena distinguere il successivo 6.22, perché viene spesso confuso con esso.

DOS 6.2 utilizza:

DoubleSpace

DOS 6.22 utilizza invece:

DriveSpace

Microsoft documentava esplicitamente che DriveSpace in MS-DOS 6.22 utilizzava un formato compresso differente rispetto a DoubleSpace.

MS-DOS 6.22 rappresenta sostanzialmente l'ultima grande edizione stand-alone del DOS Microsoft.

Dalla generazione successiva la situazione cambia completamente.


22. MS-DOS 7.0: il DOS di Windows 95

Microsoft Windows 95 Beta 3 (sx) e Windows 95 Versione A (1995)
Archivio Storico Privato dicecca.net 

Con Windows 95, Microsoft non mette semplicemente una nuova interfaccia grafica sopra MS-DOS 6.

Introduce una versione DOS specificamente modificata per Windows:

MS-DOS 7.0

Questa versione accompagna la prima edizione retail di Windows 95.

Ma chiamarla semplicemente “il sistema operativo sotto Windows 95” rischia di essere fuorviante.

Il rapporto fra DOS e Windows 95 è più interessante.


23. Windows 3.x e DOS: il vecchio modello

Microsoft Windows 3.1 (1992) - Dettaglio dischetti
Archivio Storico Privato dicecca.net 

Con Windows 3.1 il rapporto è abbastanza intuitivo:

BIOS
 ↓
MS-DOS
 ↓
COMMAND.COM
 ↓
C:\>WIN
 ↓
Windows 3.1

MS-DOS è chiaramente il sistema sottostante.

L'utente può:

C:\>

lavorare in DOS e, quando desidera:

C:\>WIN

avviare Windows.

Terminato Windows:

C:\>

si ritorna al DOS.


24. Windows 95 modifica radicalmente il modello

Windows 95 continua a caricare una versione personalizzata di MS-DOS durante il boot.

Raymond Chen, storico sviluppatore Microsoft, descrive due ruoli fondamentali del DOS in Windows 95:

  1. boot loader;

  2. strato di compatibilità per driver e software DOS a 16 bit.

In forma semplificata:

BIOS
 │
 ▼
Boot Sector
 │
 ▼
IO.SYS / MS-DOS 7
 │
 ├── CONFIG.SYS
 │
 ├── COMMAND.COM
 │
 └── AUTOEXEC.BAT
 │
 ▼
WIN.COM
 │
 ▼
VMM
Virtual Machine Manager
 │
 ▼
Windows 95 protected mode
 │
 ▼
Explorer / Win32

Questa architettura è molto diversa dall'idea semplicistica:

Windows 95 = GUI sopra DOS

DOS è necessario all'avvio e alla compatibilità, ma una volta entrato pienamente in protected mode Windows 95 assume il controllo di molti servizi che nei sistemi precedenti appartenevano direttamente al DOS.


25. Che cosa succede a EMM386 sotto Windows 95?

Questo è un dettaglio tecnico particolarmente interessante.

Durante il boot può esserci ancora:

HIMEM.SYS
EMM386.EXE
CONFIG.SYS
AUTOEXEC.BAT

come nel DOS tradizionale.

Ma quando Windows 95 avvia il proprio Virtual Machine Manager e passa alla modalità protetta, la situazione cambia.

Windows dispone infatti del proprio sistema di:

  • memoria virtuale;

  • virtualizzazione;

  • gestione delle applicazioni DOS;

  • filesystem a 32 bit;

  • driver virtuali VxD.

Raymond Chen descrive il passaggio spiegando che Windows 95 disattiva la copia attiva di EMM386 durante la transizione al proprio ambiente protected-mode.

Quindi la tecnica fondamentale di MS-DOS 5:

EMM386 + UMB

continua a essere importante per il real mode, ma non è più il cuore della gestione memoria quando Windows 95 è completamente operativo.


26. MS-DOS 7.0 è comunque un vero DOS

Questo punto è altrettanto importante.

DOS 7.0 non è soltanto un loader fasullo.

Microsoft doveva mantenere una modalità DOS pienamente utilizzabile perché Windows 95 permetteva di avviare il computer nella modalità:

Command Prompt Only

e di eseguire una singola applicazione DOS fuori dall'ambiente grafico.

Chen sottolinea infatti che il DOS personalizzato di Windows 95 era sufficientemente completo da funzionare autonomamente nella modalità dedicata alle applicazioni DOS.

Questo significa che:

DOS 7.0

ha una duplice natura.

Quando Windows non è ancora partito

È il vero ambiente operativo real-mode.

Quando Windows 95 è attivo

Diventa soprattutto parte dell'infrastruttura di compatibilità.


27. Il cambiamento di IO.SYS e MSDOS.SYS

Con DOS tradizionale il boot può essere schematizzato così:

Boot sector
   ↓
IO.SYS
   ↓
MSDOS.SYS
   ↓
CONFIG.SYS
   ↓
COMMAND.COM
   ↓
AUTOEXEC.BAT

Con Windows 95 la situazione cambia.

Il ruolo tradizionale di MSDOS.SYS viene profondamente modificato e il file diventa principalmente un file di configurazione testuale del boot.

IO.SYS legge le sue impostazioni e controlla il processo di avvio. La documentazione Microsoft sul boot di Windows 95 descrive esplicitamente IO.SYS che legge MSDOS.SYS prima di proseguire con l'avvio (cfr. How To Use Windows 98 Volume Unico, pag. 717, clicca qui per il sito)

MSDOS.SYS può contenere opzioni concettualmente simili a:

[Options]
BootGUI=1
BootMenu=0
BootDelay=2

BootGUI=1 indica normalmente di avviare automaticamente l'interfaccia Windows.

Il vecchio:

MSDOS.SYS = componente binario fondamentale del kernel DOS

diventa quindi, nel modello Windows 9x:

MSDOS.SYS = configurazione del boot

È una delle differenze strutturali più profonde fra DOS 6.x e DOS 7.x.


28. VFAT e i nomi lunghi

Un'altra rivoluzione di Windows 95 riguarda i nomi dei file.

Il DOS classico usa la convenzione:

8.3

ossia:

XXXXXXXX.XXX

Esempi:

README.TXT
AUTOEXEC.BAT
COMMAND.COM
CONFIG.SYS

Windows 95 introduce invece il supporto a nomi come:

Relazione tecnica ottobre 1995.doc

La FAT sottostante rimane compatibile, ma Windows memorizza informazioni supplementari nelle directory.

Viene inoltre mantenuto un alias 8.3.

Per esempio:

Program Files

può essere visibile al software DOS come:

PROGRA~1

Microsoft documenta tuttora il meccanismo degli alias 8.3 per i nomi lunghi.


29. Come vengono memorizzati i Long File Names

Il metodo utilizzato da VFAT è particolarmente intelligente.

Una normale entry FAT occupa 32 byte.

Windows inserisce delle directory entry aggiuntive contenenti parti del nome lungo accanto all'entry tradizionale 8.3.

Concettualmente:

Directory

+------------------------------+
| LFN entry: "Relazione te..." |
+------------------------------+
| LFN entry: "...cnica.doc"    |
+------------------------------+
| RELAZI~1.DOC                 |
+------------------------------+

Il vecchio DOS vede essenzialmente:

RELAZI~1.DOC

Windows ricostruisce:

Relazione tecnica.doc

Microsoft documentava che queste informazioni venivano conservate in directory entry adiacenti e che vecchi strumenti DOS potevano interpretarle in maniera errata.


30. Il pericolo dei vecchi programmi DOS

Questo introduce un problema enorme di compatibilità.

Un vecchio programma come un disk utility scritto per DOS 5 o 6 può vedere strutture VFAT che non comprende.

Potrebbe quindi:

vedere entry apparentemente strane
          ↓
considerarle danneggiate
          ↓
“ripararle”
          ↓
distruggere i nomi lunghi

Microsoft avvertiva infatti che utilizzare alcune vecchie versioni DOS di ScanDisk su installazioni Windows 95 poteva danneggiare i long filenames.

Per questo con DOS 7/Windows 95 diventa importante utilizzare gli strumenti corrispondenti alla versione del filesystem.


31. MS-DOS 7.0 non introduce ancora FAT32

È un punto che viene spesso confuso.

La prima versione retail di Windows 95 utilizza MS-DOS 7.0 e mantiene essenzialmente:

FAT12
FAT16
FAT16B

Per i normali volumi FAT16 rimane quindi il problema dei circa 2 GB per partizione.

Il vero salto arriva successivamente.


32. MS-DOS 7.1: il cambiamento più grande nello storage

Con Windows 95 OSR2 compare MS-DOS 7.1.

Ed è qui che arriva:

FAT32

Microsoft documenta che FAT32 diventa disponibile con Windows 95 OSR2 e Windows 98.

Questo è probabilmente il cambiamento filesystem più importante dai tempi dell'introduzione FAT16.


33. Perché FAT16 era ormai un problema

FAT16 può indirizzare un numero limitato di cluster.

Per aumentare la dimensione del volume è quindi necessario aumentare la dimensione di ogni cluster.

Immaginiamo un volume FAT16 molto grande con cluster da:

32 KB

Un file da:

1 byte

occuperà comunque:

32 KB

Un file da 33 KB:

64 KB

Questa perdita viene chiamata slack space o internal fragmentation.

Con migliaia di piccoli file può diventare significativa.


34. FAT32

FAT32 aumenta enormemente il numero di cluster indirizzabili.

Concettualmente:

FAT16
↓
circa 65 mila cluster

FAT32
↓
milioni di cluster

Questo consente di:

  • creare volumi superiori a 2 GB;

  • mantenere cluster più piccoli;

  • ridurre lo spreco;

  • gestire meglio hard disk ormai molto più grandi.

La differenza pratica fra DOS 7.0 e 7.1 diventa quindi:

MS-DOS 7.0
Windows 95 RTM
FAT16
volume ~2 GB

contro:

MS-DOS 7.1
Windows 95 OSR2 / Windows 98
FAT32
volumi >2 GB

Microsoft descriveva espressamente FAT32 in OSR2 come il filesystem che permetteva unità logiche superiori a 2 GB.


35. Da 32 MB a gigabyte: vent'anni di evoluzione compressi in pochi anni

La progressione è impressionante.

DOS 3.3

max volume ≈ 32 MB

DOS 4.x / 5 / 6.x

max FAT16 ≈ 2 GB

DOS 7.1 / FAT32

volumi molto superiori a 2 GB

In termini relativi:

32 MB
 ↓
2048 MB
 ↓
decine di GB

Il filesystem diventa quindi uno dei punti nei quali DOS 7.1 si differenzia maggiormente da DOS 5.0.


36. Ma DOS 7.1 è davvero ancora DOS?

Sì, ma con una precisazione fondamentale.

In DOS 5.0:

DOS
│
└── eventualmente Windows 3.x

DOS è il prodotto centrale.

In Windows 98:

DOS 7.1
│
└── bootstrap / compatibility
        │
        ▼
     Windows 98

L'utente normale non dovrebbe più percepire DOS come sistema operativo principale.

Eppure rimane possibile:

  • avviare in modalità comando;

  • utilizzare CONFIG.SYS;

  • utilizzare AUTOEXEC.BAT;

  • eseguire applicazioni DOS;

  • utilizzare driver real-mode;

  • utilizzare HIMEM;

  • utilizzare strumenti DOS;

  • creare floppy di boot.

È quindi contemporaneamente:

un vero DOS

e:

un componente interno di Windows

37. DOS dentro Windows 95/98

Quando si apre:

MS-DOS Prompt

dentro Windows 95 o 98, non si sta necessariamente eseguendo il computer nello stesso ambiente di un boot DOS puro.

Windows utilizza Virtual DOS Machines.

Concettualmente:

Windows 95/98
│
├── applicazione Win32
├── applicazione Win32
│
├── DOS VM
│    └── programma DOS
│
└── DOS VM
     └── altro programma DOS

Il Virtual Machine Manager controlla queste sessioni.

Questo permette a Windows 9x di fornire un livello di isolamento e virtualizzazione molto superiore rispetto a DOS puro, pur mantenendo una compatibilità estremamente elevata.


38. Ma la compatibilità ha un prezzo

Windows 95 permette ai vecchi programmi DOS un accesso molto profondo al sistema proprio per preservare la compatibilità.

Questo è uno dei motivi per cui Windows 9x non offre la stessa robustezza di un sistema della famiglia Windows NT.

Programmi DOS potevano storicamente:

  • intercettare interrupt;

  • modificare vettori;

  • parlare direttamente con il BIOS;

  • accedere direttamente all'hardware;

  • effettuare I/O sulle porte;

  • utilizzare driver real-mode.

Windows 95 virtualizza molti di questi comportamenti, ma non può vietarli completamente senza rompere una quantità enorme di software.

Raymond Chen descrive proprio questa necessità di mantenere compatibilità con programmi e driver DOS che modificavano direttamente interrupt e strutture del sistema.


39. Confronto dell'avvio: DOS 5 contro Windows 95/98

MS-DOS 5.0

POWER ON
   │
   ▼
BIOS POST
   │
   ▼
MBR
   │
   ▼
Boot Sector
   │
   ▼
IO.SYS
   │
   ▼
MSDOS.SYS
   │
   ▼
CONFIG.SYS
   │
   ▼
COMMAND.COM
   │
   ▼
AUTOEXEC.BAT
   │
   ▼
C:\>

MS-DOS 6.2

Molto simile:

BIOS
 ↓
Boot Sector
 ↓
IO.SYS
 ↓
MSDOS.SYS
 ↓
CONFIG.SYS
 ↓
COMMAND.COM
 ↓
AUTOEXEC.BAT
 ↓
C:\>

con però:

MultiConfig
MemMaker
Interactive Startup

Windows 95 / DOS 7

BIOS
 ↓
Boot sector
 ↓
IO.SYS
 ↓
legge MSDOS.SYS
 ↓
CONFIG.SYS
 ↓
COMMAND.COM
 ↓
AUTOEXEC.BAT
 ↓
WIN.COM
 ↓
VMM
 ↓
driver virtuali
 ↓
protected mode
 ↓
Windows 95

La differenza concettuale è enorme.


40. DOS=HIGH,UMB nel mondo Windows 98

Microsoft Windows 98 (1998) - OEM e Aggiornamento
Archivio Storico Privato dicecca.net


Microsoft Windows 98 Second Edition (1999)
Archivio Storico Privato dicecca.net

Anche su una macchina Windows 98 si possono ancora incontrare istruzioni come (cfr. How To Use Windows 98 Volume Unico, pag. 723, clicca qui per il sito):

DEVICE=C:\WINDOWS\HIMEM.SYS
DOS=HIGH,UMB

e, quando necessario:

DEVICE=C:\WINDOWS\EMM386.EXE NOEMS

Queste istruzioni continuano a essere perfettamente sensate per la parte real-mode e per configurazioni DOS dedicate; esempi di configurazioni Windows 98 mostrano ancora HIMEM, EMM386 e DOS=HIGH,UMB.

Ma la loro importanza cambia.

Nel 1991:

ottimizzare UMB
=
essenziale per usare il PC

Nel 1998:

ottimizzare UMB
=
importante soprattutto per
vecchi giochi e software DOS

41. Un esempio pratico: gioco DOS molto esigente

Immaginiamo un gioco del 1993 che richieda:

600 KB conventional memory
2 MB EMS
mouse
CD-ROM
sound driver

Sotto DOS 3.3

Molto difficile.

Mancano gli strumenti integrati per ottimizzare la memoria.

Sotto DOS 5.0

È possibile configurare:

HIMEM
EMM386 RAM
DOS=HIGH,UMB
DEVICEHIGH
LOADHIGH

e ottenere EMS più molta conventional memory.

Sotto DOS 6.2

Si può far fare gran parte del lavoro a:

MEMMAKER

e creare una configurazione dedicata:

[GAMES]

nel menu di boot.

Sotto Windows 95

Si può:

  1. lanciarlo dentro una DOS VM;

  2. configurare le proprietà della sessione;

  3. se necessario riavviare in MS-DOS Mode.

Sotto Windows 98

Il comportamento è simile, con in più il vantaggio che il disco principale potrebbe essere FAT32.

Qui però compaiono possibili problemi con vecchi software che assumono FAT16 o accedono direttamente alla struttura del disco.


42. Nomi lunghi: DOS 6.2 contro DOS 7

Prendiamo:

C:\Program Files\Microsoft Games

Su Windows 95/98 l'utente vede:

Program Files
Microsoft Games

Un vecchio programma DOS può invece vedere qualcosa come:

C:\PROGRA~1\MICROS~1

Questa doppia identità è fondamentale.

Windows mantiene:

Long File Name
+
Short 8.3 alias

per consentire a software degli anni Ottanta di continuare ad accedere a file creati da applicazioni degli anni Novanta. Microsoft documenta esplicitamente questa coesistenza fra alias 8.3 e nomi lunghi.


43. Perché questa compatibilità è straordinaria

Consideriamo un programma scritto nel 1988.

Si aspetta nomi come:

DATABASE.DBF
LETTER.TXT
REPORT.EXE

Nel 1998 potrebbe essere eseguito su un computer con:

  • Pentium II;

  • 64 MB RAM;

  • disco da diversi GB;

  • FAT32;

  • Windows 98;

  • nomi lunghi;

  • desktop grafico;

  • rete TCP/IP.

Eppure vede ancora:

C:\>

può chiamare:

INT 21h

e continuare a credere di essere in un ambiente DOS tradizionale.

Questa retrocompatibilità è probabilmente uno dei risultati tecnici più impressionanti — e contemporaneamente una delle principali fonti di complessità — dell'intera famiglia Windows 9x.


44. Evoluzione della gestione memoria

Possiamo quindi tracciare un'altra progressione.

DOS 3.3

640 KB
│
├─ DOS
├─ driver
├─ TSR
└─ programma

DOS 5.0

HMA
└─ DOS

UMB
├─ driver
└─ TSR

640 KB
└─ programma

DOS 6.2

MemMaker
   │
   ├─ analizza UMB
   ├─ configura EMM386
   ├─ sposta driver
   └─ sposta TSR

Windows 95/98

real mode DOS
      ↓
bootstrap
      ↓
VMM
      ↓
protected mode
      ↓
virtualizzazione della memoria
      ↓
DOS virtual machines

MS-DOS 5 perfeziona quindi il real mode.

MS-DOS 6 automatizza quel perfezionamento.

Windows 95 cambia completamente livello di astrazione.


45. Conventional Memory: da problema centrale a problema di compatibilità

Nel 1991 un utente poteva passare ore per ottenere:

612 KB free conventional memory

invece di:

570 KB

Una differenza di 42 KB poteva significare:

gioco funzionante

oppure:

Not enough memory

Nel 1998 un PC poteva avere:

64 MB
128 MB

di RAM.

Ma un vecchio gioco DOS poteva ancora chiedere:

590 KB conventional memory

Ecco quindi uno degli aspetti più paradossali dell'era Windows 98:

Computer con 128 MB RAM

ma...

programma DOS:
"Not enough conventional memory"

Il problema architetturale nato con l'8086 non era scomparso.

Era semplicemente diventato un problema confinato alla compatibilità.


46. Filesystem: la seconda grande linea evolutiva

Un'altra maniera efficace di osservare le versioni è attraverso il filesystem.

DOS 3.3
FAT16
32 MB per volume
        │
        ▼
DOS 4.x
FAT16B
~2 GB
        │
        ▼
DOS 5
FAT16B
~2 GB
        │
        ▼
DOS 6.2
FAT16B
~2 GB
        │
        ▼
DOS 7.0
FAT16 + VFAT
~2 GB
nomi lunghi sotto Windows
        │
        ▼
DOS 7.1
FAT32 + VFAT
volumi >2 GB
nomi lunghi

Da questo punto di vista MS-DOS 7.1 rappresenta un salto quasi paragonabile a quello fra DOS 3.3 e DOS 4.


47. Strumenti di manutenzione: altra progressione

DOS 3.3

Strumenti relativamente rudimentali.

CHKDSK
RECOVER

DOS 5

Aggiunge:

UNDELETE
UNFORMAT

DOS 6.2

Arrivano:

SCANDISK
DEFRAG
Microsoft Backup
Anti-Virus
MemMaker
DoubleSpace

Windows 95/98

Molte di queste funzioni passano progressivamente anche all'interfaccia grafica.

Esistono contemporaneamente:

strumenti DOS
+
strumenti Windows

Per ScanDisk questo è particolarmente importante, perché gli strumenti devono essere consapevoli di VFAT e dei nomi lunghi.


48. Chi è “più DOS” fra 5.0, 6.2 e 7.1?

È una domanda interessante.

MS-DOS 5.0

È probabilmente il DOS più rappresentativo per chi ama comprendere la macchina.

È:

  • relativamente semplice;

  • potente;

  • interamente autonomo;

  • fortemente configurabile;

  • abbastanza moderno.

MS-DOS 6.2

È il DOS autonomo più completo sul piano degli strumenti.

Rende più semplici:

  • ottimizzazione memoria;

  • manutenzione;

  • diagnostica;

  • configurazioni multiple;

  • compressione.

MS-DOS 7.1

Tecnicamente possiede capacità che DOS 5 e 6 non hanno, soprattutto FAT32.

Ma non è più pensato come prodotto indipendente.

La sua ragion d'essere è:

Windows 95 OSR2
Windows 98
Windows 98 SE

49. Quale versione rappresenta il massimo sviluppo del DOS classico?

Dipende dalla definizione.

Per eleganza architetturale

MS-DOS 5.0

Perché introduce la grande strategia:

HMA + UMB + EMM386

senza sovraccaricare eccessivamente il sistema.

Per completezza come sistema DOS autonomo

MS-DOS 6.2/6.22

Perché integra praticamente tutto ciò che un utente DOS può desiderare:

memoria
diagnostica
backup
compressione
defrag
recupero
configurazioni multiple

Per capacità tecniche del filesystem

MS-DOS 7.1

Perché introduce FAT32 e può vivere su hardware molto più moderno.

Ma appartiene ormai all'ecosistema Windows 9x.


50. Il punto di svolta storico

La trasformazione può essere rappresentata così:

1987
MS-DOS 3.3
"Il PC è DOS"
      │
      ▼
1988
MS-DOS 4.x
"Rendiamo DOS più moderno"
      │
      ▼
1991
MS-DOS 5.0
"Spremiamo al massimo l'architettura x86"
      │
      ▼
1993
MS-DOS 6.2
"Automatizziamo e completiamo DOS"
      │
      ▼
1995
MS-DOS 7.0
"DOS serve Windows"
      │
      ▼
1996+
MS-DOS 7.1
"DOS è l'infrastruttura legacy di Windows 9x"

51. Una macchina DOS 5.0 ideale

Immaginiamo:

Intel 386DX-33
4 MB RAM
120 MB HDD
VGA
Sound Blaster
Mouse seriale

CONFIG.SYS:

DEVICE=C:\DOS\HIMEM.SYS
DEVICE=C:\DOS\EMM386.EXE RAM
DOS=HIGH,UMB
FILES=30
BUFFERS=20
DEVICEHIGH=C:\DOS\ANSI.SYS

AUTOEXEC.BAT:

@ECHO OFF
PROMPT $P$G
PATH C:\DOS;C:\UTIL
SET TEMP=C:\TEMP

LH C:\DOS\DOSKEY
LH C:\MOUSE\MOUSE.COM

L'obiettivo:

massimizzare

Largest executable program size

52. La stessa macchina con DOS 6.2

La configurazione può essere simile:

DEVICE=C:\DOS\HIMEM.SYS
DEVICE=C:\DOS\EMM386.EXE RAM
DOS=HIGH,UMB

ma l'utente può eseguire:

MEMMAKER

e lasciare al programma il compito di determinare una disposizione migliore.

Può inoltre creare:

[menu]
menuitem=GAMES
menuitem=WINDOWS

e avere un boot dedicato ai giochi:

[GAMES]
DEVICE=C:\DOS\HIMEM.SYS
DEVICE=C:\DOS\EMM386.EXE RAM

e uno dedicato a Windows:

[WINDOWS]
DEVICE=C:\DOS\HIMEM.SYS
DEVICE=C:\DOS\EMM386.EXE NOEMS

Questa è un'evoluzione enorme nell'usabilità.


53. La stessa filosofia sotto Windows 95

Con Windows 95 il flusso diventa:

POWER
 ↓
DOS 7.0
 ↓
CONFIG.SYS
 ↓
AUTOEXEC.BAT
 ↓
WIN.COM
 ↓
VMM
 ↓
WINDOWS 95

Una volta entrati in Windows:

DOS program
     ↓
Virtual DOS Machine
     ↓
VMM
     ↓
hardware / virtual driver

Il DOS classico non controlla più da solo l'intera macchina.


54. E sotto Windows 98 / DOS 7.1?

Il concetto rimane simile:

POWER
 ↓
DOS 7.1
 ↓
bootstrap
 ↓
Windows 98
 ↓
VMM32
 ↓
32-bit protected mode environment

ma lo storage può essere:

FAT32

e il disco:

C: 10 GB

senza bisogno di dividerlo necessariamente in cinque partizioni FAT16 da 2 GB.

Questa differenza, per un utente domestico della fine degli anni Novanta, era enorme.


55. Un confronto esemplificativo con un disco da 8 GB

Supponiamo di installare un disco da 8 GB.

DOS 3.3

Impossibile sfruttarlo direttamente come singolo volume.

Il limite di 32 MB renderebbe la situazione assurda.

DOS 5.0

FAT16 consente volumi molto maggiori, ma il limite pratico per volume rimane circa 2 GB.

Occorrerebbero più unità:

C: 2 GB
D: 2 GB
E: 2 GB
F: 2 GB

DOS 6.2

Stesso problema di base.

DOS 7.0

Ancora FAT16:

C:
D:
E:
F:

DOS 7.1 con FAT32

Possiamo avere, per esempio:

C: 8 GB

Da solo questo spiega perché FAT32 sia uno dei cambiamenti più importanti dell'intera storia DOS/Windows 9x.


56. Esempio con 10.000 piccoli file

Immaginiamo 10.000 file da 2 KB.

Con cluster FAT16 da 32 KB:

10.000 × 32 KB
=
320.000 KB occupati

anche se i dati reali sono soltanto:

10.000 × 2 KB
=
20.000 KB

Naturalmente l'esempio è volutamente estremo, ma mostra il problema.

Con cluster FAT32 più piccoli, lo spreco può diminuire drasticamente.

FAT32 non serve quindi soltanto a ottenere partizioni grandi.

Serve anche a utilizzare meglio lo spazio sui grandi dischi.


57. MS-DOS 5 contro 7.1: stessa famiglia, mondo completamente diverso

Confrontiamo direttamente due macchine.

PC del 1991

386DX
4 MB RAM
120 MB HDD
MS-DOS 5
Windows 3.0

L'utente pensa:

DOS è il sistema operativo.
Windows è un programma che lancio.

PC del 1998

Pentium II
64 MB RAM
8 GB HDD
Windows 98 / DOS 7.1

L'utente pensa:

Windows è il sistema operativo.
DOS è qualcosa che uso
per i vecchi programmi.

Tecnicamente DOS esiste ancora.

Psicologicamente è già scomparso.


58. E proprio qui sta l'importanza di MS-DOS 5.0

DOS 5 si trova esattamente a metà fra questi due mondi.

Guarda indietro verso:

8086
640 KB
real mode
FAT
BIOS
interrupt

ma sfrutta:

80286
80386
XMS
HMA
paging
UMB

È ancora completamente DOS, ma riesce a utilizzare funzionalità hardware progettate per sistemi molto più sofisticati.

È probabilmente il punto nel quale l'ingegneria DOS raggiunge la propria forma più elegante.


59. Confronto tecnico finale

MS-DOS 3.3 — il DOS essenziale

Pregi

  • piccolo;

  • semplice;

  • stabile;

  • compatibile;

  • ideale per XT e AT;

  • introduce importanti miglioramenti ai dischi e alle partizioni.

Limiti

  • volumi da circa 32 MB;

  • nessuna gestione moderna della memoria;

  • strumenti molto basilari;

  • praticamente nessuna interfaccia evoluta.


MS-DOS 4.x — il DOS ambizioso

Pregi

  • FAT16B;

  • volumi molto più grandi;

  • DOS Shell;

  • strumenti amministrativi più sofisticati;

  • maggiore attenzione all'interfaccia.

Limiti

  • più pesante;

  • maggiore consumo di memoria;

  • problemi di compatibilità nelle prime release;

  • reputazione poco favorevole.


MS-DOS 5.0 — il DOS tecnicamente elegante

Pregi

  • HMA;

  • DOS=HIGH;

  • UMB;

  • EMM386;

  • HIMEM;

  • DEVICEHIGH;

  • LOADHIGH;

  • DOSKEY;

  • EDIT;

  • QBasic;

  • UNDELETE;

  • UNFORMAT;

  • Shell migliorata;

  • ottima compatibilità.

Limiti

  • configurazione manuale spesso complessa;

  • ancora FAT16;

  • 640 KB ancora fondamentali;

  • nessun multitasking reale;

  • nessuna protezione della memoria.


MS-DOS 6.2 — il DOS completo

Pregi

  • mantiene l'ottima gestione memoria di DOS 5;

  • MemMaker;

  • ScanDisk;

  • Defrag;

  • DoubleSpace;

  • DoubleGuard;

  • MultiConfig;

  • boot interattivo;

  • strumenti di backup;

  • diagnostica molto più completa.

Limiti

  • maggiore complessità;

  • compressione disco non priva di rischi;

  • stesso limite fondamentale FAT16;

  • l'architettura 640 KB rimane.


MS-DOS 7.0 — il DOS diventa parte di Windows

Pregi

  • eccellente compatibilità con vecchio software;

  • integrazione con Windows 95;

  • supporto dell'ecosistema VFAT;

  • long filenames sotto Windows;

  • ambiente DOS ancora pienamente utilizzabile;

  • Virtual DOS Machines sotto Windows.

Limiti

  • non è più un prodotto realmente indipendente;

  • ancora FAT16;

  • i nomi lunghi complicano la compatibilità con vecchie utility;

  • architettura strettamente legata a Windows 95.


MS-DOS 7.1 — il DOS incontra i grandi hard disk

Pregi

  • FAT32;

  • partizioni superiori a 2 GB;

  • cluster più efficienti;

  • grande capacità di retrocompatibilità;

  • piena integrazione con Windows 95 OSR2 e Windows 98.

Limiti

  • DOS è ormai principalmente infrastruttura legacy;

  • software molto vecchio può non comprendere FAT32;

  • vecchie utility disco possono essere pericolose;

  • il vero sistema d'uso quotidiano è ormai Windows.


60. MS-DOS 8.0 e Windows Me: l'ultimo DOS, ma nascosto

Microsoft Windows Millenium Edition (2000) 
Archivio Storico Privato dicecca.net

Con Windows Millennium Edition, pubblicato nel 2000, la famiglia Windows 9x arriva alla propria ultima generazione.

Sotto Windows Me continua a esistere una versione di DOS:

MS-DOS 8.00

Non si tratta semplicemente di un'etichetta teorica. Windows Me controlla realmente la versione DOS presente durante l'avvio e, in determinate condizioni di installazione o ripristino, può mostrare esplicitamente il messaggio:

This version of Windows runs only on MS-DOS 8.00

Microsoft documentò direttamente questo comportamento nella propria Knowledge Base.

MS-DOS 8.0 rappresenta però un caso molto diverso da tutte le versioni precedenti.

Con:

MS-DOS 5.0
MS-DOS 6.2
MS-DOS 7.0
MS-DOS 7.1

era ancora possibile, in modi diversi, fermare l'avvio prima dell'interfaccia grafica e utilizzare il DOS real-mode installato sul disco fisso come ambiente operativo autonomo.

Con Windows Me Microsoft decide invece deliberatamente di interrompere questo modello.

La progressione diventa quindi:

MS-DOS 6.x

DOS è il sistema operativo
        │
        ▼
Windows viene eventualmente avviato


MS-DOS 7.x / Windows 95-98

DOS inizializza il sistema
        │
        ▼
può ancora essere usato autonomamente
        │
        ▼
Windows 9x


MS-DOS 8.0 / Windows Me

DOS inizializza ciò che serve al bootstrap
        │
        ▼
Windows deve partire
        │
        ▼
il DOS real-mode autonomo
non è più un normale ambiente supportato

Ed è proprio questa la caratteristica che rende MS-DOS 8.0 così particolare.


60.1 MS-DOS 8.0 esiste, ma non è un DOS stand-alone

MS-DOS 8.0 non venne commercializzato come sistema operativo indipendente.

Non esiste quindi un prodotto retail equivalente a:

Microsoft MS-DOS 5.0
Microsoft MS-DOS 6.2
Microsoft MS-DOS 6.22

da installare normalmente come sistema operativo autonomo.

È invece un componente di:

Windows Millennium Edition

esattamente come MS-DOS 7.x era strettamente legato a Windows 95 e Windows 98, ma con un'integrazione ancora più forte.

Da questo punto di vista possiamo tracciare una linea molto precisa:

DOS 5.0
DOS autonomo
     │
     ▼
DOS 6.x
DOS autonomo molto completo
     │
     ▼
DOS 7.0
DOS integrato in Windows 95
     │
     ▼
DOS 7.1
DOS integrato in Windows 95 OSR2 / 98
     │
     ▼
DOS 8.0
DOS quasi completamente nascosto
dentro Windows Me

60.2 La grande differenza: viene rimosso il normale Real Mode DOS

Windows Me appartiene ancora tecnicamente alla famiglia Windows 9x.

Non utilizza quindi il kernel NT di Windows 2000.

Eppure Microsoft compie una scelta significativa: elimina dal normale processo di avvio il supporto per l'utilizzo del real-mode MS-DOS come ambiente autonomo installato sul disco fisso.

Microsoft descrisse esplicitamente il cambiamento come:

removal of real-mode support

e spiegò che fra gli obiettivi vi erano:

  • ridurre il tempo di avvio;

  • eliminare driver real-mode problematici;

  • migliorare la stabilità;

  • spingere l'hardware verso driver Windows protected-mode.

Nei test citati da Microsoft, l'eliminazione del vecchio percorso real-mode poteva ridurre il tempo di avvio di circa 4–12 secondi, soprattutto sulle configurazioni con CONFIG.SYS e AUTOEXEC.BAT molto complessi.

È una rottura notevole rispetto a Windows 98.


60.3 Windows 98: BootGUI=0

In Windows 95 e Windows 98 il file:

C:\MSDOS.SYS

non è più il vecchio kernel binario delle versioni DOS classiche, ma un file di configurazione del boot.

Una delle opzioni storicamente più interessanti è:

[Options]
BootGUI=1

Con:

BootGUI=1

il sistema prosegue normalmente verso Windows.

Su Windows 95/98 si poteva invece utilizzare:

BootGUI=0

per non entrare automaticamente nell'interfaccia grafica.

Concettualmente:

Windows 98

IO.SYS
  │
  ├── CONFIG.SYS
  ├── COMMAND.COM
  ├── AUTOEXEC.BAT
  │
  ▼
C:\>
  │
  │ WIN
  ▼
Windows 98

Questo rende Windows 95 e 98 sistemi molto interessanti per il retrocomputing.

È possibile avere sulla stessa installazione:

Windows
+
un ambiente DOS 7.x praticamente completo

e scegliere di volta in volta quale utilizzare.


60.4 Windows Me: BootGUI=0 non restituisce il vecchio comportamento

Con Windows Me questo modello viene intenzionalmente interrotto.

Modificare MSDOS.SYS aspettandosi che:

BootGUI=0

produca lo stesso ambiente DOS autonomo di Windows 95 o Windows 98 non costituisce più un metodo supportato per avviare il DOS real-mode dal disco fisso.

In altre parole, su Windows 98 il concetto era:

BootGUI=0

        ↓

fermati al DOS

C:\>

In Windows Me il flusso progettato è invece:

MS-DOS 8 bootstrap
        │
        ▼
Windows Me

e Microsoft non fornisce più il normale percorso supportato:

MS-DOS 8
        │
        X
        ▼
C:\> permanente

come ambiente di lavoro autonomo.

La differenza è quindi molto più profonda di una semplice opzione rimossa.

Microsoft sta modificando il ruolo stesso del DOS.


60.5 Scompare “Restart in MS-DOS Mode”

Windows 95 e Windows 98 offrivano anche l'opzione:

Restart the computer in MS-DOS mode

che permetteva di terminare Windows e rientrare in un ambiente DOS real-mode.

Era particolarmente utile per:

  • vecchi giochi;

  • programmi che accedevano direttamente all'hardware;

  • utility di partizionamento;

  • programmi che richiedevano EMS particolare;

  • software incompatibile con una DOS Virtual Machine;

  • applicazioni che pretendevano il controllo quasi totale del PC.

Windows Me elimina questa opzione dall'interfaccia di spegnimento.

Microsoft lo documentò esplicitamente: “Restart Computer in MS-DOS Mode” non è disponibile in Windows Me perché Windows Me non supporta quel normale modello di funzioni MS-DOS real-mode.

Quindi:

Windows 98

Start
 ↓
Shut Down
 ↓
Restart in MS-DOS mode
 ↓
C:\>

diventa in Windows Me:

Windows Me

Start
 ↓
Shut Down
 ↓
nessuna normale opzione
"Restart in MS-DOS mode"

Questa è forse la differenza più evidente per un utente DOS dell'epoca.


60.6 CONFIG.SYS e AUTOEXEC.BAT perdono il loro vecchio ruolo

In DOS tradizionale:

CONFIG.SYS

e:

AUTOEXEC.BAT

sono componenti fondamentali dell'avvio.

Per esempio:

DEVICE=C:\DOS\HIMEM.SYS
DEVICE=C:\DOS\EMM386.EXE RAM
DOS=HIGH,UMB
DEVICEHIGH=C:\DOS\ANSI.SYS

e:

LH C:\MOUSE\MOUSE.COM
SET BLASTER=A220 I5 D1 H5 P330 T6
PATH=C:\DOS

potevano definire buona parte dell'ambiente operativo.

Anche Windows 95 e Windows 98 continuavano ad accettare questo modello per mantenere la compatibilità.

Windows Me riduce drasticamente questa dipendenza.

Microsoft specificava che i driver real-mode non potevano più essere caricati normalmente tramite CONFIG.SYS o AUTOEXEC.BAT per essere disponibili nella System VM.

Un esempio citato direttamente da Microsoft è:

DEVICE=C:\WINDOWS\COMMAND\ANSI.SYS

che non segue più il normale modello delle versioni precedenti.

È un cambiamento enorme rispetto a DOS 5.0.


60.7 Le variabili d'ambiente vengono spostate nel Registry

Windows 98 poteva ancora utilizzare AUTOEXEC.BAT per impostazioni globali come:

PATH=
SET TEMP=
SET TMP=

Con la rimozione del tradizionale percorso real-mode, Windows Me deve trovare un altro sistema.

Microsoft sposta quindi queste informazioni nel Registry, in particolare nell'area:

HKEY_LOCAL_MACHINE
 \System
  \CurrentControlSet
   \Control
    \SessionManager
     \Environment

Durante l'installazione Windows Me migra le variabili d'ambiente provenienti dalla vecchia configurazione.

Successivamente DOSMGR rende queste impostazioni disponibili all'ambiente MS-DOS principale di Windows.

La trasformazione è significativa.

DOS 6.2

AUTOEXEC.BAT
     │
     ▼
SET TEMP=C:\TEMP
PATH=C:\DOS

Windows 98

AUTOEXEC.BAT
     │
     ▼
ambiente DOS/Windows

Windows Me

Registry
     │
     ▼
DOSMGR
     │
     ▼
ambiente della System VM

È un altro segnale del progressivo allontanamento dall'architettura DOS tradizionale.


60.8 Che cosa succede ai programmi DOS?

Windows Me non elimina la possibilità di eseguire software DOS.

La maggior parte dei programmi continua a essere eseguita all'interno di una:

Virtual DOS Machine

come già accadeva sotto Windows 95 e Windows 98.

Il modello è quindi:

Windows Me
│
├── applicazione Win32
│
├── applicazione Win32
│
├── DOS VM
│    └── programma DOS
│
└── DOS VM
     └── altro programma DOS

Microsoft indicava esplicitamente che la maggior parte dei programmi classificati come MS-DOS-based continuava a essere eseguita in una MS-DOS VM all'interno di Windows Me.

La differenza riguarda i programmi che non vogliono una macchina DOS virtuale, ma pretendono un vero ambiente real-mode con controllo diretto della macchina.

Ed è proprio questo software a soffrire maggiormente.


60.9 EMM386 cambia ancora significato

Con DOS 5.0:

EMM386.EXE

è una delle colonne portanti del sistema.

Serve per:

  • EMS;

  • UMB;

  • virtual 8086 mode;

  • gestione degli spazi superiori;

  • liberare conventional memory.

Con DOS 6.2 continua ad avere un'importanza enorme.

Con Windows 95/98 rimane utile per il DOS real-mode, anche se Windows possiede il proprio VMM.

Con Windows Me la situazione cambia nuovamente.

Microsoft documentò che il floppy di avvio di Windows Me non supportava normalmente il caricamento di:

EMM386.EXE

e suggeriva, nei casi in cui fosse indispensabile un vero ambiente EMS real-mode, di utilizzare un disco di avvio Windows 95B/95C, Windows 98 o Windows 98 SE appropriato.

L'evoluzione di EMM386 riassume quasi da sola la storia del DOS:

DOS 5
EMM386 è fondamentale
       │
       ▼
DOS 6
EMM386 viene ottimizzato automaticamente
       │
       ▼
DOS 7
EMM386 è soprattutto importante
per la modalità DOS
       │
       ▼
DOS 8
la modalità DOS real-mode
non è più il normale ambiente operativo

60.10 Ma allora il floppy di avvio di Windows Me?

Qui compare un'apparente contraddizione.

Se Windows Me “rimuove il DOS real-mode”, perché esiste un Windows Me Startup Disk che porta a un prompt?

Perché Microsoft non elimina completamente il codice DOS necessario per:

  • installazione;

  • emergenza;

  • recovery;

  • partizionamento;

  • accesso al disco quando Windows non parte.

Il disco di emergenza può infatti mostrare opzioni quali:

Start Computer with CD-ROM Support

Start Computer without CD-ROM Support

Minimal Boot

e arrivare a un prompt DOS.

Microsoft indicava proprio l'uso dello Startup Disk come soluzione quando era necessario ottenere un prompt fuori da Windows Me.

Bisogna quindi distinguere con grande precisione:

MS-DOS 8.0 real-mode
come ambiente di emergenza
su boot disk

          SÌ

da:

MS-DOS 8.0 real-mode
come normale modalità alternativa
dell'installazione Windows Me
su hard disk

          NO

almeno nel sistema ufficialmente supportato da Microsoft.

Questa distinzione è essenziale.


60.11 Il paradosso di MS-DOS 8.0

MS-DOS 8.0 è quindi probabilmente la versione più paradossale di tutta la famiglia.

Da una parte:

è realmente DOS 8.00

e Windows Me richiede esplicitamente quella versione.

Dall'altra:

Microsoft cerca di impedire
all'utente normale di usarlo
come un DOS autonomo

Possiamo rappresentarlo così:

MS-DOS 5.0
"Usami direttamente"


MS-DOS 6.2
"Usami direttamente,
e ti aiuto a configurarmi"


MS-DOS 7.0
"Avvio Windows 95,
ma puoi ancora usarmi direttamente"


MS-DOS 7.1
"Avvio Windows 98,
gestisco FAT32,
e puoi ancora usarmi direttamente"


MS-DOS 8.0
"Avvio Windows Me.
Normalmente devi proseguire verso Windows."

60.12 DOS 7.1 contro DOS 8.0

Questa è probabilmente la comparazione più interessante.

MS-DOS 7.1 / Windows 98 SE

Permette ancora facilmente:

BootGUI=0

un normale prompt DOS durante il boot.

Permette inoltre:

Restart in MS-DOS Mode

e conserva un modello molto vicino a quello storico di DOS.

Per un computer dedicato sia a Windows sia ai giochi DOS è quindi estremamente flessibile.

MS-DOS 8.0 / Windows Me

Mantiene:

  • compatibilità DOS virtualizzata;

  • FAT32;

  • COMMAND.COM;

  • numerose utility DOS;

  • infrastruttura DOS necessaria al boot;

  • disco di emergenza basato su DOS.

Ma elimina dal normale utilizzo supportato:

  • Command Prompt Only come ambiente real-mode equivalente a quello di 98;

  • Restart in MS-DOS Mode;

  • il caricamento tradizionale dei driver real-mode per la System VM;

  • il modello classico basato pesantemente su CONFIG.SYS.

Microsoft dichiarò espressamente che programmi DOS come alcune versioni di PartitionMagic potevano non funzionare perché Windows Me non forniva il normale supporto real-mode MS-DOS, suggerendo in tali casi l'avvio tramite floppy Windows 95/98.


60.13 Windows 98 SE può quindi essere “migliore” di Me per DOS

Se l'obiettivo è utilizzare vecchio software DOS nativamente, Windows 98 Second Edition possiede un vantaggio notevole.

Permette di avere nello stesso computer:

Windows 98 SE
+
MS-DOS 7.1 real mode
+
FAT32
+
Windows DOS VM

È una combinazione estremamente versatile.

Un PC retro basato su:

Pentium
Pentium MMX
Pentium II
Pentium III

può quindi utilizzare Windows 98 SE per applicazioni Windows e allo stesso tempo essere riavviato in un ambiente DOS relativamente autentico per giochi più vecchi.

Windows Me privilegia invece:

Windows

rispetto a:

DOS standalone

Questa scelta ha senso nell'ottica Microsoft del 2000, ma rende Me meno interessante per alcune configurazioni retro-DOS.


60.14 Perché Microsoft fece questa scelta?

Nel 2000 Microsoft considerava il real-mode DOS sempre più come un'eredità che creava problemi.

Vecchi driver caricati da CONFIG.SYS e AUTOEXEC.BAT potevano:

  • rallentare l'avvio;

  • entrare in conflitto con driver protected-mode;

  • creare instabilità;

  • accedere direttamente all'hardware;

  • interferire con Plug and Play;

  • duplicare funzioni già gestite da Windows.

Microsoft affermava che la rimozione di TSR e driver real-mode eliminava una percentuale significativa di problemi e che affidarsi esclusivamente ai driver Windows migliorava la stabilità.

Dal punto di vista progettuale:

Windows 98

compatibilità DOS
     +
flessibilità
     +
vecchi driver

diventa:

Windows Me

meno real mode
     ↓
boot più rapido
     ↓
meno driver legacy
     ↓
maggiore controllo di Windows

È una direzione che anticipa, almeno concettualmente, il mondo Windows basato esclusivamente sul kernel NT.


60.15 Ma Windows Me non è Windows 2000

Bisogna però evitare un errore.

Windows Me non appartiene alla famiglia NT.

Non è equivalente a:

Windows NT 4.0
Windows 2000
Windows XP

Continua a appartenere alla linea:

Windows 95
Windows 98
Windows 98 SE
Windows Me

cioè Windows 9x.

La differenza è che Microsoft cerca di rendere invisibile una parte dell'eredità DOS che nelle versioni precedenti era ancora direttamente accessibile.

Concettualmente:

Windows 98
──────────
Win32
VMM
VxD
DOS 7.1
real mode accessibile


Windows Me
──────────
Win32
VMM
VxD
DOS 8.0
real mode fortemente nascosto


Windows 2000
────────────
Win32
NT Executive
NT Kernel

nessun MS-DOS sottostante

Questa distinzione è fondamentale.


60.16 MS-DOS 8.0 e FAT32

Dal punto di vista del filesystem MS-DOS 8.0 non introduce una rivoluzione paragonabile al passaggio:

DOS 7.0
FAT16
   ↓
DOS 7.1
FAT32

Windows Me continua a utilizzare FAT32 come filesystem tipico della linea consumer.

Quindi:

DOS 7.1
Windows 95 OSR2
Windows 98
Windows 98 SE
       │
       └── FAT32

e:

DOS 8.0
Windows Me
       │
       └── FAT32

Il salto fra 7.1 e 8.0 non riguarda principalmente il filesystem.

Riguarda soprattutto la politica di boot e la progressiva eliminazione del DOS real-mode dall'esperienza normale dell'utente.


60.17 Evoluzione completa del rapporto DOS/Windows

Possiamo ora estendere lo schema dell'intero articolo.

MS-DOS 3.3

DOS

Il DOS è il sistema operativo.

MS-DOS 4.x

DOS
+
DOS Shell

Si tenta di rendere DOS più sofisticato.

MS-DOS 5.0

DOS
+
gestione avanzata memoria

DOS raggiunge una maturità tecnica molto elevata.

MS-DOS 6.x

DOS
+
automazione
+
manutenzione

DOS raggiunge la massima completezza come prodotto autonomo.

MS-DOS 7.0

DOS
   ↓
Windows 95

DOS diventa parte dell'architettura Windows.

MS-DOS 7.1

DOS + FAT32
       ↓
Windows 95 OSR2 / Windows 98

DOS continua però a essere direttamente utilizzabile.

MS-DOS 8.0

DOS bootstrap
       ↓
Windows Me

DOS standalone
non più normalmente esposto

È l'ultimo gradino prima dell'abbandono definitivo della linea Windows 9x.


60.18 Boot a confronto: DOS 5, DOS 7.1 e DOS 8

MS-DOS 5.0

BIOS
 ↓
MBR
 ↓
Boot Sector
 ↓
IO.SYS
 ↓
MSDOS.SYS
 ↓
CONFIG.SYS
 ↓
COMMAND.COM
 ↓
AUTOEXEC.BAT
 ↓
C:\>

L'obiettivo finale è il prompt.


Windows 98 / DOS 7.1

BIOS
 ↓
MBR
 ↓
Boot Sector
 ↓
IO.SYS
 ↓
MSDOS.SYS configuration
 ↓
CONFIG.SYS
 ↓
COMMAND.COM
 ↓
AUTOEXEC.BAT
 ↓
WIN.COM
 ↓
Windows 98

Ma il percorso può essere interrotto volontariamente:

BootGUI=0
     ↓
C:\>

oppure è possibile:

Windows 98
     ↓
Restart in MS-DOS Mode
     ↓
C:\>

Windows Me / DOS 8.0

Il modello previsto diventa:

BIOS
 ↓
Boot Sector
 ↓
IO.SYS / DOS 8 bootstrap
 ↓
inizializzazione minima
 ↓
Windows Me
 ↓
VMM / protected mode

Il normale ramo:

               ┌──> Windows
DOS bootstrap ─┤
               └──> DOS standalone

viene quindi trasformato essenzialmente in:

DOS bootstrap
     │
     ▼
Windows Me

Il secondo ramo non fa più parte del normale funzionamento supportato su disco fisso.


60.19 Dal muro dei 640 KB alla rimozione del real mode

È interessante osservare quanto cambia il problema principale in appena nove anni.

Nel 1991, con DOS 5:

Problema:
abbiamo solo 640 KB

Soluzione:

HMA
UMB
EMM386
DEVICEHIGH
LOADHIGH

Nel 1993, con DOS 6:

Problema:
configurare tutto è difficile

Soluzione:

MEMMAKER
MultiConfig

Nel 1995–1998:

Problema:
dobbiamo mantenere DOS
ma il futuro è Windows

Soluzione:

Virtual DOS Machines
VMM
VFAT
DOS 7.x

Nel 2000:

Problema:
il vecchio real mode
crea ormai più complicazioni
che vantaggi per l'utente medio

Soluzione Microsoft:

nasconderlo

In questo senso MS-DOS 8.0 è quasi l'opposto filosofico di MS-DOS 5.0.

DOS 5 cerca di rendere il real mode il più potente possibile.

DOS 8 cerca di fare in modo che l'utente non debba più entrarci.


61. Conclusione: da sistema operativo a componente invisibile

La storia da MS-DOS 3.3 a MS-DOS 8.0 racconta molto più dell'evoluzione di un semplice sistema operativo.

Racconta l'evoluzione dell'intero PC compatibile.

MS-DOS 3.3 appartiene ancora pienamente al mondo:

8088
8086
80286
640 KB
floppy disk
hard disk piccoli
FAT
prompt

Il sistema operativo è compatto, semplice e relativamente vicino all'architettura originale dell'IBM PC.

MS-DOS 4.x tenta una prima espansione:

grandi partizioni
FAT16B
DOS Shell
strumenti più complessi

ma mostra anche quanto sia difficile aggiungere funzionalità senza consumare la preziosa memoria convenzionale.

MS-DOS 5.0 rappresenta probabilmente il momento tecnicamente più elegante dell'intera famiglia.

Microsoft non può eliminare il muro dei 640 KB.

Lo aggira.

Utilizza:

A20
HMA
XMS
EMS
80386 paging
Virtual 8086 mode
UMB
HIMEM.SYS
EMM386.EXE
LOADHIGH
DEVICEHIGH

per trasformare un'architettura progettata intorno all'8086 in qualcosa capace di vivere ancora comodamente nell'epoca del 386 e del 486.

MS-DOS 6.x non cambia radicalmente questa architettura.

La perfeziona.

Aggiunge:

MemMaker
MultiConfig
ScanDisk
Defrag
DoubleSpace / DriveSpace
diagnostica
backup
strumenti di manutenzione

e porta il DOS stand-alone al massimo livello di completezza.

Poi Windows diventa inevitabilmente il centro del PC.

Con MS-DOS 7.0:

DOS

non è più soltanto il sistema nel quale eventualmente si avvia Windows.

Diventa sempre più una parte dell'architettura di Windows 95.

Con MS-DOS 7.1 arriva l'ultimo grande progresso tecnico realmente visibile del DOS:

FAT32

che permette alla piattaforma di superare il vecchio limite FAT16 dei circa 2 GB per volume e di affrontare gli hard disk ormai enormemente più capienti della seconda metà degli anni Novanta.

Eppure Windows 95 OSR2, Windows 98 e Windows 98 SE mantengono ancora un legame molto concreto con il vecchio mondo.

L'utente può ancora dire:

non voglio Windows

e avviare:

C:\>

È possibile utilizzare BootGUI=0.

È possibile entrare in Command Prompt Only.

È possibile riavviare Windows 98 in MS-DOS Mode.

È possibile configurare CONFIG.SYS e AUTOEXEC.BAT.

È possibile comportarsi, entro certi limiti, come se il PC fosse ancora una macchina DOS.

Con MS-DOS 8.0 e Windows Me, invece, Microsoft cambia definitivamente filosofia.

DOS esiste ancora.

Windows Me pretende addirittura esplicitamente:

MS-DOS 8.00

quando verifica i propri file di sistema.

Ma Microsoft non vuole più che il DOS real-mode sia una normale alternativa all'ambiente grafico.

Scompare:

Restart in MS-DOS Mode

e il vecchio modello basato su driver real-mode in CONFIG.SYS viene volutamente ridotto.

Il cambiamento può quindi essere riassunto in una sola sequenza:

MS-DOS 3.3
│
│  DOS come sistema operativo
▼
MS-DOS 4.x
│
│  DOS diventa più ambizioso
▼
MS-DOS 5.0
│
│  DOS impara a sfruttare 286 e 386
▼
MS-DOS 6.x
│
│  DOS raggiunge la maturità completa
▼
MS-DOS 7.0
│
│  DOS entra nell'architettura Windows 95
▼
MS-DOS 7.1
│
│  FAT32 + Windows 98
│  ma il real-mode DOS è ancora accessibile
▼
MS-DOS 8.0
│
│  Windows Me nasconde il real-mode DOS
│  e lo riduce principalmente a infrastruttura
▼
fine della famiglia Windows 9x

Da questo punto di vista, le varie versioni possono essere associate a filosofie molto diverse.

MS-DOS 3.3
“Sii piccolo e compatibile.”

MS-DOS 4.x
“Aggiungiamo nuove capacità.”

MS-DOS 5.0
“Utilizziamo ogni trucco dell'architettura x86.”

MS-DOS 6.x
“Automatizziamo e completiamo il sistema.”

MS-DOS 7.0
“DOS deve aiutare Windows.”

MS-DOS 7.1
“DOS deve convivere con FAT32 e grandi dischi.”

MS-DOS 8.0
“DOS deve esserci, ma l'utente non dovrebbe
più aver bisogno di vederlo.”

Ed è forse proprio qui che diventa ancora più evidente l'importanza storica di MS-DOS 5.0.

MS-DOS 8.0 è tecnicamente più recente.

MS-DOS 7.1 supporta FAT32.

MS-DOS 6.x dispone di strumenti amministrativi più sofisticati.

Ma MS-DOS 5.0 appartiene all'ultimo periodo nel quale l'obiettivo fondamentale di Microsoft era ancora rendere DOS stesso un sistema operativo migliore.

Con DOS 6 Microsoft perfeziona quella formula.

Con DOS 7 inizia progressivamente a subordinare DOS a Windows.

Con DOS 8 completa il processo rendendo intenzionalmente difficile utilizzare il sistema come un DOS tradizionale indipendente.

La parabola completa è quindi quasi perfettamente simmetrica:

1987
DOS è tutto
       │
       ▼
1991
DOS viene portato
al massimo delle sue possibilità
       │
       ▼
1995
DOS comincia a diventare
infrastruttura per Windows
       │
       ▼
2000
DOS esiste ancora,
ma Microsoft cerca di renderlo invisibile

Poco dopo, con la progressiva sostituzione della linea consumer Windows 9x con Windows XP e l'architettura Windows NT, questa relazione viene spezzata definitivamente.

NT non ha bisogno di MS-DOS per effettuare il boot.

Non utilizza:

IO.SYS
MSDOS.SYS
COMMAND.COM

come base del sistema operativo.

Il vecchio DOS diventa definitivamente un problema di compatibilità ed emulazione, non più una componente necessaria dell'architettura Windows.

Per questo MS-DOS 8.0 rappresenta contemporaneamente:

la versione numericamente più alta della linea MS-DOS integrata in Windows 9x e la versione nella quale Microsoft rende più evidente che il futuro non appartiene più a DOS.

Ed è proprio il contrasto con MS-DOS 5.0 a raccontare meglio l'intera storia:

MS-DOS 5.0
“Come possiamo rendere DOS
più potente?”

              contro

MS-DOS 8.0
“Come possiamo fare in modo
che Windows non abbia più bisogno
di mostrare DOS all'utente?”

Tra queste due domande si trova praticamente un decennio intero di evoluzione del personal computer.


Una postilla

Dopo questa analisi volevo solo ricordare che è possibile consultare le Appendici 1 e 2  per quanto riguarda la parte MS-DOS di How To Use Windows 98 Volume Unico.

Pur essendo la versione 7.1 quindi una parte integrante di Windows 98 (come del resto lo fu 7.0 in Windows 95) nei due capitoli tratto approfonditamente la possibilità di avere ancora un dual boot di derivazione, appunto MS-DOS + Windows 3.1

In ultimo c'è un dato che val la pena correlare con questa carrellata di dati che è il DOS nascosto, ovvero MS-DOS 8.0 di Windows Millenium Edition (o Windows Me), l'ultimo Windows 9x lato consumer.

A differenza dei sui illustri predecessori, Win Me non permetteva l'accesso diretto come descritto in questo post e nel libro al DOS, ma lo usava come sottosistema (più simile a Windows XP che a Win 9x).

Forse, più in là ci sarà occasione di affrontare l'ultimo samurai, come chiamai Windows ME, in cui in un mondo orientato all'unificazione Win 9x + Win NT, difese fino alla morte (il supporto mainstream è terminato il 31 dicembre 2003, mentre il supporto esteso è terminato l'11 luglio 2006) e nel nuovo millennio quanto di buono fu prodotto nei due decenni precedenti (i mitici anni '80 e '90 del XX Secolo)


Commenti

Post più popolari

Windows 7 - Installare ed usare una stampante sul Print Server GetNet 3 Port 2 USB e 1 LPT

Su una rete di calcolatori (che sia di uso casalingo, Small Office o Medium Office) la perifrica più ricercata è la stampante. In molti casi la soluzione più semplice è quella di collegarla ad un PC che fa da server e da qui condividerla con tutta la rete. Spesso, però, ciò non è fattibile.  Per ovviare al problema esistono delle "scatrolette" che consentono di collegare la periferica ad uno switch o router (a seconda della grandezza della rete) chiamate Print Server. Alcuni Print Server (come quello oggetto del nostro post) possono usare più stampanti. Nel caso specifico il modello della GetNet può usare 1 stampante su Porta Parallela (LPT) e 2 stampanti (non multifunzioni) su porta USB 1.1 GetNet Print Server 1 Parallel e 2 USB Il modello in questione ha in dotazione un CD che dovrebbe essere installato, ma non è compatibile con Windows a 64 bit (che sia XP, Vista, 7 o 8), e da problemi con Windows Vista, 7, 8 Nel caso specifico illustre...

Importare la posta da Outlook Express a GMail

English translated post Condividi su Quanti di noi hanno sul PC la propria vita, fatta di E-Mail di lavoro, svago, di amori persi e a volte ritrovati? Soprattutto hanno il terrore di perdere tutti questi messaggi nel momento in cui il Computer (che sia esso PC, Mac o Linux) vada a farsi benedire? Si possono effettuare della copie di Backup dei vari Outlook, Outlook Express, Eudora, Thunderbird,... (io personalmente l'ho fatto). Ma siamo sempre lì: li perdo? il nuovo programma importerà i dati? Paura, paura, paura! Da ormai 4 anni, da quando è uscito GMail (ma anche la concorrenza non è male, tipo Yahoo Mail, Hotmail...) che ha posto al primo posto lo spazio illimitato, ho preferito "girare" tutti i miei vecchi account di posta su questa nuova piattaforma, anche e soprattutto perché ho sempre la posta con me, ovunque sia leggibile con qualunque sistema (o quasi). Credo che non eista persona di questo mondo moderno e collegato che non abbia perso, almeno una volta, nella ...

Installare lo scanner della Ricoh Aficio MP 1600L

Condividi Non so a quanti di Voi lettori sia capitato di dover installare su Windows una fotocopiatrice multifunzione come la Ricoh Aficio MP 1600L . A differenza dei classici prodotti cash-'n'-carry come le stampanti Epson, HP, Canon e tutte le altre da supermercato, questo genere di prodotti tipicamente Office, non hanno un sistema "comodo" di installazione come per le suddette "macchine da bancone" Di seguito c'è la soluzione che ho trovato (anche grazie ad un aiuto) che mio ha consentito di risolvere lo stesso problema su più computer Il driver in Italiano (anche perché la versione lingua è importante) per Windows XP si scarica cliccando qui . Premetto che considero la stampante collegata ad un PC via USB (il contenuto di questo post è applicabile anche alla multifuzione collegata ad un print server come TP-Link PSU210) Una volta installata stampante con il Driver di stampa DDST ricordando di mettere nelle impostazioni il check Il marigine lungo è v...