File System Il componente del sistema operativo che fornisce una soluzione ai tre requisiti prima menzionati è chiamato File System Un file system è un sottosistema complesso e fornisce agli sviluppatori un'interfaccia di programmazione per le loro applicazioni molto estesa che consente ad essi di implementare logiche di creazione e di fruizione delle informazioni molto articolate. Da un punto di vista dell'utente però l'aspetto più importante di un file system è come appare alla sua vista, e cioè: - gli oggetti elementari che definisce e con cui l'utente può interagire, - le caratteristiche di tali oggetti, - le operazioni che l'utente può effettuare su tali oggetti. Il file Il file system per dare una risposta ai requisiti fondamentali prima evidenziati, organizza le informazioni in unità chiamate file che rappresentano gli oggetti elementari gestiti da un file system. Un file è un meccanismo di astrazione grazie al quale è possibile scrivere informazioni su un supporto di memorizzazione per poterle leggere e/o modificare in momenti successivi. L'astrazione mediante file da inoltre la possibilità all'utilizzatore di ignorare i dettagli e le modalità con cui le informazioni sono effettivamente scritte sul disco ed il funzionamento di quest'ultimo. 1 Il file La caratteristica più importante di un file è indubbiamente il nome. Mediante il nome è possibile identificare un file e compiere su di esso tutte le operazioni possibili( che in seguito analizzeremo ). In quasi tutti i sistemi operativi i nomi di file legali sono stringhe di caratteri. Tuttavia in dipendenza del sistema operativo vi possono essere limiti sulla lunghezza della stringa e sul formato. Un famigerato esempio è il S.O. MS-DOS che obbliga i nomi dei file a rientrare nello schema detto 8.3 in cui il nome è una stringa di 8 caratteri al massimo seguita da un'altra stringa di massimo 3 caratteri che ne esplicita il tipo. Alcuni file systems sono “case sensitive” nel senso che lettere maiuscole e minuscole vengono considerate diverse. Esempi di file system reali sono: - (in ambiente Windows) sono case insensitive, - ed altri (in ambiente UNIX) sono case sensitive. Il file Vi sono tutta una serie di dati che forniscono informazioni aggiuntive sui file che vengono chiamati attributi del file. Essi dipendono fortemente dal sistema operativo e dal file system. Alcuni dei possibili attributi sono: - creatore - proprietario - flag read only , che indica se il file è leggibile o anche scrivibile. - flag che indica se il file è nascosto - flag che indica se il file è binario o di testo - statistiche di accesso(tempo di creazione,ultimi tempi di lettura e modifica) - dimensione - dimensione massima 2 Il file Il file system mette a disposizione dell'utente una serie di operazioni elementari che è possibile eseguire sui file. In generale, è sicuramente possibile effettuare le seguenti operazioni: - creazione - cancellazione - accesso - copia / spostamento - condivisione / protezione Ogni file system definisce le sue politiche per la definizione di tali ed altre operazioni. Organizzazione dei file Se i file sono molti, identificarli con un nome non è sufficiente a reperirli con facilità (ed è difficile non usare due volte lo stesso nome!) In un armadio useremmo delle cartellette o dei raccoglitori per dividere i documenti in modo logico... …nel file system esiste il concetto di cartella (folder o directory) Una cartella può contenere dei file, e anche delle altre cartelle (chiamate in questo caso sotto-cartelle) Due file in due cartelle diverse possono anche avere lo stesso nome: a distinguerli è la cartella di appartenenza Questa organizzazione dei file si definisce organizzazione gerarchica o ad albero 3 Organizzazione dei file La radice dell’albero è l’unità di memoria secondaria Windows usa le lettere dell’alfabeto per identificare le diverse unità: es. C hard disk, D cd o dvd, E penna usb,... All’interno dell’unità si trovano file e cartelle... Pathname = nome del percorso Indica il percorso da seguire per raggiungere un file in memoria secondaria Specifica l’unità (es.: “C”) la sequenza di cartelle che bisogna aprire per trovare il file (es.: “Documenti” quindi “Tesi” ) Il nome del file (es.: “lucidi.ppt”) I diversi elementi sono separati dal carattere \ chiamato backslash 4 Il pathname assoluto La sequenza di directory che parte dalla radice del file system viene chiamata pathname assoluto La directory dove ci si trova in un dato momento è detta directory corrente (o di lavoro) Il pathname relativo Un pathname è relativo quando invece di partire dalla radice del file system, si riferisce alla directory corrente (il corrispondente pathname assoluto viene calcolato dal sistema) 5 Caratteri jolly • I caratteri jolly possono essere usati per indicare più file contemporaneamente • Sostituiscono delle parti di nome o di estensione comuni a un gruppo di file – il carattere ‘*’ sostituisce una stringa (sequenza di caratteri) di lunghezza qualunque (anche nulla) a partire dalla posizione in cui è inserito – il carattere ‘?’ sostituisce esattamente un carattere in corrispondenza della posizione in cui è inserito • In Windows, nelle versioni più recenti (a partire da XP) c’è la completion automatica del comando MS-DOS Non esistono praticamente in commercio PC che installino DOS, però Windows conserva la console (che si lancia con cmd.exe) che permette di interagire direttamente con l’interprete dei comandi. Però esistono SO che si basano fortemente sull’interazione con la console (Linux) Il DOS mette a disposizione dell’utente una serie di comandi I comandi sono, in generale, introdotti usando la tastiera Prima di poter eseguire un nuovo comando è necessario aspettare la terminazione del precedente Per segnalare all’utente che è pronto ad accettare un comando, il sistema operativo presenta quello che viene chiamato PROMPT di sistema Tutto ciò è utile a capire il fatto che i SO, e il software in genere è un sistema a cipolla 6 MS-DOS Ogni volta che il sistema è pronto ad accettare un comando vi sarà il cursore lampeggiante prompt di sistema cursore lampeggiante C:\DOS>_ Comando CD Nome comando: CD o CHDIR Funzione: cambia la directory di lavoro; senza parametri visualizza il nome della directory corrente Sintassi: CD [path] Nota: il cammino specificato (path) può essere assoluto o relativo (ma solo in riferimento all’unità corrente) Esempi: CD CD CD \MSDOS\UTIL ..\PIPPO .. (passa alla directory padre, di quella attuale) 7 Comando COPY Nome comando: COPY Funzione: copia uno o più file in un’altra posizione o concatena una lista di file Sintassi: COPY origine destinazione COPY file1 + file2 +… + file-n tuttoqui Nota: nel caso venga usato per concatenare due o più file (+), COPY restituisce il nome dei file uniti mentre procede nella concatenazione Comando COPY Esempi: copy c:\game\dati.txt c:\copia.txt copy ..\..\fax.doc fax.doc copy a:\*.* c:\backup copy c:\compiti.* a:\dati\scuola copy c:\autoexec.b?t . copy dati1.txt+dati2.txt dati12.txt 8 Comando DEL Nome comando: DEL o ERASE Funzione: cancella i file specificati come parametro Sintassi: DEL [unità][path]nome_file ERASE [unità][path]nome_file Nota: con l’opzione /P il comando DEL chiede conferma per la cancellazione Esempi: DEL c:\dati\cifre.dat DEL ..\lucidi.ppt DEL program.bat Comando DIR Nome comando: DIR Funzione: visualizza il contenuto della directory specificata Sintassi: DIR [unità][path][nome_dir] Note: con l’opzione /P visualizza una schermata alla volta; con /W visualizza fino a 5 nomi per riga Esempi: DIR C:\DATI\ /P DIR /W DIR ..\..\COMPITI 9 Comando MD Nome comando: MD o MKDIR Funzione: crea una directory dal nome specificato Sintassi: MD [unità][path]nome_directory Nota: se si cerca di creare una directory già esistente questo viene segnalato con un messaggio di errore Esempi: MD MD C:\CORSI\FONDINFO CORSI Comando MOVE Nome comando: MOVE Funzione: permette di spostare uno o più file nella posizione specificata Sintassi: MOVE [unità][path]origine [unità][path]destinazione Note: può anche essere usato per cambiare nome alle directory; non era presente nelle vecchie versioni del DOS Esempi: MOVE A:\*.* MOVE LUCIDI C:\BACKUP SLIDE 10 Comando RD Nome comando: RD o RMDIR Funzione: permette di eliminare una directory specificata Sintassi: RD [unità][path]nome_directory Nota: la directory specificata non può essere eliminata se non vuota Esempi: RD APPUNTI RMDIR C:\UTIL\DATI RD ..\..\SLIDE Comando REN Nome comando: REN o RENAME Funzione: permette di cambiare nome ad un file specificato Sintassi: REN [unità][path]nome1 nome2 RENAME [unità][path]nome1 nome2 Nota: il comando non può essere utilizzato per spostare i file Esempi: REN C:\DATI1.TXT REN TABELLA1.TXT DATI2.TXT TAB.DAT 11