
| L'eredità dell'MS-DOS. |
| Il fatto che il PC IBM (e tutta la serie di PC compatibili) abbia avuto un grande successo, e che abbia adottato l'MS-DOS come sistema operativo, determinò di conseguenza l'enorme popolarità del prodotto della Microsoft; una popolarità che ha condizionato lo sviluppo di software per molti anni. Infatti un programmatore che vuole indirizzare il suo prodotto ad un numero maggiore possibile di utenti (per ricavarne ovviamente maggiori guadagni, o semplicemente perchè vuole divulgare il più possibile il suo operato) è portato a scegliere il supporto del sistema operativo più diffuso e collaudato (spesso anche perchè meglio padroneggiato dal programmatore), anzichè di uno magari più complesso e meno conosciuto. |
| Malgrado i successivi miglioramenti delle versioni rilasciate nel tempo, l'adozione quasi forzata dell'MS-DOS ha in qualche modo rallentato l'evoluzione del software per l'utente dal punto di vista dell'utilizzabilità; basti pensare che anche il Windows 98 è compatibile con le applicazioni MS-DOS, ed è in qualche modo condizionato dai retaggi del passato. |
| Ad ogni modo però l'MS-DOS è un sistema operativo piuttosto semplice (l'interfaccia utente è scarna e poco interattiva) e molto poco esoso in termini di risorse hardware; queste sono state caratteristiche che lo hanno fatto sopravvivere a lungo presso impianti di tipo industriale, in cui conta maggiormente il controllo delle macchine che l'interfaccia a finestre con le relative icone. |
| Il condizionamento (sempre per motivi di compatibilità all'indietro) dell'MS-DOS in sistemi operativi come il Windows 95 o 98 si riflette in vari aspetti, tra i quali: |
| File System |
| Genericamente il file system è la parte del sistema operativo che si occupa della lettura e scrittura di informazioni da e sulle unità disco (floppy, hd, cd-rom, ...), nonchè dell'organizzazione dei dati (cioè come materialmente vengono disposti) sui dischi. |
| Nel caso dell'MS-DOS (ed anche di Windows 98), un disco (floppy o rigido) formattato (cioè preparato in modo da accogliere i dati secondo le modalità previste dal sistema operativo) possiede una zona che serve da indice dei contenuti del disco, detta FAT (File Allocation Table). La FAT descrive la posizione di files (insieme di dati registrati in modo strutturato sotto un unico nome identificatore) e directories (area del disco, identificata da un nome, contenente un numero qualunque di files) sul disco. Le directories sono registrate in una struttura gerarchica ad albero: si ha la directory root (radice), quella cioè di livello massimo, che può contenere diverse directories di livello gerarchico inferiore, che possono a loro volta contenere diverse sottodirectories, che possono contenere diversi files; i files potrebbero essere paragonati alle foglie di un albero, così come le directories a rami. Più comunemente oggi si preferisce vedere questa gerarchia dal punto di vista del desktop (scrivania) di un ufficio: le directories sono paragonabili a cartelle che possono racchiudere altre cartelle; a sua volta una qualsiasi cartella può racchiudere un numero qualunque (anche zero!) di files. |
| I files possono essere di vario tipo, come applicazioni (programmi completi eseguibili dal calcolatore, detti anche tools, cioè strumenti di lavoro) oppure documenti o progetti (projects) prodotti dalle applicazioni. |
| Per distinguere i diversi tipi di file l'MS-DOS usa un'estensione di 3 caratteri dopo il nome del file, che può essere di soli 8 caratteri. Ad esempio: |
| lettera.txt (documento di solo testo); |
| preventiv.doc (documento prodotto dal programma Word); |
| spese.xls (documento prodotto dal programma Excel); |
| mozart.mid (file musicale di tipo Midi), e così via. |
| In particolare le estensioni ".exe" contraddistinguono gli applicativi di tipo eseguibile, mentre le estensioni ".bat" indicano files di tipo "batch", cioè gruppi di comandi DOS (in formato solo testo) eseguiti automaticamente. I files con queste due estensioni sono gli unici tipi di files direttamente eseguibili. Ad esempio: |
| se nella cartella "progs" contenuta nel disco rigido "C" è presente un file eseguibile di nome "appl.exe", allora il comando DOS |
| c:\progs\appl.exe |
| oppure |
| c:\progs\appl |
| esegue direttamente il programma "appl". Questi tipi di espressioni da "linea di comando" si riscontrano ancora oggi in alcune finestre di dialogo delle versioni odierne di Windows, soprattutto per indicare il percorso (path) che deve compiere il sistema operativo per individuare un dato file. |
| E' importante notare che le estensioni dei files costituiscono solamente un'informazione per il sistema operativo riguardo al modo di considerare un dato file, ma non ne stabiliscono la natura, data invece dalla struttura interna del file. Ad esempio: |
| se nella directory "docs" si trova il documento in formato Word "diario.doc", allora il comando DOS |
| rename diario.doc diario.exe |
| che rinomina il file "diario.doc" in "diario.exe", non rende affatto eseguibile il file "diario.exe". Per cui un comando come |
| c:\docs\diario.exe |
| produrrebbe un messaggio di errore. |
| Al contrario, se si produce nella directory principale del disco, con un qualunque editor di testo, un file "procedur.txt" contenente solamente comandi DOS, e se si rinomina il file in "procedur.bat", allora il comando DOS |
| c:\procedur |
| ha come effetto l'esecuzione automatica di tutti i comandi DOS contenuti in "procedur.bat", in quanto questo file ha sia la natura sia l'estensione di un file batch, e pertanto è visto come tale dal sistema operativo. |
| Drivers |
| Altre estensioni ricorrenti sono ".sys" e ".drv", che indicano drivers di sistema o di periferiche. I drivers sono programmi speciali che si occupano di pilotare (in inglese to drive) le periferiche cui sono addetti (come la scheda grafica, i dischi e così via) oppure di gestire funzioni software particolari del sistema operativo. |
| In generale i drivers di sistema sono parte integrante del sistema operativo; i drivers di periferiche vengono invece forniti dai costruttori dei prodotti acquistati dall'utente, e vanno installati correttamente per poter utilizzare pienamente i dispositivi collegati al computer. |
| All'avvio del computer l'MS-DOS cerca due particolari files di sistema: config.sys ed autoexec.bat. Questi files specificano al sistema operativo quali device drivers (device = dispositivo) addizionali caricare in memoria (ed eventualmente quali programmi lanciare automaticamente all'avvio), in modo da personalizzare la configurazione del computer secondo le esigenze dell'utente. Anche il Windows 98 esegue, se esistono, questi files all'avvio del sistema. |
| I device drivers ed i programmi nati per MS-DOS prevedono normalmente di essere eseguiti in "modalità reale". Per comprendere ciò è bene avere una certa idea della gestione della memoria nei PC. |
| Gestione della memoria |
| Nel mondo MS-DOS la memoria Ram è gestita in un modo ereditato dal funzionamento del processore su cui si basavano i primi PC, l'Intel 8080. |
| In particolare l'8080 poteva gestire solo 1MB di Ram; i primi 640 KB, detti memoria convenzionale, erano riservati al DOS ed alle applicazioni; i restanti 384 KB, detti memoria superiore, erano riservati al DOS per accedere alle periferiche hardware. L'intero spazio di memoria disponibile veniva gestito in "modalità reale", in cui i programmi potevano fare riferimento diretto a qualunque indirizzo della Ram e a qualsiasi canale di input / output senza alcun vincolo o filtro imposto dal processore. Inoltre la modalità reale consentiva di eseguire un solo programma per volta, con l'ulteriore condizione di non occupare più memoria fisica di quella al momento disponibile. |
| Col tempo 640 KB divennero veramente pochi per eseguire applicazioni più impegnative, e con il successivo processore Intel 80286 divenne possibile utilizzare memoria oltre 1 MB (solo però per deposito dati; le applicazioni venivano eseguite sempre nella memoria convenzionale). La memoria oltre 1 MB venne detta memoria estesa (xms). L'MS-DOS non poteva caricare programmi nella xms, ad eccezione della memoria alta (hma) consistente nei primi 64 KB dell'xms. I programmi himem.sys ed emm386.exe indicati nel config.sys si occupavano di questo tipo di gestione della memoria. |
| L'80286 introdusse inoltre anche la gestione della memoria in "modalità protetta", secondo cui il software poteva accedere alla memoria ed ai canali input / output solo tramite mediazione del sistema operativo, e la cpu impediva ad un programma di occupare un'area di memoria già impegnata da un altro programma o dal sistema operativo; inoltre rendeva possibile l'esecuzione di più applicazioni contemporaneamente. Queste ed altre caratteristiche, perfezionate con l'introduzione dei processori successivi, vennero sfruttate per creare un sistema operativo più complesso ed evoluto quale il Windows che conosciamo. In Windows ogni programma viene eseguito in un particolare ambiente detto "Macchina Virtuale", visto dal programma come un sistema computer completo ed indipendente. Sotto Windows 9x ogni sessione MS-DOS (start / programmi / prompt ms-dos) viene normalmente eseguita entro una particolare macchina virtuale (DOS Virtual Machine), con controlli di vario tipo da parte del Windows ma senza funzioni di protezione della memoria (a meno di selezionare l'opzione di protezione della memoria dalla finestra di dialogo delle proprietà del programma DOS, operazione che però ne rallenta l'esecuzione). Una sessione DOS pura ("modalità ms-dos") viene eseguita invece in modalità reale. Esistono ancora oggi vecchie applicazioni DOS che non tollerano la "presenza nascosta" del Windows e che devono essere eseguiti in DOS puro per poter funzionare; fortunatamente questi casi divengono sempre più rari. |
| Con l'andare del tempo le influenze dell'MS-DOS andranno sempre più a smorzarsi; in Windows 2000 ad esempio la compatibilità con le applicazioni MS-DOS non è più supportata. Si tratta di una svolta che taglia i ponti con una tradizione lunga tre lustri. La Microsoft ha fatto di tutto per rendere progressiva questa transizione. |