Le système de fichiers correspond au type de
formatage qui
va être appliqué à une partition, c'est ce qui permet
de retrouver un fichier sur un disque dur. Le système de fichiers
de Linux est tout entier organisé à l'intérieur d'une
seule
arborescence. Le système de fichiers peut faire référence
à un ou plusieurs disques durs locaux ou distants, lesquels peuvent
contenir une ou plusieurs partitions (aussi appelée un volume, une
unité ou un disque). Le système de fichiers de Linux est à
géométrie variables, il est
compatible avec la plupart
des systèmes de fichiers éxistant dans le monde (et entre
autre les systèmes FAT, FAT 32 ou NTFS de Windows de Microsoft),
il peut gérer la plupart des
support physiques, et il peut
s'agrandir à tout moment (l'administrateur du système peut
créer un nouveau
point de montage n'importe où dans
l'arborescence).
Le système de fichiers de Linux:
Le système de fichiers de Linux
Les types de systèmes
de fichiers
De nombreux types de système de fichiers sont reconnus
par LINUX:
- Les systèmes de fichiers Unix:
- MINIX pour Unix
- SYS V pour Unix Système V
- UFS pour Unis BSD
- UMSDOS pour Unix sur une partition MSDOS
- EXT pour l'ancien Linux native.
- EXT2FS ou EFS pour Linux native.
- EXT3FS pour Linux native 3° génération
avec la journalisation des fichiers.
- REISERFS
- Les systèmes de fichiers Microsoft:
- MSDOS ou FAT pour la FAT 16 de DOS et de
Windows 95.
- VFAT pour la FAT 32 de Windows 95/98
- NTFS pour Windows NT
- JOLIET pour le CDROM à nom long de Microsoft
- Les autres systèmes de fichiers:
- HPFS pour OS/2
- HFS pour MAC OS et APPLE MACINTOSH
- ISO 9660 pour les CDROM
- XIAFS
- Les systèmes de fichiers réseaux:
- CODA pour les réseaux Unix
- NFS pour Network File System des réseaux Linux
- SMB pour les réseaux Windows de Micorosoft
- NCP pour les réseaux Netware de Novell
Les types de systèmes de fichiers installés (montés)
sur un ordinateur sont enregistrés dans le fichier "
/etc/fstab
" (file system table). La commande "
fdisk" affiche certaines
informations sur les systèmes de fichiers montés. Sous Linux
et contrairement à Windows, tous les lecteurs sont regroupés
dans une
arborescence unique ("/").
La commande "
mkfs" (make file system) permet de créer
un système de fichier. La commande "mkfs" fait appèle à
d'autres programmes (mkfs.minix, mkfs.ext2, mk2fs.mkfs est un frontal)
pour créer un système de fichier.
Les
systèmes de fichiers spéciaux concernent les
informations dynamiques des processus en cours d'exécution (image
de la mémoire RAM) et l'état de certains périphériques.
- /proc (pour les processus)
- /dev/pts (pour les terminaux "speudo-tty")
Le système
de fichiers EXT2FS de Linux
Le système de fichier EXT2FS (extented N°2 File
System) utilise des tables de hash code pour retrouver rapidement des
i-nodes.
Les caractéristiques du système de fichiers EXT2FS:
- La taille maximale des partitions est de Giga Octets à 4
Tera Octets
- La taille maximale des fichiers est de 16 Giga Octets
- Un accès direct à 12 blocs logiques
- La conservation de la date de suppression pour récuperer
des fichiers
- L'identification de version pour les serveurs de fichiers distants
NFS
- La fragmentation de blocs logiques afin d'optimiser l'exploitation
de l'espace mémoire de stockage
- La synchronisation automatique des données systèmes
- La réservation de zones du système de fichiers pour
le super-utilisateur
- La longueur maximale des noms de fichier long jusqu'à 255
caractères (255 octets)
- L'utilisation de tables de "hash code" pour retrouver rapidement
des i-nodes
Les types de supports
Les noms des périphériques:
- IDE
- /dev/hdb8 correspond au 2° disque dur IDE et à
la 8° partition logique.
- SCSI et ZIP IDE
- /dev/sda1 correspond au premier disque dur SCSI et à
la première partition.
- FLOPPY
- /dev/fd0 correspond au premier lecteur de disquette (A:\).
Le nombre de blocs d'une disquette de 3 1/2 pouces high density est de
1440. La disquette doit être formattée avant de la monter.
- NULL
- /dev/null correspond à la poubelle, et les fichiers
qui y sont versés sont irrémédiablement perdus.
- CDROM
- /dev/cdrom. Il existe un lien symbolique entre le fichier
"/dev/cdrom" et le nom du périphérique "/dev/cdrom0".
Les
lecteurs de cartouches amovibles sont montés comme
des disques durs externes. Il faut d'abord partitionner le lecteur avec
"
fdisk ", puis créer une table de partition et installer
un système de fichier avec "
mk2fs", ensuite il faut créer
le point de montage avec "
mkdir" et monter les partitions avec "
mount", enfin ajouter une ligne dans le fichier "
/etc/fstab"
pour que le périphérique soit monté à chaque
démarrage.
La structure des
fichiers
Les informations sur la structure des fichiers:
- La taille des blocs physiques
- La taille des blocs logiques (unité d'allocation)
- Le nom du support physique ("/dev/hda1" pour le premier
disque dur IDE)
- Le commutateur décrivant l'état de la structure
- Le nom de la structure ("/" pour la racine root)
- Le nombre possible d'i-nodes
- Le nombre réel d'inodes
- Le pointeur vers le premier i-node libre
- Le pointeur vers le premier bloc de donnée libre
Quand le fichier est très gros, certaines adresses renvoient
à un autre bloc qui peut également contenir une autre
adresse de bloc. Ce principe s'appèle "
l'adressage indirect
", et celui-ci est valable pour trois niveaux, il y a donc un nombre plus
important d'adresses possibles (126x126x126).
Le numéro d'inode
Le numéro d'inode identifie un fichier, lequel peut
recevoir différents noms. Les inodes sont des
noeuds d'information
qui sont couplées avec le nom d'un fichier. La l
iste
des inodes ainsi que les informations de gestion des fichiers sont
placées dans les premiers blocs du support de données afin
d'accélérer l'accès aux fichiers.
- Le Bloc 0 est le bloc de démarrage (le bloc
de BOOT) qui contient les fichiers d'initialisation du système
d'exploitation.
- Le bloc 1 est le "superbloc" qui contient les informations
sur la structure des fichiers.
- Les blocs 2 à n contiennent la liste de "n-1" i-nodes.
- Les blocs de n+1 à z contiennent les données.
Les types de fichiers
Dans LINUX, tous les objets de l'arborescence sont considérés
comme étant un fichier.
Il existe différents types de fichiers:
- Les fichiers (-)
- Les répertoires (d)
- Les périphériques (Major device Number, Minor device
number)
- Les périphériques bloc (b). Les périphériques
blocs (comme les disques durs, les lecteurs de CDROM) gère une certaine
quantité d'octet à la fois, par groupe de bloc.
- Les périphériques caractère (c) .
Les périphériques caractères (comme la souris, le
clavier, le port série, le port parallèle) gère un
caractère transmis à la fois.
- Les canaux de communication FIFO des pipes (p)
- Les sockets (s)
- Les liens (l)
La plupart des types de fichiers ont été catalogués
et identifiés par un
numéro magique dans "
/usr/share/magic
".
Les droits d'accès
Les droits d'accès ou permissions permettent de restreindre
à certains utilisateurs ou à certains groupes d'utilisateurs
l'accès à certains fichiers ou à certains répertoires.
Il y a trois types de droits d'accès:
- read (r) pour l'accès en lecture au
fichier (permet l'impression, l'affichage et la copie d'un fichier,
et permet la traversée du répertoire ou l'affichage
des fichiers d'un répertoire)
- write (w) pour l'accès en écriture
au fichier (permet la modification d'un fichier, et permet l'effacement
d'un fichier ou l'enregistrement d'un fichier dans un répertoire)
- execute (x) pour la possibilité d'exécuter
le fichier (permet l'execution d'un programme, d'un executable, et
permet d'accéder aux informations de gestions des fichiers du
répertoire, comme l'inode, la table des droits,...).
Pour chaque fichier, les droits d'accès sont fixés
pour trois catégories d'utilisateurs:
- user (u) : le propriétaire du fichier
- group (g) : le groupe propriétaire du
fichier
- other (o) : les autres utilisateurs
- all (a) : tous les utilisateurs
Pour afficher les droits de tous les fichiers du répertoire
courant:
ls -la
Les droits d'accès peuvent également s'exprimer sous
leur
forme octale , c'est à dire à l'aide de
chiffre de 0 à 7 (il y a donc huit possibilités, lesquelles
peuvent être fixées avec seulement 3 bits). A chacun des
droits (r, w, x) correspond une valeur octale (4, 2, 1), les valeurs
octales sont cumulées pour chaque type d'utilisateur (u, g, o).
Pour chaque type d'utilisateur (u, g, o), la valeur en octale peut prendre
les valeurs 0, 1, 2, 3, 4, 5, 6 et 7. Par exemple, la combinaison de tous
les droits cumulés pour les trois types d'utilisateurs (rwx rwx
rwx) est équivalente à la valeur octale 777.
- 0 signifie aucun droit
- 1 correspond au droit executable (--x)
- 2 correspond au droit d'écriture (-w-)
- 3 correspond aux droits cumulés d'execution
et d'écriture (-wx)
- 4 correspond au droit de lecture (r--)
- 5 correspond aux droits cumulés de lecture
et d'execution (r-x)
- 6 correspond aux droits cumulés de lecture
et d'écriture (rw-)
- 7 correspond aux droits cumulés de lecture,
d'écriture et d'execution (rwx)
Par exemple:
666 donne le droit à tous en lecture et en écriture
777 donne tous les droits à tous
700 donne tous les droits au propriétaire de fichier
Le nombre d'octale peut être de quatre chiffres quand le
super utilisateur fixe les droits spéciaux ("s" et "t").
Les droits spéciaux SUID et SGID remplacent
le droit d'executer (x) pour un utilisateur ou un groupe, et permettent
à l'utilisateur ou au groupe de devenir le propriétaire
d'un fichier executable le temps de son execution. Ainsi, le fichier
"/usr/bin/passwd" est un fichier executable qui appartient à root,
mais le droit (s) permet à tous les utilisateurs de lancer ce programme
avec le droit root le temps de son execution, et ainsi de pouvoir changer
eux même leur propre mot de passe.
Le droit (t) ou '
sticky bit' remplace le droit d'execution
(x) d'un fichier executable, et force celui-ci a rester en mémoire
une fois qu'il a été chargé.
Seuls
le super-utilisateur (root) et le propriétaire
d'un fichier peuvent en changer les droits. Un utilisateur devient
propriétaire d'un fichier en le créant
ou en le copiant (s'il a les droits pour le faire). Les droits d'un fichier
peuvent être modifier avec la commande "
chmod".
Les
règles de nomage des fichiers
Les anciens unix étaient limités à
14 caractères, mais de nos jours les noms de fichier
long sont gérés de 1 à
255 caractères
.
La barre oblique ou "
slash" (/) est interdit puisque
c'est le délimiteur de répertoires dans l'arborescence,
et qu'elle représente la racine, c'est à dire le sommet
de l'arborescence. Les fichiers dont le nom commence par un point sont
des
fichier cachés ou masqués, ils n'apparaissent
pas par défaut avec la commande "ls" sans l'options "-a", et la plupart
des commandes n'en tiennent pas compte à moins d'y faire mention
explicitement.
Le
double point (..) identifie le répertoire
parent et le
point (.) identifie le répertoire courant ou répertoire
de travail. Ces deux fichiers éxistent dans tout les répertoires.
Il n'est donc pas possible de nommer un fichier avec un seul point ou
avec deux points puisque les pointeurs existent déjà (il n'est
pas possible d'avoir deux fichiers portant le même nom dans le même
répertoire, et il n'est pas possible de supprimer le pointeur vers
le répertoire courant, ni vers le répertoire parent).
Les caractères
spéciaux
L'espace, la tabulation et le passage à la ligne
sont appelés "
white space".
Le "
slash" est le symbole utilisé pour représenter
la racine ("root directory"); c'est aussi le délimiteur ou le séparateur
de répertoires. le "slash" est le seul caractère interdit
pour nommer un fichier.
Les jokers
Les jokers ("?", "*", "[]") sont aussi appelés
caractères
génériques parcequ'ils peuvent remplacer tout ou partie
d'un chemin, d'un répertoire ou d'un nom de fichier.
Pour remplacer n'importe quelle chaîne de caractère:
*
Pour inclure tous les noms commençant par une lettre majuscule
allant de A à X:
[A-X]*
Pour remplacer deux caractères:
??
Le
montage d'un système de fichier
Tous les supports de données (les disques durs locaux
ou réseaux, les lecteurs de disquette, de CDROM) doivent être
"montés" afin que les données qu'elles stockent soient
accessibles pour les utilisateurs d'un système Linux. Pour lire
les données d'un CDROM ou d'une disquette, il faut
monter
le périphérique correspondant. De même pour retirer
un CDROM ou une disquette de son lecteur, il faut au préalable
démonter le périphérique correspondant.
Tous les systèmes de fichiers montés font parties d'une
arborescence unique ("/"). Monter un périphérique
revient à rajouter dans l'arborescence une branche. Une fois le support
monté, les données de celui-ci sont accéssibles à
partir du point de montage choisi pour le support. Le
point de montage
("mount point") est le répertoire de la structure de fichier
(n'importe lequels des répertoires de l'arborescence) à
partir duquel sera monté le support.
Pour monter un système de fichier, il faut préciser:
- Le type de système de fichier (ext2, VFAT, iso9660,
nfs, ...)
- Le support physique (/dev/hda1, /dev/fd0, /dev/sdb1,
adresse réseau,...)
- Le point de montage
Les paramètres de montage d'un système de fichier
s'enregistrent dans les fichiers "
/etc/fstab" (file system table)
et "
/etc/mtab " (mount table).
Le montage d'un système de fichier est réalisé
par le super-utilisateur (root), mais l'option "
users" du fichier
"/etc/fstab" permet aux utilisateur de monter eux même un système
de fichier. L'option "
supermount" permet de monter automatiquement
un système de fichier dès qu'une demande lui est envoyée.
L'option "
defaults" est équivalent à la somme des
options "auto, rw, exec et nouser".
Par défaut, les systèmes de fichiers sont montés
en
mode asynchrone, c'est à dire que les données
sont mises en
tampon temporairement. Les données ne sont
pas écrites immédiatement sur le support, il y a toujours
une différence entre l'état du support et l'état
supposé par le système. C'est pourquoi, il ne faut jamais
éteindre brutalement un système LINUX, sous peine de perdre
les données qui sont encore dans le tampon mais pas encore sur le
support. Ainsi, sortir une disquette brutalement de son lecteur peut entrainer
la perte de données. Il est préférable de "démonter"
avec la commande "
umount" un lecteur de CDROM ou un lecteur de disquette
avant d'en sortir le CDROM ou la disquette. Une option permet de monter
un support en
mode synchrone.
Pour monter un volume Windows (vfat) sur la première
partition (hda1):
mkdir /mnt/windows
mount -t vfat /dev/hda1 /mnt/windows
Pour monter une disquette:
mkfs -t ext2 /dev/fd0 1440
mount /dev/fd0
cd /mnt/floppy
Le fichier de configuration
"/etc/fstab"
Des exemples sont donnés dans "man fstab" et dans "man mount".
/dev/hda1 /mnt/win vfat defaults 0 0
/dev/fd0 /mnt/floppy auto noauto,user 0 0
L
'arborescence de LINUX
L'arborescence de Linux ou cell de tout autres systèmes Unix commencent
toujours par la
racine ("root dirctory"). Les premiers répertoires
justes en dessous de la racine sont réparties par fonctionnalités.
Selon les distributions et/ou l'installation de LINUX, les fichiers de
l'arborescence ne sont pas les même et ne sont pas enregistrés
au même endroit.
Le
chemin absolu d'un fichier commence toujours par un slash
qui identifie la racine. Les
chemins relatifs font référence
au répertoire courant ou répertoire de travail.
- / (La racine, root)
- /bin (Les commandes)
- /boot (l'amorçage LILO)
- /dev (Les périphériques, "devices")
- /etc (La configuration)
- /home (Les répertoires de base des utilisateurs)
- /lib (Les bibliothèques de routines, le
module du kernel, "library")
- /var (Les journaux systèmes)
- /mnt (Les volumes montés)
- /root (le répertoire du super utilisateur)
- /sbin (Les fichiers systèmes binaires)
- /tmp (Le répertoire temporaire)
- /usr (les applications)
- /usr/doc (La documentation)
- /usr/man (le manuel de l'utilisateur)
Les fichiers spéciaux du répertoire "/proc"
Les fichiers spéciaux du répertoire "/proc" rassemblent
des
informations dynamiques sur les processus en cours d'activité
(répertoriés par un numéro) et des fichiers concernant
le système d'exploitation et certains matériels.
Pour examiner certains fichiers dynamiques:
more /proc/meminfo
more /proc/net/dev
more /proc/cpuinfo
more /proc/dma
more /proc/interrupts
Les URL
Les URL (Uniform Ressource Locator) représentent
la façon de localiser et d'écrire une
adresse Internet
. Ici aussi, l'adressage est organisé autour d'une racine afin d'assurer
l'unicité des adresses. Les premiers "répertoires" d'Internet
forment toujours la dernière "extension" d'un nom de
domaine
(on les appèle les Top Level Domain et ils sont administrer par une
organisation internationnale, l'ICANN) . L'accès à une adresse
Internet dépend aussi du type de
protocole utilisé.
Les types de domaines:
- En fonction de l'activité:
- ".com" pour les organisations commerciales
- ".org" pour les organisations non
commerciales
- ".edu" pour les organisations pédagogique
comme les universités
- ".gov" pour les organisations gouvernementales
- ".mil" pour les organisations militaires
- En fonction de la région géographique
ou du pays:
- ".fr" pour la France
- ".be" pour la belgique
- ".de" pour l'Allemagne
- ".us" pour les Etats Unis d'Amériques
- ".gb" pour la Grande Bretagne
- ".ir" pour l'Irlande
Le type d'adresse Internet dépend aussi du
type de
protocole utilisés pour y accéder. Le protocole
est indiqué par quelques initiales, suivies du signe de ponctuation
deux points et de deux slash qui permettent de séparer le nom du protocole
de l'adresse URL:
- http:// pour les WEB, les pages hypertextes
en HTML et les sites internet
- ftp:// pour le transfert de fichiers
- gopher:// pour le classement ou l'indexation
de fichiers
- file:// pour spécifier le chemin
local d'un fichier stocké sur sa propre machine
- news:// pour les groupes de news ou groupes
de discussion auquels les internautes peuvent s'abonner pour rester au courant
- mailto: pour envoyer un message par courrier
électronique