Struttura del file system

il file system risiede in una partizione di memoria, abbiamo due approcci per gestire le partizioni del disco:

  • Master Boot Record (MBR)
  • GUID Partion Table

Perché usare le partizioni è importante? perché riusciamo ad avere una divisione logica del disco che ci permette anche la creazione del dual boot

MBR

All’interno del disco viene riservata una piccola locazione di memoria contiene 4 voci una per per partizione dove vengono specificate delle informazioni importante ai file system che girano all’interno delle partizioni

Questo metodo è un metodo storico che supporta il partizionamento di dischi che hanno una dimensione inferiore a 2TB

GPT

Usa una partizione speciale per andare a gestire l’avvio del sistema operativo e anche le altre partizioni

Implementazione dei file

Ci sono diversi modi per farlo:

  • Allocazione contigua: ha tanti difetti, gli stessi legati all’allocazione contigua di memoria centrale (Cosa succede se uno specifico blocco si espande e tocca il successivo? Se non c’è una locazione di memoria abbastanza grande? frammentazione esterna, frammentazione interna, ecc…)
  • Allocazione con liste collegate: approccio banale, ogni blocco è collegato al blocco successivo/precedente (La ricerca di un blocco dentro blocchi dedicati ad un singolo file memoria è troppo lento per un file system)
  • FAT
  • I-Node: una struttura dati associata al file, al suo interno vengono rappresentate delle informazioni (metadati). Questi I-node sono memorizzati in una struttura dati (una tabella in pratica). Mi permettono di allocare file in maniera non contigua. dentro l’iNode troviamo anche dei puntatori a delle locazione di memoria dove sono contenuti quei blocchi (tipicamente ogni i-node ha 10 voci che puntano a 10 blocchi) - quando 10 blocchi non bastano si applica una logica simile a quella della tabella delle pagine multilivello, al posto di puntare direttamente al blocco, vado a puntare ad un insieme di blocchi. Abbiamo tre tipi di approccio collegata, multi-livello e ibrida