Tux la mascotte de LINUX


Le système de fichiers de LINUX

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 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.
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:
Les types de supports

Les noms des périphériques:
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: 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 liste 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.
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: 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:
Pour chaque fichier, les droits d'accès sont fixés pour trois catégories d'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.
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:

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.
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:
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: