MS-DOS (Disk Operating System)

Giorgio Borelli

Sebbene parlare di sistemi operativi a riga di comando, come il vecchio e caro ms-dos, al giorno d'oggi potrebbe quanto meno sembrare demodé; ed al di là della curiosità che delle nozioni su ms-dos possono suscitare, molti dei cari e vecchi comandi ms dos possono tornare utili in tante occasioni, con facilità li possiamo usare per creare degli script, i file di batch, i quali ci consentono di risolvere svariati problemi ed apportare migliorie pratiche ai nostri moderni e sfavillanti sistemi operativi a finestra. Inoltre conoscere la nascita il funzionamento basilare e l'evoluzione del sistema operativo a riga di comando più diffuso al mondo, può aiutare a comprendere meglio come si sia giunti ai moderni sistemi operativi a finestra e di come questi al loro interno implementino ancora delle funzionalità e delle architetture che sono sempre basate sullo stesso principio dell'ms-dos.

Su un moderno sistema operativo Windows a finestra, andando in Start->Esegui-> e digitando cmd + invio, otteniamo la finestra dos col prompt dei comandi:

Finestra del dos col prompt dei comandi

 

Cenni storici MS-DOS

MS-DOS (Microsoft Disk Operating System) nacque nel 1982 come sistema operativo ad 8 bit mono utente, creato dalla Microsoft per i personal computer della IBM e compatibili; esso rappresentò uno standard de facto nel mondo dei personal computer grazie alla sua enorme diffusione, rendendo l'uso dei PC più semplice e snello con una serie di comandi richiamabili dal prompt che ne portava l'utilizzo ad un livello d'astrazione più alto e più vicino al linguaggio uomo rispetto alle vecchie schede perforate. Dalla versione 3.1 infatti, ms-dos introduce una vasta gamma di comandi comprendenti anche la gestione di rete in locale.

Uno dei limiti principali dell'ms-dos fù l'assenza del multitaskin, ovvero la possibilità di eseguire più programmi contemporaneamente, in quanto era in grado di eseguire solo operazioni in ordine sequenziale. Tale limite però era imposto anche dall'architettura dei vecchi processori Intel 8086, troppo rudimentali per consentire una gestione della multiprogrammazione. Nel 1987 infatti Microsft assieme all'IBM rilascia un nuovo sistema operativo l'OS/2 in grado di eseguire più programmi contemporaneamente (multiprogrammazione) restando al contempo compatibile con i precedenti comandi ms-dos.

 

Sistema di archiviazione dell'MS-DOS

Con l'enorme diffusione e successo, il sistema operativo a riga di comando MS-DOS o più semplicemente DOS, ebbe il merito d'introdurre anche nella fascia di utenti più comuni il concetto di archivio o meglio conosciuto come file. In ms-dos il nome di un file è una stringa alfanumerica di 8 caratteri, alla quale si concatena a destra tramite il "." un'ulteriore stringa alfanumerica di 3 caratteri che ne denota la tipologia, quest'ultima si chiama estensione del file, ed ancora oggi, con i moderni sistemi operativi windows e così (alcuni tipi di file hanno un estensione di 4 caratteri). Nei sistemi operativi di casa Microsft l'estensione nel nome del file è obbligatoria, e questo deriva dall'ms-dos, nel quale se non veniva specificato il tipo del file venivano aggiunti automaticamente e caratteri bianchi per denotare un'estensione di un tipo di file non riconosciuto. Alcuni file in dos possiedono delle estensioni particolari, per denotare file standard del sistema, quali: OBJ, COM, EXE rispettivamente per indicare programmi oggetto, programmi per il caricamento e programmi eseguibili.

Anche per il sistema di archiviazione, l'ms-dos presentava i limiti della sua naturale semplicità, esso infatti non era in grado di gestire più dischi contemporaneamente, la seconda versione di ms-dos superò questo limite essendo in grado di gestire massimo 4 dischi. La tecnologia di accesso al disco nella prima versione era sequenziale e relativa a livello di singolo byte, consentita tramite chiamate a routine di sistema; con la versione 2 era possibile scrivere più byte in singoli settori del disco. I vari settori e lo spazio del disco venivano amministrati per mezzo del File Allocation Table, ed anche nei più recenti sistemi è così anche se con caratteristiche e proprietà decisamente più complesse e performanti.

 

Caratteristiche principali del sistema operativo MS-DOS

Il sistema operativo a riga di comando ms-dos è suddiviso in 5 moduli stratificati: autocaricatore, BIOS, BDOS, interprete dei comandi e modulo dei comandi transienti.

  • Autocaricatore: è un modulo il cui compito è quello di caricare in memoria il sistema operativo all'accensione del computer;
  • BIOS (Basic Input Output System): è composto dai programmi di I/O per la gestione delle periferiche hardware del computer, è lo strato software più vicino all'hardware;
  • BDOS (Basic Disk Operating System): comprende tutti i programmi responsabili della gestione del disco e dei dati letti e scritti su di esso. Oltre a gestire il sistema di archiviazione dell'ms-dos, il BDOS comprende una serie di funzioni di sistema (utilizzati frequentemente) detti comandi residenti, detto nome deriva dal fatto che tali programmi vengono caricati e risultano già in memoria all'avvio della macchina. I comandi ms-dos residenti sono: DIR, RENAME, ERASE, TIME, DATE, MKDIR, RMDIR, CHDIR;
  • Interprete dei comandi: è il modulo software più alto di ms-dos, responsabile di leggere i comandi inseriti da input dall'utente, analizzarli ed eseguirli. Tra i comandi eseguibili distinguiamo i comandi transienti (registrati su disco) ed i comandi utenti, entrambi vengono gestiti dall'interprete allo stesso modo. Una volta digitato il comando al prompt e dato invio, l'interprete verifica dapprima se questo è un comando residente in tal caso passa il compito al modulo BDOS per eseguirlo, diversamente verifica se è un comando transiente o utente, residente su disco come file con estensione .COM o .EXE, se l'esito è positivo carica il programma in memoria e gli affida il controllo delle risorse richieste, diversamente mostra il messaggio di "comando non riconosciuto". Come si è potuto capire i comandi transienti risiedono sul disco e a differenza di quelli residenti devono essere dapprima caricati in memoria per essere eseguiti; l'insieme dei comandi transienti del dos presenti sul disco rappresentano l'interfaccia dei comandi dos a disposizione dell'utente del sistema operativo, e sono tutti i comandi dos eccetto quelli residenti precedentemente elencati, ad es. FORMAT e COPY sono comandi dos transienti e sul dissco troveremo i corrispettivi file FORMAT.COM e COPY.COM contenenti le istruzioni per eseguire il comando.

Come si può capire dalla descrizione, lo strato software dell'ms-dos posto sull'hardware è composto da moduli via via sempre di più alto livello e astrazione rispetto alle componenti fisiche (l'hardware). Il BIOS ed il BDOS rappresentano il nucleo o kernel del dos, mentre l'interprete dei comandi ed i comandi transienti sono lo strato applicativo, tutti insieme, questi moduli sono il sistema operativo MS-DOS.

 

Chiamate di sistema in MS-DOS

Le chiamate di sistema sotto dos vengono effettuate eseguendo una apposita istruzione INT "i" che dà luogo ad una interruzione da programma.

Le chiamate di sistema contrassegna da un apposito numero d'ordine "i" prendono il nome di interrupt; quelle con numero 33 (in esadecimale 21) prendono il nome di function call. In questo caso, il programma deve specificare nel registro AH il numero d'ordine della chiamata: la function call 33, ad esempio, effettua una lettura casuale di un blocco di dati da disco. Al momento della chiamata, il registro AH deve contenere il numero 33 e la coppia di registri DS e DX devono contenere, rispettivamente, il segmento e l'indirizzo del descrittore (File Controlo Block) dell'archivio interessato. Effettuata l'operazione di I/O, il registro AL contiene il codice di terminazione dell'operazione.

 

Bootstrap del sistema MS-DOS

MS-DOS utilizza una semplice ma efficace tecnica di avvio. Per rendere possibile l'avviamento, il sistema operativo ms-dos prevede che il suo nucleo sia registrato sulla memoria ROM (Read Only Memory, memoria non volatile); all'accensione della macchina pertanto l'hardware legge per primo il nucleo del sistema operativo residente sulla ROM e comincia a svolgere delle operazioni che in ordine sono:

  1. Autodiagnostica: verifica se i componenti hardware principali come CPU e la memoria RAM stanno funzionando correttamente;
  2. Test di collegamento: verifica i dischi e le altre periferiche (device) collegate;
  3. Autocaricamento: viene caricato da un disco prefissato, chiamato disco di sistema, un programma di autocaricamento (di dimensioni molto contenute) presente nel settore zero del disco. Detto programma che viene caricato ed eseguito in memoria non fà parte del sistema operativo vero e proprio, ma è una utility che svolge il compito di caricare il sistema operativo vero e proprio in aree apposite della memoria.

 

Partenza a caldo MS-DOS

Con il termine "partenza a caldo" s'intende una "ripartenza" di ms-dos quando questo era stato già caricato in memoria. Un avvio del sistema operativo può rendersi necessaria, non soltanto al momento dell'accensione della macchina, ma anche in seguito ad errori che provocano un blocco delle funzionalità e del sistema operativo stesso. In questi casi, è meglio evitare una "partenza a freddo" (la fase di bootstrap) e ricorrere alla parte tecnica della "partenza a caldo" che fra l'altro è notevolmente più veloce.

MS-DOS prevede una apposito comando per l'interruzione ed effettuare la partenza a caldo. Premendo simultaneamente i tasti <CTRL> e <BREAK>, si genera una interruzione di I/O che interrompe il programma in esecuzione e ridà il controllo all'interprete dei comandi.

La combinazione dei tasti <CTRL><ALT><DEL> provoca invece una interruzione di tipo diverso che causa una partenza a freddo del sistema; l'unica differenza rispetto alla classica fase di bootstrap con questo tipo di partenza è che non viene effettuata la diagnostica dell'hardware.

 

Per chi volesse approfondire l'uso e la conoscenza dei comandi, può andare alla seguente pagina: Comandi Dos.

Categorie: Microsoft | Storia | Windows

Tags: ,

Aggiungi Commento

biuquote
Loading