Tutti i programmi, i dati, ed anche il sistema operativo, sono scritti sul disco rigido. Quando il computer viene spento quello che c'e' nella memoria RAM si perde, solo quello che c'e' sul disco rigido non si cancella.
Un file e' una sequenza di byte identificati da un nome, e puo' contenere dati, programmi, immagini, suoni etc. In Linux anche le periferiche sono viste come fossero dei files, e potete riuscire a "scrivere" sul file della scheda audio ed ottenere suoni dalle casse (ovviamente orribili). Il disco stesso e' visto come un file. Se scrivete sopra direttamente sul file che lo rappresenta lo scarabbocchiate tutto. E' una cosa che Linux ha ereditato da Unix.
I dischi sono divisi in partizioni, i primi 512 byte del disco (detti boot sector) contengono un indice delle partizioni (la partition table) ed un piccolo programmino che serve alla partenza della macchina.
Siccome il boot sector e' piccolo ed una volta anche i dischi erano poco capienti, si penso' che bastasse un indice che descrivesse 4 partizioni (erano i tempi del vecchio DOS).
Poi i dischi sono diventati grandi, e 4 partizioni sono diventate poche. Allora si e' ricorsi ad un trucco. Una di queste partizioni (detta partizione estesa) contiene un rimando a zone del disco dove ci sono altri indici di partizioni (queste altre partizioni sono dette partizioni logiche); le 4 partizioni originarie sono chiamate partizioni primarie. Una bella confusione, dovuta al fatto di non aver previsto come i dischi sarebbero diventati capienti col tempo.
Ogni partizione contiene un "file System", cioe' un sistema di tabelle ed indici fatto in modo che il disco appaia come una struttura gerarchica, fatta di cartelle e sotto-cartelle. Le cartelle le chiameremo "directory", secondo la nomenclatura di Unix (e Linux).
Le cartelle in realta' non esistono, sono solo dei files speciali che contengono dei nomi di files e indirizzi di tabelle. Anche un file sembra una cosa unica, ma e' diviso in settori, sparsi in parti del disco anche distanti, dipende da dove c'era posto quando il file e' stato creato. I dettagli del file system sono complicati, l'importante e' capire che per l'utente e' un struttura gerarchica, ed imparare a muoversi in questa struttura.
Ci sono molti file system diversi, tutti mostrano all'utente una struttura gerarchica di cartelle e sottocartelle; differiscono per i dettagli interni, essenzialmente per come sono fatte le tabelle dei settori e gli indici dei files.
I principali file system in cui potete imbattervi sono:
In Windows siete abituati a vedere i diversi dischi identificati da lettere, e su ognuno c'e' un file system. In Linux i file system delle diverse partizioni del disco o di dischi diversi, ma anche quelle dei Cd-ROM e chiavette USB, vengono tutti "montati" in un file system unico, per cui vedete un'unica struttura gerarchica. Questa operazione di "mount", in alcune versioni di Linux, e' effettuata in modo automatico, in altre potete fare il "mount" con l'interfaccia grafica, oppure potete farlo alla vecchia maniera, "a mano" dando al computer il comando "mount" con la sintassi giusta.
L'inizio della struttura si chiama "root" (radice) ed e' identificata da una barra: "/" . I nomi dei files hanno una sintassi del tipo: "/directory/sotto-directory/nomefile" cioe' il nome del file e' preceduto dai nomi delle cartelle e sottocartelle in cui si trova, separati da barre. Voi potete spostarvi nell'albero delle directory, e, se non mettete nel nome di file tutto il percorso, il sistema intende che state indicando un percorso relativo alla cartella in cui siete.
Sotto root abbiamo diverse directory; diverse distribuzioni adottano piccole varienti a questo schema, che e' abbastanza standardizzato: