Tutto in Linux è considerato un file per mantenere la coerenza. Ciò include dispositivi hardware, stampanti, directory e processi. File regolari come musica, testo, video e altri file multimediali hanno anche dati aggiuntivi associati con loro chiamati metadati.
Cosa sono gli Inodi in Linux? Le voci di un nodo sono la base di File system Linux. Gestiscono i metadati su un file e sono pezzi essenziali del funzionamento interno di Linux.
Qual è la struttura di un file system?
Un file system è diviso in due parti: blocchi di dati e inode. Il numero di blocchi viene fissato una volta creato e non può essere modificato.
Il nome, il percorso, la posizione, i collegamenti e altri attributi di file non si trovano nella directory. Le directory sono semplicemente tabelle che contengono i nomi dei file con il numero di inode corrispondente.
È possibile creare un collegamento reale che genera più di un nome per lo stesso file. Quando crei un collegamento reale, crea anche un nuovo nome nella tabella con l'inode ma non sposta il file.
Se dovessi spostare un file di grandi dimensioni, impiegherebbe molto tempo. È più efficiente creare la voce del nome in una nuova directory ed eliminare la vecchia voce. Puoi anche rinominare i file allo stesso modo.
In_content_1 all: [300x250] / dfp: [640x360]->La parte superiore della gerarchia è il file system stesso. All'interno del file system sono presenti i nomi dei file. I nomi dei file si collegano agli inode. Gli inode si collegano ai dati fisici.
Cosa sono gli Inodi in Linux?
Un inode è una struttura di dati. Definisce un file o una directory sul file system ed è memorizzato nella voce della directory. Gli Inodi indicano i blocchi che compongono un file. L'inode contiene tutti i dati amministrativi necessari per leggere un file. Ogni metadati di ogni file è archiviato in inode in una struttura di tabella.
Quando si utilizza un programma che fa riferimento a un file per nome, il sistema cercherà nel file della voce di directory in cui esiste per richiamare l'inode corrispondente. Ciò fornisce al sistema i dati e le informazioni sui file necessari per eseguire processi o operazioni.
Gli Inodi si trovano di solito vicino ai inizio di una partizione. Memorizzano tutte le informazioni associate a un file tranne il nome del file e i dati effettivi. Tutti i file in qualsiasi directory Linux hanno un nome file e un numero di inode. Gli utenti possono recuperare i metadati per un file facendo riferimento al numero di inode.
I nomi dei file e i numeri di inode sono memorizzati in un indice separato e si collegano all'inode. È possibile collegarsi ai metadati che rappresentano il file. È possibile avere più nomi di file che si collegano a un dato o inode come puoi vedere nell'immagine qui sotto.
Che cos'è il numero di nodo?
Ogni inode nella struttura Linux ha un numero univoco identificato con esso. È anche chiamato il numero indice e ha i seguenti attributi:
Per controllare l'elenco dei numeri di inode, utilizzare il comando seguente:
ls -i
Lo screenshot seguente mostra una directory con numeri di inode visualizzati nella colonna più a sinistra.
Come funzionano gli Inodi?
Quando si crea un nuovo file, viene assegnato un nome file e un numero di inode. Entrambi sono memorizzati come voci in una directory. L'esecuzione del comando ls (ls -li) ti mostrerà un elenco dei nomi dei file e dei numeri di inode che sono memorizzati in una directory.
Usa il comando qui sotto per elencare le informazioni sugli inode per ogni file system.
df -hi
Quanti Inodi stai usando?
Un modo per esaurire lo spazio in un filesystem significa utilizzare tutti gli inode. Anche se hai abbastanza spazio libero sul disco, non sarai in grado di creare nuovi file.
L'uso di tutti gli inode può anche causare l'arresto improvviso del sistema. Per visualizzare un elenco di statistiche sull'utilizzo degli inode come usato, libero e percentuale utilizzata, digitare il comando seguente:
sudo df -ih
Modi aggiuntivi di utilizzo degli Inodi
Il modo in cui gli inode funzionano in Linux rende impossibile avere numeri di inode in conflitto. Non è possibile creare un collegamento reale tra diversi file system. Tuttavia, è possibile utilizzare collegamenti software tra diversi file system. Puoi eliminare i file originali e avere ancora i dati disponibili tramite un collegamento reale.
Eliminando un file, tutto ciò che hai fatto è rimuovere uno dei nomi che punta a un numero di inode specifico. I dati rimarranno finché non si eliminano tutti i nomi associati allo stesso numero di inode. I sistemi Linux si aggiornano senza richiedere il riavvio del sistema in gran parte a causa del modo in cui funzionano gli inode.
Un processo può usare un file di libreria allo stesso tempo un altro processo sostituisce lo stesso file con una versione aggiornata più recente e crea un nuovo inode. Il processo in esecuzione continua a utilizzare il vecchio file. La prossima volta che utilizzerai lo stesso processo, utilizzerà la nuova versione.
Gli utenti non interagiscono direttamente con gli inode, ma rappresentano un componente fondamentale delle strutture di file di Linux.