Archeologia Informatica - MS-DOS 5.0: il DOS che portò al limite l'architettura del PC originale e la sua evoluzione
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.
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
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 e 7.1
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:
mantenere la compatibilità con l'enorme quantità di software scritto per i PC 8086/8088;
sfruttare finalmente le caratteristiche dei processori 80286 e soprattutto 80386;
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 SECon 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
| Caratteristica | MS-DOS 3.3 | MS-DOS 4.x | MS-DOS 5.0 | MS-DOS 6.2 | MS-DOS 7.0 / 7.1 |
|---|---|---|---|---|---|
| Epoca | 1987 | 1988 | 1991 | 1993 | 1995–1998 |
| Ruolo | OS autonomo | OS autonomo | OS autonomo | OS autonomo | componente Windows 9x |
| CPU minima concettuale | 8086/8088 | 8086/8088 | 8086/8088 | 8086/8088 | 80386 per Windows 95 |
| FAT12 | Sì | Sì | Sì | Sì | Sì |
| FAT16 | Sì | Sì | Sì | Sì | Sì |
| FAT16B / grandi volumi | No | Sì | Sì | Sì | Sì |
| FAT32 | No | No | No | No | 7.0 No / 7.1 Sì |
| Limite tipico volume | 32 MB | ~2 GB | ~2 GB | ~2 GB | 7.0 ~2 GB / 7.1 >2 GB |
| HMA | No | limitato/non equivalente | Sì | Sì | Sì |
| UMB | No | No come nel 5.x | Sì | Sì | Sì in real mode |
| HIMEM.SYS | non centrale | presente in contesti 4.x | fondamentale | fondamentale | ancora disponibile |
| EMM386 | No | primi strumenti | Sì | Sì | ancora utilizzabile in real mode |
| LOADHIGH | No | No | Sì | Sì | Sì |
| DEVICEHIGH | No | No | Sì | Sì | Sì |
| MemMaker | No | No | No | Sì | non più centrale |
| ScanDisk | No | No | No | Sì | Sì, adattato a Windows |
| Compressione integrata | No | No | No | DoubleSpace | DriveSpace |
| Nomi lunghi | No | No | No | No | VFAT sotto Windows |
| GUI | No | DOS Shell | DOS Shell | DOS sempre meno centrale | Windows 95/98 |
| Multitasking | No | No | No | No | Windows 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 MBDOS 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 maxCon DOS 4.x:
Volume FAT16B
↓
fino a circa 2 GBPer 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 programmiMS-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 - 9FFFFhforniscono 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 RAMnon 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) + offsetConsideriamo:
FFFF:0010Calcolo:
FFFFh × 10h = FFFF0h
FFFF0h
+0010h
-------
100000hSi 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.SYSIl 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=HIGHDOS=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)
└─ applicazioneDopo:
HMA
└─ parte di DOS
640 KB conventional memory
│
├─ COMMAND.COM
├─ driver
├─ TSR
└─ applicazioneLo 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 BIOSLe zone libere possono diventare Upper Memory Blocks, UMB.
MS-DOS 5.0 utilizza:
EMM386.EXEper 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,UMBA questo punto è possibile utilizzare:
DEVICEHIGH=per i driver e:
LOADHIGHo semplicemente:
LHper programmi residenti.
Per esempio:
DEVICEHIGH=C:\DOS\ANSI.SYSe:
LH C:\DOS\DOSKEY
LH C:\MOUSE\MOUSE.COM8. 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 MBHIMEM.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 RAMEMM386 può fornire EMS e UMB.
Con:
DEVICE=C:\DOS\EMM386.EXE NOEMSsi 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:
EDITal posto del rudimentale EDLIN come soluzione pratica per modificare file di testo.
Per esempio:
EDIT CONFIG.SYS
EDIT AUTOEXEC.BATL'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:
DOSKEYla 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 sovrascrittiUNDELETE 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
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
↓
riavviaDOS 6.x:
MEMMAKER
↓
analisi della memoria
↓
modifica automatica
↓
test
↓
configurazione ottimizzata13. 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:\>MEMMAKERIl 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 KBA 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 tuDOS 6
ecco gli strumenti
↓
proviamo a configurarli automaticamente15. 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.sysQuesto permette di avere boot differenti.
Per i giochi:
più conventional memoryPer la rete:
driver di retePer Windows:
configurazione differenteÈ una caratteristica importantissima in un'epoca in cui pochi kilobyte potevano determinare se un gioco funzionava oppure mostrava:
Not enough memory16. F5 e F8: il boot diventa interattivo
La generazione DOS 6 permette inoltre di bypassare o analizzare la configurazione durante l'avvio.
Per esempio:
F5può evitare l'elaborazione normale della configurazione.
F8permette 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 è:
SCANDISKNon 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 /ALLDOS diventa così molto più autonomo dal punto di vista della manutenzione.
18. DEFRAG
MS-DOS 6.x integra inoltre Microsoft Defragmenter:
DEFRAGCon FAT, un file può essere distribuito su cluster non contigui:
File A:
cluster 100
cluster 101
cluster 305
cluster 712
cluster 713Una lettura meccanica da hard disk richiede quindi movimenti continui delle testine.
Dopo la deframmentazione:
cluster 100
cluster 101
cluster 102
cluster 103
cluster 104Il 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
DEVICEHIGHMS-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-virusDOS 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:
DoubleSpaceDOS 6.22 utilizza invece:
DriveSpaceMicrosoft 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
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
Con Windows 3.1 il rapporto è abbastanza intuitivo:
BIOS
↓
MS-DOS
↓
COMMAND.COM
↓
C:\>WIN
↓
Windows 3.1MS-DOS è chiaramente il sistema sottostante.
L'utente può:
C:\>lavorare in DOS e, quando desidera:
C:\>WINavviare 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:
boot loader;
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 / Win32Questa architettura è molto diversa dall'idea semplicistica:
Windows 95 = GUI sopra DOSDOS è 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.BATcome 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 + UMBcontinua 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 Onlye 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.0ha 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.BATCon 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=2BootGUI=1 indica normalmente di avviare automaticamente l'interfaccia Windows.
Il vecchio:
MSDOS.SYS = componente binario fondamentale del kernel DOSdiventa 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.3ossia:
XXXXXXXX.XXXEsempi:
README.TXT
AUTOEXEC.BAT
COMMAND.COM
CONFIG.SYSWindows 95 introduce invece il supporto a nomi come:
Relazione tecnica ottobre 1995.docLa FAT sottostante rimane compatibile, ma Windows memorizza informazioni supplementari nelle directory.
Viene inoltre mantenuto un alias 8.3.
Per esempio:
Program Filespuò essere visibile al software DOS come:
PROGRA~1Microsoft 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.DOCWindows ricostruisce:
Relazione tecnica.docMicrosoft 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 lunghiMicrosoft 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
FAT16BPer 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 KBUn file da:
1 byteoccuperà comunque:
32 KBUn file da 33 KB:
64 KBQuesta 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 clusterQuesto 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 GBcontro:
MS-DOS 7.1
Windows 95 OSR2 / Windows 98
FAT32
volumi >2 GBMicrosoft 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 MBDOS 4.x / 5 / 6.x
max FAT16 ≈ 2 GBDOS 7.1 / FAT32
volumi molto superiori a 2 GBIn termini relativi:
32 MB
↓
2048 MB
↓
decine di GBIl 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.xDOS è il prodotto centrale.
In Windows 98:
DOS 7.1
│
└── bootstrap / compatibility
│
▼
Windows 98L'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 DOSe:
un componente interno di Windows37. DOS dentro Windows 95/98
Quando si apre:
MS-DOS Promptdentro 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 DOSIl 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 StartupWindows 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 95La differenza concettuale è enorme.
40. DOS=HIGH,UMB nel mondo Windows 98
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,UMBe, quando necessario:
DEVICE=C:\WINDOWS\EMM386.EXE NOEMSQueste 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 PCNel 1998:
ottimizzare UMB
=
importante soprattutto per
vecchi giochi e software DOS41. 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 driverSotto 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
LOADHIGHe ottenere EMS più molta conventional memory.
Sotto DOS 6.2
Si può far fare gran parte del lavoro a:
MEMMAKERe creare una configurazione dedicata:
[GAMES]nel menu di boot.
Sotto Windows 95
Si può:
lanciarlo dentro una DOS VM;
configurare le proprietà della sessione;
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 GamesSu Windows 95/98 l'utente vede:
Program Files
Microsoft GamesUn vecchio programma DOS può invece vedere qualcosa come:
C:\PROGRA~1\MICROS~1Questa doppia identità è fondamentale.
Windows mantiene:
Long File Name
+
Short 8.3 aliasper 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.EXENel 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 21he 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
└─ programmaDOS 5.0
HMA
└─ DOS
UMB
├─ driver
└─ TSR
640 KB
└─ programmaDOS 6.2
MemMaker
│
├─ analizza UMB
├─ configura EMM386
├─ sposta driver
└─ sposta TSRWindows 95/98
real mode DOS
↓
bootstrap
↓
VMM
↓
protected mode
↓
virtualizzazione della memoria
↓
DOS virtual machinesMS-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 memoryinvece di:
570 KBUna differenza di 42 KB poteva significare:
gioco funzionanteoppure:
Not enough memoryNel 1998 un PC poteva avere:
64 MB
128 MBdi RAM.
Ma un vecchio gioco DOS poteva ancora chiedere:
590 KB conventional memoryEcco 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 lunghiDa 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
RECOVERDOS 5
Aggiunge:
UNDELETE
UNFORMATDOS 6.2
Arrivano:
SCANDISK
DEFRAG
Microsoft Backup
Anti-Virus
MemMaker
DoubleSpaceWindows 95/98
Molte di queste funzioni passano progressivamente anche all'interfaccia grafica.
Esistono contemporaneamente:
strumenti DOS
+
strumenti WindowsPer 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 SE49. 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 + EMM386senza 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 multiplePer 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 serialeCONFIG.SYS:
DEVICE=C:\DOS\HIMEM.SYS
DEVICE=C:\DOS\EMM386.EXE RAM
DOS=HIGH,UMB
FILES=30
BUFFERS=20
DEVICEHIGH=C:\DOS\ANSI.SYSAUTOEXEC.BAT:
@ECHO OFF
PROMPT $P$G
PATH C:\DOS;C:\UTIL
SET TEMP=C:\TEMP
LH C:\DOS\DOSKEY
LH C:\MOUSE\MOUSE.COML'obiettivo:
massimizzare
Largest executable program size52. 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,UMBma l'utente può eseguire:
MEMMAKERe lasciare al programma il compito di determinare una disposizione migliore.
Può inoltre creare:
[menu]
menuitem=GAMES
menuitem=WINDOWSe avere un boot dedicato ai giochi:
[GAMES]
DEVICE=C:\DOS\HIMEM.SYS
DEVICE=C:\DOS\EMM386.EXE RAMe uno dedicato a Windows:
[WINDOWS]
DEVICE=C:\DOS\HIMEM.SYS
DEVICE=C:\DOS\EMM386.EXE NOEMSQuesta è 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 95Una volta entrati in Windows:
DOS program
↓
Virtual DOS Machine
↓
VMM
↓
hardware / virtual driverIl 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 environmentma lo storage può essere:
FAT32e il disco:
C: 10 GBsenza 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 GBDOS 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 GBDa 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 occupatianche se i dati reali sono soltanto:
10.000 × 2 KB
=
20.000 KBNaturalmente 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.0L'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.1L'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
interruptma 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. Conclusione
Osservare l'evoluzione da MS-DOS 3.3 a 7.1 permette di vedere quasi tutta la trasformazione del PC compatibile IBM.
MS-DOS 3.3 appartiene ancora al mondo:
8088
floppy
piccoli hard disk
640 KB
promptMS-DOS 4.x cerca per la prima volta di rompere quei limiti, soprattutto nello storage e nell'interfaccia, ma paga un prezzo elevato in complessità.
MS-DOS 5.0 trova l'equilibrio.
Utilizza brillantemente:
HMA
XMS
EMS
UMB
80386 pagingper aggirare limitazioni progettate quasi un decennio prima.
MS-DOS 6.2 prende questa architettura e la rende molto più facile da amministrare:
MemMaker
ScanDisk
Defrag
MultiConfig
DoubleSpacePoi arriva Windows 95.
Con MS-DOS 7.0 cambia la domanda.
Non è più:
Come rendiamo DOS un sistema operativo migliore?ma:
Come conserviamo l'enorme compatibilità DOS
mentre Windows diventa il vero ambiente operativo?E con MS-DOS 7.1 arriva l'ultimo grande cambiamento strutturale della famiglia:
FAT32che elimina il muro dei 2 GB dei volumi FAT16 e prepara Windows 98 per i dischi della seconda metà degli anni Novanta.
La storia può quindi essere riassunta così:
MS-DOS 3.3
│
│ semplicità
▼
MS-DOS 4.x
│
│ grandi dischi e maggiore ambizione
▼
MS-DOS 5.0
│
│ rivoluzione nella gestione memoria
▼
MS-DOS 6.2
│
│ automazione e manutenzione
▼
MS-DOS 7.0
│
│ integrazione con Windows 95
▼
MS-DOS 7.1
│
│ FAT32 e grandi hard disk
▼
Windows 98Ma dal punto di vista dell'ingegneria pura, MS-DOS 5.0 rimane forse il momento più affascinante.
Non dispone ancora del sofisticato ambiente protetto di Windows 95.
Non possiede FAT32.
Non dispone di MemMaker.
Non può cancellare il limite dei 640 KB.
Fa qualcosa di più interessante:
prende i limiti originali del PC IBM e, sfruttando quirks dell'8086, l'A20, la HMA, il paging del 386, gli UMB, XMS ed EMS, riesce a far sembrare quella vecchia architettura molto meno limitata di quanto realmente fosse.
MS-DOS 6.x perfeziona quella soluzione.
MS-DOS 7.x la rende una tecnologia di compatibilità.
Ed è proprio per questo che MS-DOS 5.0 può essere considerato il punto centrale dell'intera evoluzione del DOS Microsoft: l'ultima grande reinvenzione del DOS come DOS, prima che il futuro diventasse definitivamente Windows.
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