dilluns, 15 de març del 2010

Característiques dels sistemes de fitxers

En els ordinadors, el sistema de fitxers és un mètode per emmagatzemar i organitzar fitxers i les dades que contenen per tal de facilitar-ne la localització i accés. Els sistemes de fitxers utilitzen dispositius d'emmagatzematge com els disc durs o CD-ROMs  i inclouen el manteniment del lloc físic dels fitxers.
La majoria de sistemes operatius tenen el seu propi sistema de fitxers.

Els més comuns utilitzen dispositius d'emmagatzemament de dades que permetin l'accés a les dades com una cadena de blocs d'una mateixa mida anomenats sectors, normalment de 512 bytes de longitud. El software del sistema de fitxers és responsable de l'organització d'aquests sectors en fitxers i directoris i manté un registre de quins sectors pertanyen als arxius i quins no s'estan utilitzant.

Tipus de sistemes de fitxers:

FAT12: és la versió inicial de FAT. va sorgir junt amb MS-DOS 2.0 i va ser creat com a sistema de fitxers per disquets, per això té aquestes limitacions:
  • No suporta anidació de carpeta.
  • Les direccions de bloc solament contenen 12 bits. Per tant complica la implementació.
  • La grandària del disc s'emmagatzema com un compte de 16 bits expressada en sectors. Per tant limita l'espai per treballar a 32 megabytes.
FAT16: És la segona versió de FAT. Era compatible amb MS-DOS 4.0 i Windows 95/98. Les millores respecte el FAT12 són:
  • No té el comptador de sectores de 16 bits i la grandària de la partició estava limitat per el compte de sectors per clúster, que era de 8 bits.
  • Utilitzava clústers de 32 Kbytes amb els comuns 512 bytes per sector. Així que el límit definitiu de FAT16 era de 2 gigabytes.
FAT32: És la última versió de FAT. Compatible amb MS-DOS 4.0 i Windows 95/98/2000/XP.
  • Supera el límit de grandària de FAT16 permeten en teoria emmagatzemar fins a uns 8 terabytes. Però degut a unes limitacions de la utilitat ScanDisk de Microsoft només es permetia formatar una partició amb un màxim de 124 gigabytes.
Cap tipus de FAT suporta el Journaling (registre de transaccions).
    NTFS: Està basat en el sistema de fitxers HPFS i és utilitzat per Windows NT/2000/XP/Server 2003/ Server 2008/Vista/7.

    • NTFS ha reemplaçat l'anterior sistema de fitxers FAT.
    • Té millor compatibilitat amb les metadades.
    • Optimitza més el rendiment, estabilitat i aprofitament de l'espai en disc.
    • Treballa amb Journaling.
    • El mínim d'espai recomanat per la partició és de 10 GB i el màxim 2 TB.
    • No és recomanable el seu ús en discs de menys de 400 MB lliures, ja que l'NTFS per si sol necessita força espai disponible.
    HPFS: va ser creat expressament per el sistema operatiu OS/2 amb l'objectiu de millorar les limitacions de l'antic sistema de fitxers FAT. Aquest sistema permetia:
    • Noms més llargs.
    • Metadades i informació de seguretat.
    • Autocomprovació i informació estructural.
    HFS: va ser creat per Apple pel seu ús en sistemes operatius MAC OS. L'HFS reemplaçava l'antic MFS d'Apple. A més de tenir les mateixes característiques que sistemes d'aquella època com FAT també n'oferia de millors com:
    • Els fitxers podien tenir bifurcacions múltiples (per exemple les icones d'un programa podien anar a part del codi d'aquest).
    • Els fitxers van ser referenciats per IDs úniques.
    • Va ser optimitzat per ser utilitzat en medis d'emmagatzematge petits i lents com disquets.
    HFS+: també anomenat estesa de MAC OS o HFS Plus. Avantatges respecte el seu antecessor HFS:
    • Suporta fitxers molt més grans (Blocs direccionables de 32 bits en comptes de 16)
    • Utilitza UTF-16 per el nom dels fitxers per permetre utilitzar noms de fitxer de fins a 255 caràcters de longitud.
    • Permet fitxers n-bifurcats semblants a NTFS, encara que gairebé cap software s'aprofita de bifurcacions amb excepció de la bifurcació de les dades i de la bifurcació del recurs.
    • L'HFS+ també utilitza taules d'assignació de 32 bits, en comptes dels 16 bits d'HFS.
    • Permet el treball amb Journaling.

    EXT2: és un sistema de fitxers dissenyat pel kernel de GNU/Linux.
    • El principal desavantatge és que no implementa el Journaling.
    • Té un tipus de taula FAT de grandària fixe on s'emmagatzemen els i-nodes (versió molt millorada de FAT).
    • Els blocs són d'una grandària especificable quan es crea el sistema de fitxers des de 4 KB fins a 512 KB. Assegurant d'aquesta manera un bon aprofitament de l'espai lliure pels fitxers petits.
    • Els fitxers no poden sobrepassar els 2 TB i les particions els 4 TB.

    EXT3: actualment és el sistema de fitxers més usat per les distribucions GNU/Linux.
    • La principal diferència amb el seu antecessor és que treballa amb Journaling.
    • Un sistema de fitxers EXT3 pot ser muntat com a sistema de fitxers EXT2.
    • Utilitza un arbre binari balancejat (AVL) i incorpora l'assignador de blocs de disc Orlov.
    EXT4: és la última millora que s'ha fet en els sistemes de fitxers estesos (EXT). Està preparada per treballar amb GNU/Linux i les principals característiques són:
    • Treballa amb Journaling.
    • Suport de volums de fins a 1024 PebiBytes.
    • Suport afegit d'EXT4.
    • Menor ús de la CPU
    • Millores en la velocitat de lectura/escriptura en disc.
    ReiserFS o Reiser3: és el primer sistema de fitxers amb Journaling que va sortir pel kernel de GNU/Linux. Característiques principals:
    • Reparticionament amb el sistema de fitxers muntat i desmontat.
    • Es pot augmentar la grandària del sistema de fitxers m'entres està muntat i desmuntat (online i offline). I es pot disminuir però només quan està desmuntat (offline).
    • Tail packing, un esquema per reduir la fragmentació interna.
    Reiser4: és la continuació del sistema de fitxers ReiserFS o Reiser3 més actual. Tot i que s'ha creat pel kernel de GNU/Linux no està disponible en gairebé cap distribució. Característiques principals:
    • Té un Journaling més eficient que en les versions anteriors gràcies a la tècnica "wandering log".
    • Disposa d'un suport de fitxers petits més eficient (menys espai en disc i més velocitat).
    • Administra els directoris amb un número elevat de fitxers més ràpidament.
    • Infraestructura de plugins més flexible (a través de tipus especials de metadades: xifratge, compresió, etc).
    • Suport transaccional.
    • Optimització dinàmica de l'estructura del disc gràcies a la tècnica "allocate-on-flush".
    • Transaccions atòmiques.
    • Integració de metadades a l'espai de noms del sistema de fitxers.

    Actualment, Reiser4 li falten algunes utilitats estàndards, com per exemple un repacker (semblant a un compactador de disc proporcionat en altres sistemes de fitxers).

    ZFS:és un sistema de fitxers amb Journaling creat pel sistema operatiu Sun Solaris. Les principals característiques són:
    • Capacitat de 128 bits (264 la capacitat d'un sistema de fitxers de 64 bits). Els límits del ZFS estan dissenyats per ser tan grans que no es troben mai a la pràctica.
    • Disposa d'auto-reparació (Self-Healing): Totes les dades són hasheades prèviament a la seva escriptura en el bloc lògic del pool.
    • Utilitza un model transaccional "copy-on-write".
    • Com que ZFS no sobreescriu les dades utilitza instantànies (Snapshots). Es a dir, no allibera els blocs utilitzats per versions antigues de les dades.
    • Dynamic striping: quan s'afegeix un dispositiu zpool l'ample de banda augmenta automàticament per millorar les velocitats de lectura/escriptura en disc.
    • Utilitza blocs de grandària variable fins a 128K.
    XFS: és un sistema de fitxers de 64bits amb Journaling d'alt rendiment creada per SGI (Sillicon Graphics Inc.) per implementar-la en sistemes operatius UNIX. Tot i que actualment s'ha alliberat sota una llicència de codi obert i és utilitzat per moltes distribucions de GNU/Linux. Característiques principals:
    • Suporta un sistema de fitxers de fins a 9 ExaBytes. Excepte en sistemes GNU/Linux que el límit es troba en 16 TeraBytes.
    • Els sistemes de fitxers XFS estan particionats internament en grups d'assignació. Cada grup gestiona els seus inodes i espai lliure independentment.