INFORMÀTICA

MATERIAL

Sistema de Fitxers en GNU/Linux

Manual servidor GNU/Linux
Manual DNS
Manual KDE
Manual NFS
Detecció Impressores de Xarxa
Clonatge de màquines
Comandes bàsiques
Comandes avançades
Sistema de Fitxers
Curs de CSS

FileSystem - El Sistema de Fixters- 

Bases teòriques

Quan estem usant 'Microsoft Windows' o 'Linux', hem d'haver formatat una partició abans de poder-hi guardar qualsevol informació en ella, és a dir, que aquesta acció de formatat ha proporcionat al disc la possibilitat d'albergar-hi informació estructurada.

Quan formatem estem escrivint una informació especial per a aquelles particions on vulguem guardar qualsevol tipus de dades. En Linux aquesta informació és anomenada filesystem.

El filesystem organitza l'espai disponible permetent la creació de directoris i l'assignació de noms als diferents arxius per tal de poder emmagatzemar tota la informació de manera ordenada i jerarquitzada.
Cada CD-ROM i disquet ha de tenir un filesystem. El filesystem del CD-ROM s'escriu quan aquest és creat; el filesystem d'un disquet es reescriu cada vegada que l'haguem de formatar.

El Microsoft W95/98 et permet formatar una partició amb dues possibilitats: FAT (16) o FAT32. Linux, en canvi, suporta un ampli ventall de tipus de filesystem. Així, per exemple, tenim el tipus ext2 que és usat per les particions natives de Linux (per tant el més important), el tipus msdos usat per les particions FAT (i disquets), el filesystem iso9660 que és usat pels CD-ROM. 

Linux també pot proveir del tipus de filesystem vfat que usen les particions FAT32 de Microsoft W9x. Linux també està preparat per suportar filesystems de Windows NT (NTFS) encara que el suport d'escriptura en aquest tipus de partició no és tant estable.

Tot i que és tema d'un altre capítol d'aquest mòdul, un exemple que clarifica els suports de Linux a aquest ventall de filesystem, és el de poder llegir fitxers de tipus MS-DOS d'un disquet muntant la unitat de floppy disk especificant-li simplement de quin tipus es tracta, és a dir, si el disquet ha estat formatat sota MS-DOS indicant al 'mount' el tipus ( -t msdos ) ja podrem llegir tots els fitxers que conté aquell disquet.

A continuació us mostrem els filesystem més comuns :
 

Filesystem Descripció
coherent Filesystem compatible amb l'usat per 'UNIX Coherent'
ext Antecessor del ext2. És suportat per compatibilitat
ext2 El filesystem estàndard de Linux
hpfs Filesystem compatible amb l'usat per l'OS/2 d'IBM
iso9660 Filesystem estàndard usat pels CD-ROM
minix Antic filesystem de Linux, usat encara ocasionalment en disquets
msdos Filesystem compatible amb filesystem FAT de Microsoft, usat per MS-DOS i Windows
nfs Filesystem compatible amb el File System Network de SUN
ntfs Filesystem compatible amb el que fa servir Microsoft Windows NT (NTFS)
sysv Filesystem compatible amb l'usat per AT&T en el seu UNIX System V
vfat Filesystem compatible amb el filesystem FAT32 de Microsoft usat per Windows9x
xenix Filesystem compatible amb l'usat per Xenix

Podem resumir que tota l'estructura de fitxers i directoris està sota filesystem i que aquest es pot definir com una estructura que inclou un directori arrel (/) i un conjunt de directoris i fitxers que resideixen sota ell.

Dins d'aquesta informació de filesystem hi trobem quatre parts fonamentals:

  • Bloc d'Arrencada: conté un petit programa que s'encarrega de cercar el Sistema Operatiu i carregar-lo en memòria
  • Super-Bloc: descriu l'estat del Filesystem aportant informació a nivell de
    • Nom del Filesystem
    • Grandària en blocs d'aquest
    • Quantitat de blocs per a I-Nodes
    • Llista de I-Nodes lliures
  • Taula de I-Nodes: serà la definició de tots i cadascun dels directoris i fitxers del File System. Hi ha un I-Node per a cada un dels fitxers i directoris, que en cas d'estar assignats tindran una descripció dels permisos, grandària...
  • Blocs de Dades: configura tots i cadascuna de les dades dels fitxers i directoris
El Super-Bloc i la Taula de I-Nodes estan permanentment en memòria, per tant si apaguem l'ordinador de manera incorrecte, la Taula de I-Nodes pot ser que no estigui gravada al disc dur i podríem perdre la informació d'aquesta.

Hi ha 'dimonis' que s'encarreguen de gravar la informació de la Taula en disc.

La comanda sync s'encarrega de fer la còpia al disc i shutdown (que és un script) la inclou en el procés d'apagada del sistema.
 
 

L'arbre de directoris

Els directoris d'un sistema Linux està organitzat jeràrquicament. A diferència de l'MS-DOS que ens dóna unes jerarquies separades per a cada partició, Linux estructura una única jerarquia que inclou cada una de les particions del sistema. Una altra diferència visible és que Linux al capdamunt trobem el directori arrel (del qual penja tot el sistema) expressat amb una barra ( / ) a diferència de la contrabarra ( \ ) que fa servir MS-DOS per designar el seu directori arrel.

Quan s'entra a treballar en Linux (login) ens situem automàticament en un directori que anomenem home directory. Existeix un per a cada usuari vàlid (donat d'alta) del sistema i és on crea els seus arxius personals separats dels arxius personals d'altres usuaris.

Un altre concepte a conèixer és el de directori de treball (current working directory- CWD) que és on es treballa correntment. Quan entres a treballar en Linux el teu 'home directory' coincideix amb el directori de treball. De totes maneres amb el comandament cd que veurem més endavant pots canviar a voluntat el teu directori de treball.

A continuació detallem l'esquema de l'arbre de directoris de Linux:

Per detallar una mica el que alberguen o poden albergar aquests directoris us en fem cinc cèntims perquè us situeu sota un punt de vista coherent a l'hora de treballar o buscar certa informació.

/ : directori arrel
bin : programes comuns binaris (executables)
dev : arxius de dispositiu
etc : arxius de configuració
home : directoris 'home' dels diferents usuaris
lib : llibreries compartides
lost+found : arxius danyats per diferents accions poden ser recuperats aquí
misc : arxius miscel·lanis
mnt : punt de muntatge de filesystems
proc : directoris i arxius que informen de l'estatus del sistema
root : 'directori home' de l'usuari root (administrador)
sbin : programes d'administració del sistema
tmp : arxius temporals
var : arxius de 'log', de cues i altres arxius dinàmics

I dins de usr :

X11 : enllaços
X11R6 : gràfic X
bin : programes comuns
doc : documentació
etc : arxius de configuració
games : jocs
include : arxius de C
info : documentació 'online'
lib : llibreries compartides
local : altres aplicacions
man : pàgines de manual
sbin : programes d'administració del sistema
share : informació compartida
src : codi origen

A trets generals és important conèixer la possibilitat de mobilitat dins de l'arbre de directoris amb el que anomenem camins absoluts i camins relatius.

Per incidir en aquest aspecte imaginem un reduït hipotètic arbre de fitxers com aquest:
 


Si us fixeu a l'esquema anterior existeixen dos directoris 'D70' com a subdirectoris de 'mcguri' i de 'jbort'. 

La definició del camí (pathname) es pot fer per dues vies:

  • per camí absolut: és la traça d'arribada a un directori concret partint del directori arrel (/). 
    En el nostre cas si volguéssim arribar per camí absolut al directori D70 de mcguri hauriem de partir del directori arrel indicant les entrades a directoris d'estadis inferiors separant per la barra (/). Per exemple: cd  /home/mcguri/D70
     
  • per camí relatiu: és eficaç quan un directori es troba molt allunyat del directori arrel per un llarg camí de subdirectoris. 
    En aquest cas el punt de partida serà el directori de treball en el qual ens trobem. Si en aquell moment ens trobéssim a /home i volguéssim anar al directori D70 de jbort només ens caldria fer cd jbort/D70 (fixeu-vos que no hem posat /jbort ja que aniria a buscar-lo sota l'arrel i com podeu veure en l'esquema anterior no penja directament d'allà). 

    En un altre aspecte si el que volem és passar d'un directori a un altre de nivells propers, hem de tenir clars dos noms 'especials' de directori:
     

    • El signe de punt ( . ) que com a nom és equivalent al directori de treball actual, i
    • Els dos punts ( .. ) que fan pujar un nivell a l'arbre de directoris a partir del qual estigui treballant en aquell moment


    És a dir, si el que volem és passar de jbort (directori actual de treball) al D70 d'mcguri ho podem fer de la següent manera: 

    cd ../mcguri/D70

    Del D70 de jbort al D70 de mcguri així:

    cd ../../mcguri/D70

Per acabar el capítol del Sistema de Fitxers us exposem alguns fitxers importants de Linux sense afegir-hi cap aplicació extra (com poden ser l'Squid o el Webmin que més endavant en els mòduls corresponents ja analitzarem en base als seus fitxers de configuració).
 
 
Arxius Descripció
/boot/module-info Informació dels mòduls per al kernel de Linux
/boot/System.map Mapa del kernel Linux
/boot/vmlinuz És el propi kernel de Linux
/etc/X11/XF86Config Arxiu de configuració de l'entorn gràfic ( X )
/etc/at.allow Usuaris permesos d'usar la comanda 'at'
/etc/at.deny Usuaris denegats per a usar la comanda 'at'
/etc/auto.misc Arxiu del mapa d'automuntatgte
/etc/bashrc Conté diverses funcions del shell 'bash'
/etc/conf.modules Opcions de càrrega de mòduls del kernel
/etc/fstab Filesystems muntats i disponibles per muntar
/etc/group Informació diversa dels grups
/etc/hosts Mapa de les IP amb els noms de màquina com a àlies 
/etc/hosts.allow Màquines que se les permet l'accés als serveis d'Internet
/etc/hosts.deny Màquines que se les prohibeix l'accés als serveis d'Internet 
/etc/httpd/access.conf Arxiu de configuració del servidor web en quant a accessos
/etc/httpd/httpd.conf Opcions de configuració del dimoni de web
/etc/httpd/srm.conf Organització i format de documents del servidor web
/etc/inetd.conf Configuració dels controls d'accés a Internet i serveis de comunicació com ftp, telnet, ssh, rlogin....
/etc/inittab Configurat pel dimoni init amb control d'execució de processos
/etc/issue Informació de la versió i distribució del kernel Linux
/etc/lilo.conf Arxiu de configuració del LInux LOader
/etc/mtab Filesystems muntats
/etc/passwd Informació diversa dels diferents usuaris
/etc/profile Entorn per defecte per als usuaris del shell BASH
/etc/rc.d Directori on es troben els arxius-scripts de sistema i d'arrencada i parada dels diferents processos
/etc/shadow Informació de seguretat dels diferents usuaris
/etc/smb.conf Configuració del dimoni de Samba (connectivitat entre màquines UNIX-Windows)
/etc/smbpasswd Informació sobre els usuaris de Samba
/etc/smbusers Mapejat dels usuaris de Samba
/var/log/cron Log de l'activitat del cron (planificador de tasques)
/var/log/httpd/access_log Log dels accessos del web-server
/var/log/httpd/error_log Llistat d'errors del web-server
/var/log/messages Log general del Sistema