31
)21'$0(17,',,1)250$7,&$ 06'26 I I I l l l S S S i i i s s s t t t e e e m m m a a a O O O p p p e e e r r r a a a t t t i i i v v v o o o M M M S S S - - - D D D O O O S S S ( ( ( M M M i i i c c c r r r o o o S S S o o o f f f t t t D D D i i i s s s k k k O O O p p p e e e r r r a a a t t t i i i n n n g g g S S S y y y s s s t t t e e e m m m ) ) ) Sviluppato dalla MicroSoft è un sistema operativo per personal computer basati sulla famiglia di microprocessori Intel iAPX-86. U U U n n n p p p o o o d d d i i i s s s t t t o o o r r r i i i a a a Il sistema operativo MS-DOS ha subito varie modifiche nel corso degli anni in corrispondenza a diverse versioni. La prima versione del sistema operativo MS-DOS era ispirata al CP/M (della Digital), una delle prime realizzazioni di sistema operativo per microcomputer. Dalla seconda versione in poi c’è stato un tentativo di uniformarsi alla filosofia del sistema UNIX, diventato uno standard di fatto per i sistemi di media dimensione. )21'$0(17,',,1)250$7,&$ 06'26 Innovazioni più evidenti che differenziano la seconda versione di MS-DOS dalla prima: struttura gerarchica dei direttori; dispositivi visti in modo omogeneo ai file (e non predefiniti); maggiore organizzazione e capacità espressiva dei file comandi; possibilità di ridirezione e di collegamento tra programmi (pipe). D D D i i i f f f f f f e e e r r r e e e n n n z z z a a a f f f o o o n n n d d d a a a m m m e e e n n n t t t a a a l l l e e e UNIX è un sistema multi-utente e multi-programmato, mentre MS-DOS è mono-utente e mono-programmato.

Innovazioni pi ù evidenti che differenziano la seconda Il ... · Il Sistema Operativo MS-DOS (MicroSoft Disk Operating System) Sviluppato dalla MicroSoft è un sistema operativo

Embed Size (px)

Citation preview

������������������� � ��� �

IIIlll SSSiiisssttteeemmmaaa OOOpppeeerrraaatttiiivvvooo MMMSSS---DDDOOOSSS(((MMMiiicccrrroooSSSooofffttt DDDiiissskkk OOOpppeeerrraaatttiiinnnggg SSSyyysssttteeemmm)))

Sviluppato dalla MicroSoft è un sistema operativo perpersonal computer basati sulla famiglia di microprocessoriIntel iAPX-86.

UUUnnn pppooo’’’ dddiii ssstttooorrriiiaaa

••• Il sistema operativo MS-DOS ha subito varie modifiche nelcorso degli anni in corrispondenza a diverse versioni.

••• La prima versione del sistema operativo MS-DOS eraispirata al CP/M (della Digital), una delle primerealizzazioni di sistema operativo per microcomputer.

••• Dalla seconda versione in poi c’è stato un tentativo diuniformarsi alla filosofia del sistema UNIX, diventato unostandard di fatto per i sistemi di media dimensione.

������������������� � ��� �

• Innovazioni più evidenti che differenziano la secondaversione di MS-DOS dalla prima:� struttura gerarchica dei direttori;� dispositivi visti in modo omogeneo ai file (e non

predefiniti);� maggiore organizzazione e capacità espressiva dei file

comandi;� possibilità di ridirezione e di collegamento tra

programmi (pipe).

DDDiiiffffffeeerrreeennnzzzaaa fffooonnndddaaammmeeennntttaaallleee

UNIX è un sistema multi-utente e multi-programmato,mentre MS-DOS è mono-utente e mono-programmato.

������������������� � ��� �

MMMSSS---DDDOOOSSS::: iiinnnttteeerrrfffaaacccccciiiaaa uuuttteeennnttteee

L’interazione utente-“macchina astratta” puo’ avvenireattraverso:

1. comandi DOS (Job Control Language o JCL)2. programmi “applicativi”3. programmi di utente

EEEssseeemmmpppiii:::

• comando MS-DOS

C:> DIR

• programma “applicativo” TurboC:

C:> tc

• compilatore C:

C:> gcc

• programma applicativo realizzato dall’utente (ad esempio,“prog_1.exe” è il file prodotto dopo compilazione elinking):

C:> prog_1

������������������� � ��� �

LLLiiinnnggguuuaaaggggggiiiooo cccooommmaaannndddiii

Le utilità del sistema operativo sono disponibili attraversoun linguaggio comandi direttamente interpretato da unprocessore dei comandi.

I processori dei comandi sono evoluti da sempliciriconoscitori di comandi a supporti per ambienti piùcomplessi, quasi veri e propri linguaggi diprogrammazione (vedi il caso degli shell di UNIX).

Nel caso di MS-DOS, l’ambiente comandi diventa attivodopo il caricamento (bootstrap) del sistema operativo cherisiede su un disco (detto disco di sistema).

BBBooooootttssstttrrraaappp

Dopo l’accensione della macchina viene caricato in memoriacentrale ed eseguito il codice di inizializzazione residente suROM:

1) Attivazione e test dei componenti hardware del sistema.

2) Caricamento da disco ed esecuzione (di alcune parti) delsistema operativo (file IO.SYS e MSDOS.SYS, eCOMMAND.COM)

������������������� � ��� �

L’attivazione del sistema operativo determina, in sequenza:

1. Lettura degli eventuali parametri di configurazione (file“CONFIG.SYS”).

2. Esecuzione della sequenza di comandi eventualmentecontenuta nel file “AUTOEXEC.BAT”.

3. Attivazione del processore comandi (file“COMMAND.COM”).

☞ Alcune parti del sistema operativo sono residenti inmemoria, mentre altre (alcuni comandi, detti esterni)vengono caricate all’occorrenza.

������������������� � ��� �

IIIlll ppprrroooccceeessssssooorrreee cccooommmaaannndddiii

Il processore comandi costituisce una macchina virtualebasata su:• un gestore della console;• un interprete dei comandi da eseguire (o parser)• un caricatore (o loader) dei comandi.

I comandi sono suddivisi in due classi:• comandi interni• comandi esterni

CCCooommmaaannndddiii iiinnnttteeerrrnnniii

• fanno parte di quella parte di sistema operativo caricatainizialmente in memoria centrale (sono integrati nel fileCOMMAND.COM) e quindi presentano un tempo di latenzaminimo. Per questo motivo, sono interni i comandi piùcomunemente usati (ad es., DIR, DEL, COPY, …)

CCCooommmaaannndddiii eeesssttteeerrrnnniii

• vengono caricati all’occorrenza dal disco, prima di potereessere messi in esecuzione (corrispondono a file conestensione .COM ed .EXE). Vengono introdotti per nonoccupare stabilmente memoria con comandi raramenteutilizzati (ad es., PRINT, FORMAT, …).

☞ I programmi utente sono equiparati a comandi esterni. (filecon estensione .EXE o .BAT).

������������������� � ��� �

SSSccchhheeemmmaaa dddiii fffuuunnnzzziiiooonnnaaammmeeennntttooo dddeeelll ppprrroooccceeessssssooorrreeecccooommmaaannndddiii dddiii MMMSSS---DDDOOOSSS

repeat{fase di bootstrap}if <disco di sistema in A:> then

<carica il S.O. dal disco in A:>else

if <disco rigido> then <carica da quello, default C:>else <azioni alternative>;

{ se c’è un disco di sistema presente nella drive A: lo si carica; altrimentiin caso di disco rigido si carica da quello, oppure azioni alternative: peresempio errore o esecuzione del BASIC caricato da ROM}{ambiente comandi JCL}repeat<attesa di un comando dalla console>if <comando interno> then

case <comando> ofDIR: <esegui l’immagine di DIR>;COPY: <esegui l’immagine di COPY>;…

endelse

<ricerca del comando nel direttorio di default>if <trovato file eseguibile> then{ si ricerca un file di estensione .COM o .EXE come estensione di default}

<caricamento ed esecuzione del comando>else

if <trovato file comandi> then{altrimenti si ricerca un file comandi con estensionedi default .BAT}else <segnala errore>;

{un <CTRL><BREAK> o un <CTRL>-C causa la terminazione delcomando correntemente in esecuzione ed un ritorno al commandprocessor}until <re-inizializzazione: tasti <CTRL><ALT><DEL> >until false {cioè si ripete per sempre}

������������������� � ��� �

III cccooommmaaannndddiii dddiii MMMSSS---DDDOOOSSS

I comandi del sistema operativo MS-DOS possono essereclassificati in:

• comandi di gestione dei dischi e dei file;

• comandi di interazione con le risorse del sistema;

• comandi di utilità e ausilio per lo sviluppo di unprogramma.

SSSiiinnntttaaassssssiii

<<<cccooommmaaannndddooo>>> [[[<<<ooopppzzziiiooonnniii>>>]]] [[[<<<aaarrrgggooommmeeennntttiii>>>]]]

������������������� � ��� �

CCCooonnnccceeettttttiii bbbaaassseee::: dddrrriiivvveee,,, ppprrrooommmpppttt

DDDiiissskkk dddrrriiivvveee

È il dispositivo di interfaccia per un disco (sia dischettifloppy, che disco rigido)• I disk drive sono individuati univocamente attraverso

singole lettere dell’alfabeto. Di solito:� A e B per i floppy disk drive� C per il drive che agisce sul disco rigido.

DDDrrriiivvveee dddiii dddeeefffaaauuulllttt

• È quello riferito preferenzialmente dal sistema nella fase dibootstrap (solitamente un floppy).

DDDrrriiivvveee cccooorrrrrreeennnttteee

• Ad ogni istante è definito un drive corrente: è il driverelativo al disco che viene considerato in tutte le operazioni,se non se ne specifica esplicitamente un altro.

☞ Per cambiare il drive corrente, basta nominare il suonome seguito dal simbolo di due punti (:).

������������������� � ��� ��

PPPrrrooommmpppttt

• In un ambiente interattivo, il prompt è il simbolo (adesempio, una sequenza di caratteri) che viene mostratoall’utente per indicare che si attende l’immissione di uncomando.

nomedrive:\>

• Ad esempio, se il drive corrente è C:

C:\>

• Modifica del drive corrente (da C ad A):

C:\> A:A:\>

������������������� � ��� ��

CCCooommmaaannndddiii pppeeerrr lllaaa gggeeessstttiiiooonnneee dddeeeiii dddiiisssccchhhiii

fffooorrrmmmaaattt

Affinché un disco (fisso o floppy) sia utilizzabile dal DOSè necessario che sia formattato.

L’operazione di “formattazione” traduce il supportomagnetico grezzo in una forma strutturata suddividendo lasuperficie mediante tracce e settori.

Il comando MS-DOS per la formattazione dei dischi è:

C:\> FORMAT nomedrive:

Nota bene: Questa operazione ha un effetto distruttivo:tutte le informazioni eventualmente presenti nel disco(prima dell’esecuzione di format) vengono perse.

Esempio: se si desidera formattare un dischetto inseritonel drive A

C:\> FORMAT A:

������������������� � ��� ��

fffooorrrmmmaaattt

OOOpppzzziiiooonnniii

FORMAT nomedrive: /S

crea un disco di sistema, copiando i file IO.SYS eMSDOS.SYS, e COMMAND.COM (il processore deicomandi MS-DOS).

FORMAT nomedrive: /V

attribuisce un nome (etichetta) al disco da formattare.

FORMAT nomedrive: /F:b

b specifica la capacità del disco da formattare (adesempio, 360, 720, …).

☞ Dalla versione 5.0 esiste il comando:

UNFORMAT nomedrive:

che consente il recupero dei dati sull’unità formattata. Vaeseguito prima di qualunque operazione di scrittura.FORMAT nomedrive: /U rende inefficace talecomando.

������������������� � ��� ��

IIIlll fffiiillleee

Per l’utente, il file è l’unità logica di memorizzazione suidispositivi di memoria di massa.

• Ogni file è caratterizzato da un insieme di attributi:� un nome� una dimensione (in byte)� una modalità di accesso� una data

NNNooommmeee dddeeelll fffiiillleee

• è costituito da: <prefisso>.<estensione>

TC.EXEP.PASDATIWIN.COM

• prefisso è una stringa con lunghezza limitata a 8 caratteri;• estensione è una stringa di lunghezza al massimo di 3

caratteri.

������������������� � ��� ��

☞ Esistono estensioni “notevoli”, che in DOS hanno unsignificato standard:

� “.exe” il file contiene codice eseguibile

� “.bat” il file contiene una sequenza dicomandi (file comandi, o batch file)

� “.com” il file contiene codice eseguibile (damantenere residente in memoriacentrale)

������������������� � ��� ��

CCCooonnnttteeennnuuutttooo dddiii uuunnn fffiiillleee

Ogni file è costituito da una sequenza di caratteriorganizzati in linee.

Es: FILE DI TESTO:

Lettera.txt

Spettabile Ditta,si comunica cheil giorno 19/11...

.............................

Es: FILE DI DATI:

Stipendio.dat

ROSSI PIERO 6/2/93 2.000.000

BIANCHI PAOLA 6/3/93 2.500.000

.................................. ...... ...............

Es: FILE DI PROGRAMMA ESEGUIBILE

Mio prog. exe

***@@@\\^^

������������������� � ��� ��

NNNooommmiii dddiii fffiiillleee::: wwwiiillldddcccaaarrrdddsss

Esistono alcuni caratteri “speciali” (metacaratteri) che nonpossono essere usati all’interno di nomi di file:

\, |, / <, > ,*, ,? …

IIInnn pppaaarrrtttiiicccooolllaaarrreee

• * e ? vengono interpretati dal DOS come “WILDCARDS”:se inseriti all’interno di stringhe, vengono considerati comecaratteri “JOLLY”:� * rappresenta una qualsiasi sequenza (eventualmente

nulla) di caratteri permessi.

� ? rappresenta un qualsiasi carattere singolo.

EEEssseeemmmpppiii

PAOL?.DOC identifica tutti i file che iniziano conPAOL e che sono seguiti da unqualunque altro carattere

PAOL*.DOC identifica tutti i file che iniziano conPAOL e che sono seguiti da unaqualunque stringa

*.COM identifica tutti i comandi conestensione.com: (format.com,backup.com, etc.)

*.* identifica QUALSIASI FILE!!!!!

������������������� � ��� ��

FFFiiillleee sssyyysssttteeemmm

È la struttura logica all’interno della quale vengonoorganizzati i file nella memoria secondaria.

Il file system del sistema operativo DOS ha una strutturagerarchica ad albero.

La strutturazione del file system è ottenuta mediante lasuddivisione in direttòri.

DDDiiirrreeettttttooorrriiiooo:::

• insieme di files;• insieme di files e direttori (sottodirettori).

DIR1

DIR2f1 f2

f1 DIR3aa

b.exe

������������������� � ��� ��

IIIlll FFFiiillleee SSSyyysssttteeemmm

SSStttrrruuuttttttuuurrraaa gggeeerrraaarrrccchhhiiicccaaa aaaddd aaalllbbbeeerrrooo

• nodi, direttori• foglie, files• rami, appartenenza

☞ Non si pongono limiti al grado di innestamento dellastruttura gerarchica che si può costruire.

Direttorio radice: \È la “radice” dell’albero:

\

DIR2f1 f2

f1 DIR3aa

b.for

f1

������������������� � ��� ��

DDDiiirrreeettttttooorrriiiooo CCCooorrrrrreeennnttteee

• Ogni utente può “navigare” attraverso il file system,spostandosi di direttorio in direttorio. Ad ogni istante,quindi, è univocamente definito il direttorio corrente, cherappresenta la posizione attuale dell’utente all’interno dellagerarchia.

IIIdddeeennntttiiifffiiicccaaazzziiiooonnneee dddiii fffiiillleee (((eee dddiiirrreeettttttooorrriii)))

• In generale ogni file (ed ogni direttorio) è identificatounivocamente da un cammino (pathname) più il suo nome,separati tra di loro dal carattere “\”.

Il cammino è:• assoluto, se riferito alla radice;• relativo, se riferito al direttorio “corrente”.

Inoltre, per indicare a quale file system (disco) si fariferimento, si premette il nome del drive.

[nomedrive:][path]prefisso.estensione

Le parentesi quadre indicano parametri opzionali

C:\f1C:\DIR2\f1C:\DIR2\DIR3\f1

������������������� � ��� ��

EEEssseeemmmpppiiiooo:::

Consideriamo il file aa che si trova nel seguente alberodel disco nella drive A:

\

DIR2f1 f2

f1 DIR3aa

b.for

IIIpppooottteeesssiii::: DDDIIIRRR222 èèè iiilll dddiiirrreeettttttooorrriiiooo cccooorrrrrreeennnttteee

• nome relativo: aa• nome assoluto: A:\DIR2\aa

NNNoootttaaazzziiiooonnniii cccooonnnvvveeennnzzziiiooonnnaaallliii

• il direttorio corrente è identificato dal punto (“.”);• il direttorio padre di quello corrente dal doppio punto (“..”);• il direttorio radice viene indicato con “\”.

AAAddd eeessseeemmmpppiiiooo:::

consideriamo ancora aa, con direttorio corrente DIR3• nome assoluto: A:\DIR2\aa• nome relativo: ..\aa

☞ Il nome assoluto è indipendente dal direttorio corrente!

������������������� � ��� ��

IIIlll nnnooommmeee dddeeelll fffiiillleee

QQQuuuiiinnndddiii

[nomedrive:][path]prefisso.estensione

Significato dei singoli elementi:• nomedrive è la lettera che individua il drive (è opzionale se

va bene quello di default);• path è il cammino a partire dalla radice dell’albero dei

sottodirettori (nel caso di nome assoluto) o a partire daldirettorio corrente (nel caso di nome relativo). Anche path èun elemento opzionale;

FFFiiillleee (((ooo dddiiirrreeettttttooorrriii))) dddiiissstttiiinnntttiii:::

• possono avere nomi relativi uguali• non possono avere nomi assoluti uguali

������������������� � ��� ��

AAAddd eeessseeemmmpppiiiooo,,, iii fffiiillleee fff111:::

\

DIR2f1 f2

f1 DIR3aa

b.exe

A:\f1

A:\DIR2\f1

������������������� � ��� ��

CCCooommmaaannndddiii pppeeerrr lllaaa gggeeessstttiiiooonnneee dddeeelll fffiiillleee sssyyysssttteeemmm

DDDIIIRRR [[[nnnooommmeeedddrrriiivvveee:::]]][[[pppaaattthhh]]] [[[ooopppzzziiiooonnniii]]]

Visualizza la lista dei file e dei direttori contenuti in undirettorio.

OOOpppzzziiiooonnniii:::

/P la lista delle informazioni è fornita avideate

/W vengono visualizzati solo i nomi deifile e dei sottodirettori

☞ DIR accetta le wildcards.

CCCDDD [[[nnnooommmeeedddrrriiivvveee:::]]][[[pppaaattthhh]]]

Cambia il direttorio corrente. Senza parametri, visualizzail direttorio corrente.

MMMKKKDDDIIIRRR [[[nnnooommmeeedddrrriiivvveee:::]]]pppaaattthhh

Crea un nuovo sottodirettorio (abbreviazione MD).

RRRMMMDDDIIIRRR [[[nnnooommmeeedddrrriiivvveee:::]]]pppaaattthhh

Distrugge un sottodirettorio, solo se è vuoto(abbreviazione RD).

TTTRRREEEEEE [[[nnnooommmeeedddrrriiivvveee:::]]][[[pppaaattthhh]]]

Visualizza la struttura gerarchica del file system.

������������������� � ��� ��

EEEssseeemmmpppiii DDDIIIRRR:::

C:\> DIR Il volume nell’unità C è DOS400 Il numero di serie del volume è 1666-13D7 Directory C:\

COMMAND COM 38523 19/04/89 12:00WS4 <DIR> 12/03/93 19:11WIN31 <DIR> 15/03/93 11:12DOS <DIR> 26/10/90 12:17AUTOEXEC BAT 439 20/09/93 10:37WINW BAT 128 12/05/93 16:19SETHOST DAT 690 18/05/93 16:04TP6 <DIR> 14/09/93 18:36APPLE BAT 896 21/05/93 11:00APPLE <DIR> 06/04/93 13:29CONFIG SYS 338 27/04/93 12:00 12 file 9037824 byte disponibili

C:\> DIR a: Il volume nell’unità A non ha etichetta Il numero di serie del volume è 1D48-1CCF Directory A:\

DIR 1951 30/09/93 11:02PASCAL2 <DIR> 28/09/93 19:32SORT DOC 19126 24/11/92 11:49FONDAEXB DOC 263353 14/12/92 20:47PASCAL1 <DIR> 30/09/93 9:45ORDINA <DIR> 30/09/93 9:51 6 file 379392 byte disponibili

C:\> DIR A:\PASCAL1\*.PAS Il volume nell’unità A non ha etichetta Il numero di serie del volume è 1D48-1CCF Directory A:\PASCAL1

CICLO PAS 222 28/09/93 19:29ESEMPIO PAS 572 28/09/93 19:30FATT1 PAS 182 28/09/93 19:30MAGGIORE PAS 336 28/09/93 19:30 9 file 377856 byte disponibili

������������������� � ��� ��

Esempi: consideriamo il file system sul disco A:

\

DIR2f1 f2

f1 DIR3aa

b.for

f2.exe

DIR4

p.exe

C:\> A:A:\> CD DIR2A:\DIR2> CD DIR3A:\DIR2\DIR3> DIRF2 EXE34899 02/09/1992 16:01

questa serie di comandi equivale a:

C:\> DIR A:\DIR2\DIR3

oppure a:

C:\> CD A:\DIR2\DIR3C:\> DIR A:

������������������� � ��� ��

\

DIR2f1 f2

f1 DIR3aa

b.for

f2.exe

DIR4

p.exe

A:\> CD \DIR2\DIR3A:\DIR2\DIR3> CD ..A:\DIR2> CD ..\DIR4A:\DIR4> MD DIR5

\

DIR2f1 f2

f1 DIR3aa

b.for

f2.exe

DIR4

p.exe DIR5

������������������� � ��� ��

CCCooommmaaannndddiii dddiii gggeeessstttiiiooonnneee dddeeeiii fffiiillleee

TTTYYYPPPEEE [[[nnnooommmeeedddrrriiivvveee:::]]][[[pppaaattthhh]]]nnnooommmeeefffiiillleee

Visualizza il contenuto di un file.

A:\> TYPE DIR2\f1

CCCOOOPPPYYY <<<fffiiillleee___sssooorrrgggeeennnttteee>>> <<<fffiiillleee___dddeeessstttiiinnnaaazzziiiooonnneee>>>

Consente di copiare un file in un altro. I nomi dei file(sorgente e destinazione) possono essere specificati inmodo relativo o assoluto.

A:\> COPY f1 A:\DIR4\DIR5\file_1

\

DIR2f1 f2

f1 DIR3aa

b.for

file_1

DIR4

p.exe DIR5

A:\> COPY *.* C:\

������������������� � ��� ��

CCCOOOPPPYYY <<<fffiiillleee111>>> +++ <<<fffiiillleee222>>> [[[ +++ ………]]] [[[<<<fffiiillleee___dddeeesssttt>>>]]]

Concatenamento di file. Per copiare più file in uno singolo(file_dest).

A:\> COPY f1 + f2 + b.for tutto

☞ Se <file-dest> è omesso, allora si copia nel primo file,che viene così modificato.

A:\> COPY f1 + f2 + b.for

XXXCCCOOOPPPYYY <<<pppaaattthhh---sssooorrrggg>>> <<<pppaaattthhh---dddeeesssttt>>> [[[<<<ooopppzzz>>>]]]

Copia file e sottodirettori (opzioni) appartenenti allagerarchia specificata.

OOOpppzzziiiooonnniii:::

/S file + sub-directory non vuoti/E file + sub-directory/D:data copia i file modificati dopo la data specificata.

AAAddd eeessseeemmmpppiiiooo:::

A:\> MD \tempA:\> XCOPY \DIR2 \temp /E

������������������� � ��� ��

RRREEENNN [[[nnnooommmeeedddrrriiivvveee111:::]]][[[pppaaattthhh]]]nnnooommmeeefffiiillleee111 nnnooommmeeefffiiillleee222

Consente il cambiamento del nome di un file.

A:\> REN \DIR2\f1 pippo

\

DIR2f1 f2

pippo DIR3aa

b.for

f2.exe

DIR4

p.exe DIR5

DDDEEELLL [[[nnnooommmeeedddrrriiivvveee:::]]][[[pppaaattthhh]]]nnnooommmeeefffiiillleee

Permette la cancellazione di uno o più file.

☞ DEL accetta le Wildcards:

C:\> DEL *.BAK

Elimina tutti i file nella Directory corrente con estensione“.BAK”.

C:\> DEL *.*

Elimina tutti i file contenuti nel direttorio corrente, manon elimina i sottodirettori.(Da utilizzare con cautela!!)

������������������� � ��� ��

CCCooonnnfffrrrooonnntttooo dddiii fffiiillleee:::

FFFCCC <<<nnnooommmeeefffiiillleee111>>> <<<nnnooommmeeefffiiillleee222>>>

Confronta il contenuto di due file e ne visualizza ledifferenze.

CCCOOOMMMPPP <<<nnnooommmeeefffiiillleee111>>> <<<nnnooommmeeefffiiillleee222>>>

Confronta il contenuto di due file e fornisce (in caso didifferenze) la posizione ed i valori (esadecimali) deicaratteri diversi.

SSStttaaammmpppaaa dddiii fffiiillleee:::

PPPRRRIIINNNTTT [[[<<<pppaaattthhhnnnaaammmeee>>>]]] [[[<<<ooopppzzziiiooonnniii>>>]]]

Stampa il contenuto di uno o più file. Accetta lewildcards. La stampa avviene in background: questosignifica che, durante la stampa, il sistema MS-DOSaccetta altri comandi.

OOOpppzzziiiooonnniii:::

/D:periferica Specifica la Stampante

/C Sospende la stampa

/T Termina la stampa (svuota la coda)

/P Aggiunta di file nella coda di stampa

������������������� � ��� ��

AAAddd eeessseeemmmpppiiiooo:::

C:\> PRINT autoexec.*

C:\autoexec.bat in stampaC:\autoexec.old in coda

C:\> PRINT autoexec.old /C

☞ Se non viene specificato il nome del file, il comandoPRINT mostra la situazione della coda di stampa.

IIInnn aaalllttteeerrrnnnaaatttiiivvvaaa aaa PPPRRRIIINNNTTT:::

C:\> TYPE AUTOEXEC.* >> LPT1

������������������� � ��� ��

MMMooodddaaallliiitttààà dddiii aaacccccceeessssssooo aaaiii fffiiillleee

È possibile specializzare il tipo di accesso a file (solalettura, archiviazione).

AAATTTTTTRRRIIIBBB [[[<<<ooopppzzziiiooonnneee]]] <<<pppaaattthhhnnnaaammmeee>>>

Modifica o imposta le modalità di accesso ai file.

OOOpppzzziiiooonnniii:::

+R imposta l’attributo di sola lettura

-R cancella l’attributo di sola lettura

+A imposta l’attributo di archiviazioneche rende possibile la memorizzazionedi file in formati più compatti (vediBACKUP)

-A cancella l’attributo di archiviazione

☞ ATTRIB <file> visualizza gli attributi del filespecificato.

������������������� � ��� ��

GGGeeessstttiiiooonnneee dddeeelllllleee pppeeerrriiifffeeerrriiiccchhheee

DDDiiissspppooosssiiitttiiivvviii cccooommmeee fffiiillleee

Ad alcuni dispositivi sono associati dei nomi particolari(CON: per la console, PRN: per la stampante) e operazionisimili a quelle su file (omogeneità con i file).

AAAddd eeessseeemmmpppiiiooo:::

• È possibile copiare il contenuto di un file sul video:

COPY FILE.DAT CON:

• Copiare le informazioni date in ingresso dalla console in unfile:

COPY CON: FILE.DAT

• La terminazione dello standard input viene ottenuta tramitela combinazione dei tasti <CTRL>-Z.

• Inviare (copiare) il contenuto di un file alla stampante.

COPY FILE.DAT PRN:

������������������� � ��� ��

CCCooommmaaannndddiii dddiii gggeeessstttiiiooonnneee dddeeeiii dddiiisssccchhhiii

DDDIIISSSKKKCCCOOOPPPYYY [[[nnnooommmeeedddrrriiivvveee111:::]]] [[[nnnooommmeeedddrrriiivvveee222:::]]]

Esegue una copia FISICA di dischi UGUALI, (es.: 3,5”con 3,5”). Se si vogliono copiare file da dischi diversiusare il comando COPY od XCOPY.

Se il disco destinazione contenuto in nomedrive2 non è‘formattato’, esso viene inizializzato allo stesso modo deldisco sorgente.

C:\> DISKCOPY a: b:

CCCHHHKKKDDDSSSKKK <<<PPPaaattthhhnnnaaammmeee>>>

Restituisce informazioni relative allo stato di allocazionedi un disco (o frammentazione di un file)

CHKDSK <nome unità>CHKDSK <nome file>

OOOpppzzziiiooonnniii:::

/F ricompatta in file i byte frammentatisul disco e recupera le allocazioniperse.

������������������� � ��� ��

DDDIIISSSKKKCCCOOOMMMPPP <<<sssooorrrgggeeennnttteee>>> <<<dddeeessstttiiinnnaaazzziiiooonnneee>>>

Confronta il contenuto di due floppy disk.

C:\> DISKCOMP a: b:

BBBAAACCCKKKUUUPPP <<<pppaaattthhh---sssooorrrggg>>> <<<dddrrriiivvveee---dddeeesssttt>>> [[[<<<ooopppzzziiiooonnniii>>>]]]

Viene utilizzato per il salvataggio di file o insiemi di file esotto directory su dischetto (o su una serie di dischetti).Differisce da COPY e XCOPY perché:

a) la direzione della copia è fissa: da DISCO RIGIDO aDISCHETTO.

b) I file vengono salvati in un formato non leggibile.c) Un comando di backup può coinvolgere più dischetti (se la

quantità di byte da copiare eccede la capacità di undischetto): i file che eccedono lo spazio disponibile sul discovengono spezzati e copiati in parte sul disco “corrente” ed inparte sul successivo.

L’utilizzo tipico di backup è quello di effettuare il salvataggiodi file di grandi dimensioni, o di effettuare il salvataggio delcontenuto dell’intero disco rigido.

OOOpppzzziiiooonnniii:::

/S copia anche le sotto-directory

/A aggiunge sul dischetto di destinazione senzacancellare gli eventuali file pre-esistenti

/M copia solo i file modificati dopo l’ultimobackup.

EEEssseeemmmpppiiiooo:::

C:\> BACKUP c: a: /S

������������������� � ��� ��

RRREEESSSTTTOOORRREEE <<<dddrrriiivvveee---sssooorrrggg...>>> <<<dddeeesssttt>>> [[[<<<ooopppzzziiiooonnniii>>>]]]

Il comando RESTORE è complementare al comandoBACKUP: ripristina i file (e/o i direttori) salvati con unbackup.

OOOpppzzziiiooonnniii:::

/S ripristino di eventuali sotto directory

/M ripristino dei soli file modificati dopoil backup

/N ripristino dei soli file non più esistentisul disco destinazione

EEEssseeemmmpppiiiooo:::

C:\> RESTORE a: C:\DIR2 /S/M

������������������� � ��� ��

CCCooommmaaannndddiii dddiii iiinnnttteeerrraaazzziiiooonnneee cccooonnn iiilll sssiiisssttteeemmmaaa

CCCooommmaaannndddiii dddiii ssstttaaatttooo dddeeelll sssiiisssttteeemmmaaa

Sono i comandi che consentono di ottenere informazionisull’attuale configurazione del sistema, ed, eventualmente,di modificarla.

EEECCCHHHOOO

Consente di attivare (ECHO ON) o disattivare (ECHOOFF) la visualizzazione dei caratteri in ingresso chevengono forniti da console.

CCCLLLSSS

Effettua la pulizia dello schermo, lasciando solo il promptdi MS-DOS.

DDDAAATTTEEE,,, TTTIIIMMMEEE

Consentono la visualizzazione o la modifica della data edell’ora del sistema.

C:\>DATE

La data attuale è 28/2/01

C:\>DATE 30-3-96

(impostazione nuova data)

������������������� � ��� ��

KKKEEEYYYBBB

Consente il caricamento di un particolare programma digestione della tastiera.

C:\>KEYB IT

CCCooommmaaannndddiii dddiii ssstttaaatttooo dddeeeiii dddiiissspppooosssiiitttiiivvviii:::

MMMOOODDDEEE

Il comando MODE, a seconda dei suoi parametri,determina lo stato e la modalità di gestione dei varidispositivi.

C:\> MODE LPT1: 80, 6, B

Specifica che la stampante collegata alla porta parallela 1deve considerare una lunghezza di riga di 80, conspaziatura tra le righe di 6 pollici; l’ultimo parametrospecifica di ritentare le operazioni di scrittura in caso dinon risposta.

������������������� � ��� ��

GGGeeessstttiiiooonnneee dddiii vvvaaarrriiiaaabbbiiillliii dddiii sssiiisssttteeemmmaaa

VVVaaarrriiiaaabbbiiillliii dddiii sssiiisssttteeemmmaaa

In MS-DOS è possibile dichiarare ed utilizzare variabili(“di sistema”).

Le variabili di sistema possono essere riferite soloall’interno di file eseguibili:• COMANDI• FILE COMANDI• PROGRAMMI

Il comando MS-DOS per dichiarare ed utilizzare variabili“di sistema” è:

SSSEEETTT [[[<<<vvvaaarrriiiaaabbbiiillleee>>> === <<<vvvaaalllooorrreee>>>]]]

• L’argomento esprime quale valore assegnare alla variabilespecificata. Il valore è una sequenza di caratteri (stringa).

• Senza argomenti visualizza i valori correnti delle variabilidichiarate.

C:\>SET MIODIR = A:\DIR2

������������������� � ��� ��

☞ In MS-DOS esistono variabili di sistema predefinite:

• PATH rappresenta i cammini preferenziali di ricerca dei fileeseguibili.

• APPEND rappresenta i cammini preferenziali di ricerca deifile di dati;

• PROMPT rappresenta il prompt di sistema operativo

• …

C:\>SET PROMPT=Anna $p $g

Anna C:\>

������������������� � ��� ��

PPPaaattthhh

Se il nome di un programma (o di un comando esterno)viene dato in modo relativo, esso viene ricercato neldirettorio corrente, a meno che non sia definito uncammino di ricerca (variabile di sistema PATH). In talcaso, la ricerca viene estesa anche ai direttori specificatinel path.

PPPAAATTTHHH [[[<<<dddiiirrr 111>>>;;;<<<dddiiirrr 222>>>;;;.........;;;<<<dddiiirrr nnn>>>]]]

È un comando che permette di indirizzareautomaticamente la ricerca di:

• COMANDI• FILE ESEGUIBILI• FILE COMANDI (.BAT)

verso cammini (“path”) preferenziali.Il comando PATH modifica il valore della variabile disistema PATH.

• Se non viene fornito nessun argomento visualizza laimpostazione corrente (cammini di ricerca correntemente inuso).

• Se non viene impostato alcun cammino preferenziale:

PATH = <Directory corrente>

☞ Successivi richiami di PATH determinano la perditadelle impostazioni precedenti.

������������������� � ��� ��

EEEssseeemmmpppiiiooo PPPAAATTTHHH:::

DOS

\

RESTORE.COM

C:\>PATHPATH=\

C:\> RESTORE a: c:"comando o nome file non valido"

C:\> PATH C:\DosC:\> RESTORE a: c:

������������������� � ��� ��

AAAPPPPPPEEENNNDDD [[[<<<dddiiirrr 111>>>;;;<<<dddiiirrr 222>>>;;;.........;;;<<<dddiiirrr nnn>>>]]]

• Permette di indirizzare automaticamente la ricerca di FILEDI DATI verso cammini preferenziali.

• Aggiorna il valore della variabile di sistema APPEND.• Se non viene fornito nessun argomento, visualizza la

impostazione corrente.• Se non viene impostato alcun cammino preferenziale:

APPEND = <Directory corrente>

☞ Successivi richiami di APPEND determinano la perditadelle impostazioni precedenti.

������������������� � ��� ��

EEEssseeemmmpppiiiooo AAAPPPPPPEEENNNDDD:::

DOS

\

RESTORE.COM

DOC

README.DOC

C:\>APPENDAppend=C:\

C:\> TYPE README.DOC"file non trovato"

C:\> APPEND C:\DOS; C:\DOC;(impostazione nuovo cammino)

C:\> TYPE README.DOC"…" (visualizza il file readme.doc)

������������������� � ��� ��

EEEssseeemmmpppiiiooo:::

C:\> SET PATH=C:\DOS

[equivale a C:\> PATH C:\DOS]

C:\> SET APPEND =C:\DOC

[equivale a C:\> APPEND C:\DOC]

C:\> SET PROMPT=$P$GC:\> SET MIODIR=A:\DIR2C:\> SETPATH=C:\DOSAPPEND =C:\DOCPROMPT=$P$GMIODIR=A:\DIR2

������������������� � ��� ��

RRRiiidddiiirrreeezzziiiooonnneee dddeeeiii cccooommmaaannndddiii

CCCooommmaaannndddiii cccooommmeee fffiiillltttrrriii

In generale, ogni comando accetta dati in ingresso input eproduce risultati in output.

• Standard Input: la tastiera• Standard Output: il video

input output COMANDO

RRRiiidddiiirrreeezzziiiooonnneee

È possibile sostituire i canali standard di input e di outputcon file o dispositivi.

IIInnn pppaaarrrtttiiicccooolllaaarrreee

Sono stati introdotti alcuni metacaratteri per esprimere laridirezione dei comandi:• < esprime la ridirezione in ingresso• > esprimere la ridirezione in uscita.• >> esprime la ridirezione in uscita, in modo append:

l’uscita avviene su un file preesistente, senza alterarne ilprecedente contenuto, aggiungendo le nuove informazionidi seguito all’ultimo byte del file.

������������������� � ��� ��

EEEssseeemmmpppiii dddiii rrriiidddiiirrreeezzziiiooonnneee iiinnn uuusssccciiitttaaa:::

C:\> DIR B: > FILE.DAT

il contenuto del direttorio è inserito nel file specificato.

C:\> TYPE PIPPO > LPT1

l’uscita del comando “TYPE PIPPO” (il contenuto diPIPPO) è ridiretta verso la stampante LPT1.Equivale ad un comando di stampa in “foreground” (attesafino al completamento della stampa).

C:\> TYPE PLUTO >> PIPPO

concatena il file PLUTO con PIPPO.

C:\> COMP FILE1.PAS FILE2.PAS >> COMP.DATC:\> COMP FILE3.PAS FILE4.PAS >> COMP.DAT

nel file COMP.DAT sono via via aggiunte le uscite dei duecomandi di confronto.

������������������� � ��� ��

RRRiiidddiiirrreeezzziiiooonnneee iiinnn iiinnngggrrreeessssssooo::: cccooommmaaannndddiii fffiiillltttrrrooo

Un filtro è un comando che accetta input da:• tastiera• file• dispositivi• etc.

I filtri MS-DOS sono SORT, FIND, MORE.

SSSOOORRRTTT <<< <<<iiinnnpppuuuttt>>>

Ordina alfabeticamente le linee di un file ASCII avuto perinput.

C:\> SORT < PIPPO

FFFIIINNNDDD """<<<ssstttrrriiinnngggaaa>>>""" <<< <<<iiinnnpppuuuttt>>>

Ricerca una <stringa> in un file di input; se la <stringa> èpresente, viene visualizzata la linea che la contiene.

C:\> FIND "PATH" < AUTOEXEC.BAT"PATH = c:\DOS;"

ricerca la parola PATH all’interno del fileAUTOEXEC.BAT

MMMOOORRREEE <<< <<<iiinnnpppuuuttt>>>

Esegue una visualizzazione a pagine dell’input.

C:\> MORE < PIPPO

������������������� � ��� ��

EEEssseeemmmpppiii:::

C:\> SORT /R < FILE.SRT > INVFILE.SRT

il file in ingresso è ordinato con ordinamento inverso(grazie all’opzione /R) e posto nel file specificato inuscita.

C:\> FIND "ciao" < FILE.DAT

cerca la stringa “ciao” nel file FILE.DAT: riporta le righeche la contengono.

C:\> MORE < FILE1.PAS

visualizza (una pagina alla volta) il contenuto del filespecificato.

������������������� � ��� ��

PPPiiipppiiinnnggg dddiii cccooommmaaannndddiii

È possibile concatenare sequenzialmente comandi inmodo che l’output del comando che precede coincida conl’input del comando che segue.

• Il concatenamento si indica con il carattere: “|”

• I comandi concatenati in successione devono essere filtri(tranne il primo).

• Il collegamento viene realizzato attraverso file temporaneigestiti dal sistema operativo.

• È una particolare forma di ridirezione.

EEEssseeemmmpppiiiooo:::

C:\> DIR | SORT | MORE

Fornisce una lista di file e direttori del direttorio correntesu C, in ordine alfabetico e per videate successive.

������������������� � ��� ��

EEEssseeemmmpppiii:::

C:\> DIR A: | FIND ".COM" | SORT | MORE

visualizza in ordine alfabetico, fermandosi ad ognivideata, i file di estensione .COM del direttorio correntesul disco A.

Alternativa:usando la sola ridirezione, avremmo dovuto introdurre unaserie di file temporanei:

C:\> DIR A: > temp.datC:\> FIND ".COM" < temp.dat >temp1.datC:\> SORT < temp1.dat > temp2.datC:\> MORE < temp2.datC:\> DEL temp*.dat

☞ Ridirezione e piping possono essere utilizzati insieme:

C:\> TYPE elenco.dat | FIND "Rossi" | SORT > lpt1

• Stampa le linee del file elenco.dat in cui compare lastringa “Rossi” in ordine alfabetico.

C:\>FIND "1993" < iscrizioni.dat |SORT > iscritti.93

• Produce il file iscritti.93 (ordinato alfabeticamente)che contiene le linee del file iscrizioni.dat in cui compare lastringa “1993”.

������������������� � ��� ��

FFFiiillleee cccooommmaaannndddiii

In MS-DOS è possibile mandare in esecuzione sequenzedi comandi memorizzate su file (“BATCH FILE” o filecomandi).• I comandi da eseguire vengono memorizzati in sequenza in

file di nome:

<prefisso>.BAT

• L’estensione “.BAT” rende noto al sistema operativo che ilcontenuto del file è da sottoporre all’interprete comandi.

Es.: TC.BAT per chiamare l’ambiente TurboC

clsecho offcd \TCTCcd \echo on

������������������� � ��� ��

IIInnnvvvooocccaaazzziiiooonnneee dddeeelll fffiiillleee cccooommmaaannndddiii

C:\> TC

oppure

C:\> TC.bat

• L’invocazione di un file comandi produce la esecuzionesequenziale di tutti i comandi costituenti, nell’ordinetestuale.

• I comandi possono contenere ridirezione e piping.

������������������� � ��� ��

FFFiiillleee dddiii CCCooonnnfffiiiggguuurrraaazzziiiooonnneee dddeeelll SSSiiisssttteeemmmaaa

La configurazione standard del sistema può esseremodificata mediante i due file:• AUTOEXEC.BAT• CONFIG.SYS

IIIlll fffiiillleee AAAUUUTTTOOOEEEXXXEEECCC...BBBAAATTT

Il file AUTOEXEC.BAT è un file comandi che contiene lasequenza di comandi da eseguire al termine della fase dibootstrap (tipicamente, sono comandi di configurazione delsistema).

AAAddd eeessseeemmmpppiiiooo:::

AUTOEXEC.BATecho offpath=c:\dos;c:\TCappend c:\dataprompt $p$gdatetimeprint /d:lpt1keyb Itclsecho on

������������������� � ��� ��

IIIlll fffiiillleee CCCOOONNNFFFIIIGGG...SSSYYYSSS

Prima di cercare il file AUTOEXEC.BAT, MS-DOSesegue un gruppo di comandi che caricano i driverinstallabili e riservano dello spazio nella memoria delsistema per l’elaborazione delle informazioni.

L’elenco dei driver da caricare è contenuto nel fileCONFIG.SYS:••• Il file viene letto all’avviamento del sistema: se si modifica

questo file, è necessario riavviare il sistema affinché lemodifiche abbiano effetto.

••• Per modificare la confogurazione, è possibile aggiungerenuove direttive a CONFIG.SYS o modificare quelleesistenti.

Il file CONFIG.SYS varie direttive, tra cui:Device carica un driver installabile nel sistema

operativo.

Buffers imposta la quantità di memoria cheMS-DOS riserva per il trasferimentodelle informazioni tra dischi ememoria centrale.

File Imposta il numero di file che MS-DOSconsente di aprirecontemporaneamente.

EEEssseeemmmpppiiiooo:::

Device = c:/mouse/mouse.sysBuffers = 30Files = 30

������������������� � ��� ��

CCCooommmaaannndddiii dddiii uuutttiiillliiitttààà eee sssvvviiillluuuppppppooodddiii uuunnn ppprrrooogggrrraaammmmmmaaa

Per ottenere un file eseguibile (.EXE o .COM) bisognapassare attraverso le fasi di sviluppo di un programma:• editing• compilazione• linking• loading (loader, RTS)

Se sono stati rilevati errori:• debugging (si utilizza un debugger per verificare la

correttezza del programma).

MS-DOS fornisce programmi di utilità per la prima e leultime due fasi.

EEEDDDLLLIIINNN

È un editor di linea (dalla versione 5.0 è disponibile uneditor full-screen molto più facile da usare e comodo)

DDDEEEBBBUUUGGG

È un debugger non simbolico.Il caricamento di file eseguibili è fornito dal run-timesystem.

������������������� � ��� ��

EEEssseeerrrccciiizzziiiooo:::

Supponendo che il disco A contenga la seguente strutturadi file:

A:\|__PIPPO: a.bat, b.bat||__PLUTO: c.bat, d.bat

indicare la situazione risultante dopo i seguenti comandieseguiti in sequenza:

C:\> MKDIR A:\PIPPO\PAPERINOC:\> CHDIR A:\PIPPO\PAPERINOC:\> COPY A:\PLUTO A:

������������������� � ��� ��

SSSooollluuuzzziiiooonnneee

Il primo comando crea la subdirectory PAPERINO entro ildirettorio PIPPO.Il secondo comando lo rende il direttorio correntesull’unità A (e per questo ciò non è visibile nel prompt,che resta settato sull’unità C, non avendo noiesplictamente mai cambiato unità).Il terzo comando copia tutti i file della directory PLUTOnella directory corrente dell’unità A:, che è\PIPPO\PAPERINO.La situazione finale è la seguente:

A:\|__PIPPO: a.bat, b.bat| || |__PAPERINO: c.bat d.bat||__PLUTO: c.bat, d.bat

������������������� � ��� ��

EEEssseeerrrccciiizzziiiooo:::

Supponendo che il disco C contenga la seguente strutturadi file:

C:\|__LUCIA: es1a.txt, es1b.txt es2a.txt es2b.txt||__LAURA: ex.txt

indicare la situazione risultante dopo i seguenti comandi(eseguiti in sequenza):

C:\> COPY LUCIA\ES?A.TXT LAURAC:\> REN LAURA\ES*.TXT LAURA\*.LUC

Indicare anche, se esiste, un modo più compatto perottenere lo stesso risultato.

SSSooollluuuzzziiiooonnneee

Il primo comando copia i due file ES1A.TXT eES2A.TXT nel direttorio LAURA, il secondo comando lirinomina cambiandone l’estensione in .LUC. Ciò non siapplica al file EX.TXT già esistente nel direttorioLAURA, in quanto non compreso nell’insieme di filereferenziati dalla sintassi “ES*.TXT” del comandoRENAME.

������������������� � ��� ��

La situazione finale è la seguente:

C:\|__LUCIA: es1a.txt, es1b.txt es2a.txt es2b.txt||__LAURA: ex.txt es1a.luc es2a.luc

Comando equivalente:

C:\> COPY LUCIA\ES?A.TXT LAURA\*.LUC

������������������� � ��� ��

EEEssseeerrrccciiizzziiiooo:::

Supponendo che il disco C contenga la seguente strutturadi file:

C:\|__LUCIA: win.com||__LAURA: win.exe won.com

indicare come dev’essere predisposto il PATH affinché,dando il comando “WIN”, venga eseguito il programmasituato nel direttorio LUCIA (e non quello, quasiomonimo, del direttorio LAURA), mentre battendo “WON”venga regolarmente trovato ed eseguito il programmasituato nel direttorio LAURA.

SSSooollluuuzzziiiooonnneee

È chiaro che, per trovare sia WIN nel direttorio LUCIA siaWON nel direttorio LAURA, entrambi questi direttoridovranno essere elencati nel PATH; tuttavia, la necessitàdi selezionare, dei due quasi-omonimi, quello deldirettorio LUCIA, fa sì che quest’ultimo direttorio debbaessere elencato prima dell’altro all’interno dell’elenco delcomando PATH.

Dunque, potrà essere:

C:\> PATH C:\LUCIA;C:\LAURA