File system In informatica, un file system è, informalmente, un
Transcript
File system In informatica, un file system è, informalmente, un
File system In informatica, un file system è, informalmente, un meccanismo con il quale i file sono immagazzinati e organizzati su un dispositivo di archiviazione. Più formalmente, un file system è l'insieme dei tipi di dati astratti necessari per la memorizzazione (scrittura), l'organizzazione gerarchica, la manipolazione, la navigazione, l'accesso e la lettura dei dati. I dispositivi di archiviazione sono molteplici (dischi rigidi, floppy, pendrive e dischi ottici) il compito del file system è quello di astrarre la complessità di utilizzo dei diversi media proponendo una interfaccia per i sistemi di memorizzazione, in maniera efficiente, comune a tutti. Dal punto di vista dell'utente, un file system è composto da due elementi: File: unità logica di memorizzazione. Directory: un insieme di informazioni per organizzare e fornire informazioni sui file che compongono un file system. File Il file è un entità atomica di assegnazione e gestione della memoria secondaria, rappresenta una serie di informazioni correlate, e ad esse fornisce una vista logica uniforme. Nome: stringa di caratteri che permette agli utenti ed al SO di identificare un particolare file nel FS. Tipo: necessario in alcuni sistemi per identificare il tipo di file, in genere questa identificazioni viene effettuata per mezzo dell'estensione. Locazione e dimensione: informazione sul posizionamento del file in memoria secondaria, può essere disposto anche in blocchi non contigui. Data e ora: informazioni relative al tempo di creazione ed ultima modifica del file. Informazioni sulla proprietà: utenti e gruppi proprietari, utilizzato per Accounting ed autorizzazione. Attributi di protezione: informazioni di accesso per verificare chi è autorizzato ad eseguire operazioni sul file (lettura/scrittura). Directory Una directory è una specifica entità del file system che elenca altre entità, tipicamente file e altre directory, e che permette di organizzarle in una struttura ad albero. Essa è pertanto definibile come un indirizzo, percorso (path) o locazione del file system in cui sono presenti file o altre directory. Un tipico file system può contenere anche centinaia di migliaia di file: le directory consentono di suddividerli in gruppi più piccoli, tenendoli ordinati e facilitandone l'uso da parte degli utenti e dei programmi. Ogni entità del file system diventa individuabile tramite un pathname, ovvero un nome qualificato dai nomi delle directory che occorre attraversare per accedervi, a partire dalla radice dell'albero oppure dalla directory corrente. Una directory elencata in un'altra directory è anche detta subdirectory, mentre quella che la elenca è la sua directory superiore (o directory di livello superiore). Una directory associa dei nomi alle strutture dati nel file system che rappresentano il contenuto dei file e delle altre directory, in modo da potervi fare riferimento per nome; ciò è particolarmente evidente nei sistemi Unix (ove le directory associano dei nomi a degli inode) nel momento in cui si vuole ad esempio modificare il nome di un file, operazione per la quale è necessario disporre dei permessi di scrittura sulla directory che lo elenca piuttosto che sul file stesso. Inode-UNIX Nei sistemi Unix un inode è una struttura dati sul file system che archivia le informazioni base dei file, delle directory o di qualsiasi altro oggetto. Le informazioni includono: la dimensione del file e la sua locazione fisica (se risiede su un dispositivo a blocchi come, ad es., un hard disk) il proprietario e il gruppo di appartenenza le informazioni temporali di modifica (mtime), ultimo accesso (atime) e di cambio di stato (ctime) il numero di collegamenti fisici che referenziano l'inode i permessi d'accesso un puntatore allo spazio del disco che contiene i files veri e propri Ogni inode ha associato un numero univoco all'interno del dispositivo e ogni file presente è identificato come un collegamento fisico all'inode tramite il suo numero. Quando un programma cerca di accedere ad un file tramite un nome (es.documento.txt), il sistema operativo cerca l'inode corrispondente e recupera tutte le informazioni sopra descritte per operare correttamente con il file.