Anàlisi d'ext2

De Jose Castillo Aliaga
Ir a la navegación Ir a la búsqueda

Ext2 és un dels sistemes d'arxius més utilitzats en Linux. Ha sigut extés per Ext3 i Ext4, però són ampliacions que milloren algunes coses sobre la base de Etx2. Per tant, resulta interesant parlar d'aquest sistema per a entendre millor cóm funciona el sistema de fitxers en Linux.

I-nodes

L'i-node (node índex) és un concepte fonamental en el sistema d'arxius de Linux i UNIX. Cada objecte en el sistema de fitxers està representat per un node-i.

Totes i tots els arxius sota Linux (i UNIX) té els següents atributs:

  • Tipus de fitxers (executables, especial, de blocs...)
  • Permisos (llegir, escriure...)
  • Propietari
  • Grup
  • Mida del fitxer
  • Temps d'accés de l'arxiu, el canvi i la modificació (UNIX o Linux mai emmagatzema el temps de creació de l'arxiu, això és pregunta favorita preguntar en UNIX/Linux en una entrevista de treball)
  • Temps d'eliminació del Arxiu
  • Nombre d'enllaços (soft / hard)
  • Atribut estès com només-afegir o no es pot eliminar el fitxer com a usuari root (irrevocabilitat)
  • Llista de control d'Accés (ACL)

Cal recordar que un i-node:

  • No conté el nom del fitxer. El nom el guarda el directori que el conté.
  • Els directoris són uns fitxers especials que contenen una llista de noms de fitxers i els seus inodes.

Podem fer les següents comande per vorer el i-node de l'arxiu:

$ ls -i /etc/passwd
$ stat /etc/passwd

Amb aquestes premises, es pot aconseguir:

  • Un fitxer pot tindre molts enllaços. Sols cal apuntar al mateix inode. (Hard Links)
  • Un nom de fitxer pot tindre enllaços que l'apunten. (Soft Links)
  • Un inode pot no tindre enllaços. Al esborrar un arxiu s'intenten alliberar els recursos. Però el sistema espera a que tots els processos lliberen l'inode.
  • Un inode permaneix encara que moguem el fitxer a un altre directori o es defragmente el disc.

Estructura d'un inode

Ext2-inode.gif

Els inodes tenen 15 punters:

  • Dotze punters que assenyalen directament als blocs de dades de l'arxiu (punters directes)
  • Un indicador indirecte per separat (un punter que apunta a un bloc de punters que apunten a continuació als blocs de dades de l'arxiu)
  • Un punter doblement indirectes (un punter que apunta a un bloc de punters que apunten a altres blocs de punters que apunten a continuació als blocs de dades de l'arxiu)
  • Un punter triplement indirecte (un punter que apunta a un bloc de punters que apunten a altres blocs de punters que apunten a altres blocs de punters que apunten a continuació als blocs de dades de l'arxiu)

Aquesta organització permet:

  • Una mida fixa de cada bloc. Pot ser es necessita sols un inode o més, però tots ocupen en mateix.
  • Facilitat per trobar les dades. No cal recorrer tot el fitxer, es pto trobar el bloc concret mirant el inode.
  • Els blocs indirectes poden estar en qualsevol part del sistema.

Etx2

El sistema de fitxers EXT2 es construeix amb la premissa que les dades contingudes en els fitxers es guardin en Blocs de Dades. Aquests blocs de dades són tots de la mateixa longitud i, si bé aquesta longitud pot variar entre diferents sistemes de fitxers EXT2 la mida dels blocs d'un sistema de fitxers EXT2 en particular es decideix quan es crea (usant mke2fs). La mida de cada fitxer s'arrodoneix fins a un nombre sencer de blocs. Si la mida de bloc és 1024 bytes, llavors un fitxer de 1025 bytes ocuparà dos blocs de 1024 bytes.

No tots els blocs del sistema de fitxers contenen dades, alguns s'han d'utilitzar per mantenir la informació que descriu l'estructura del sistema de fitxers. EXT2 defineix la topologia del sistema de fitxers descrivint cadascun d'ells amb una estructura de dades inode. Els inodes del sistema de fitxers s'emmagatzemen junts en Taules de inodes.

Els directoris EXT2 són simplement fitxers especials (ells mateixos descrits per inodes) que contenen punters als inodes de les seves entrades de directori.

Sist arch ext2.jpg

A la figura anterior es mostra la disposició del sistema de fitxers EXT2 ocupant una sèrie de blocs en un dispositiu estructurat bloc. Per la part que li toca a cada sistema de fitxers, els dispositius de bloc són només una sèrie de blocs que es poden llegir i escriure. Un sistema de fitxers no s'ha de preocupar on s'ha de posar un bloc en el medi físic, això és feina del controlador del dispositiu. Sempre que un sistema de fitxers necessita llegir informació o dades del dispositiu de bloc que els conté, demana que el controlador de dispositiu llegeixi un nombre sencer de blocs.

El sistema de fitxers EXT2 divideix les particions lògiques que ocupa en Grups de Bloc (Block Groups), en els quals cada grup duplica informació crítica per a la integritat del sistema de fitxers ja sigui valent-se de fitxers i directoris de blocs d'informació i dades. Aquesta duplicació és necessària per si ocorregués un desastre i el sistema de fitxers necessités recuperar-se.

Enllaços

http://en.wikipedia.org/wiki/Inode http://acacha.org/mediawiki/index.php/Sistemes_de_fitxers#Sistemes_de_fitxers_Unix