title: Inode
text: # Inode
  
  Nei sistemi Unix, un inode (o i-node, abbreviazione di index node) è una struttura dati sul file system che archivia e descrive attributi base su file, directory o qualsiasi altro oggetto.
  
  ## Descrizione
  
  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 file veri e propri.
  
  Il termine inode normalmente si usa sui dispositivi a blocchi che gestiscono file, directory e collegamenti simbolici. Il concetto è particolarmente importante quando è necessario ripristinare un file system danneggiato.
  
  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.
  
  Per recuperare le informazioni sull'inode dei file si può usare la chiamata di sistema stat seguita dal nome del file.
  
  Un inode occupa un blocco, ma solo una piccola parte contiene gli indirizzi ai blocchi del file. Si usa un approccio multilivello: i primi 12 puntano direttamente ai blocchi, il tredicesimo punta ad un blocco riempito di riferimenti ai blocchi, un blocco indiretto singolo, il quattordicesimo ad un blocco indiretto doppio, il quindicesimo ad un blocco indiretto triplo. Così un file può avere una dimensione massima di (12+256+256²+256³)*dimensione blocco.
  
  