Table des matières

Les fichiers sous Linux - Un premier survol

Guide pour les ex Windowsiens… et les autres

Introduction — Le montage

Sous Windows, vous le savez bien, les fichiers sont rangés derrière des lettres de lecteur. La partition C:\ correspond plus ou moins à la première partition principale du disque maître, E:\ pourra par exemple être votre lecteur CD et votre clé USB sera montée dans F:\ quand elle est présente. Tous ces disques sont accessibles depuis le poste de travail ou depuis un terminal de commande windows. (Hé oui, on peut utiliser la ligne de commande sous Windows, c'est même très pratique…)

Depuis NTFS5 et Windows 2000, il est possible de monter un disque pour qu'il soit accessible dans un dossier. C'est à dire que par exemple, la seconde partition ne sera pas accessible par D:\ mais elle sera à l'emplacement C:\MesFilms\.

C:\MesFilms\ ne sera donc pas vraiment un dossier de C:\ mais correspondra en fait aux fichiers présents sur une autre partition.

C'est ce principe là, en bien plus évolué, qui est à l'œuvre sous Linux (qui a dit que Windows avait 20 ans de retard ?)

Et maintenant, sous Linux...

Regardons de plus près comment fonctionne notre système préféré…

La racine

Sur / est montée la partition racine (root en anglais), c'est la base de votre système.

Elle correspond à peu près à C:\ sous Windows. Il s'agit des fondations du système de fichier, on ne peut remonter au dessus de /.

Les documents

L'amorçage

Si Linux est installé, ce gestionnaire de démarrage est très probablement « grub ». Grub est un système assez sophistiqué qui ne tient pas sur 512 ko, alors ces derniers contiennent en fait les informations nécessaires pour charger le reste du logiciel (qui peut être installé sur une partition ext3, fat32 ou autre).

Sous Linux, Grub est stocké dans /boot/grub/. Entre autre, il y a un fichier de configuration : /boot/grub/menu.lst qui contient la liste des systèmes amorçables et la manière de les amorcer. Ce fichier est en partie généré automatiquement et en partie édité par l'administrateur.

Si l'utilisateur décide de démarrer Linux, alors Grub va charger l'image du noyau spécifiée dans le menu.lst, par exemple /boot/vmlinuz-2.6.30-1-amd64 ainsi qu'une liste de modules contenant les drivers essentiels dont il aura besoin avant de savoir accéder au système de fichier dans sa totalité, par exemple : /boot/initrd.img-2.6.30-1-amd64. La suite, c'est le lancement du système avec le premier processus, INIT, qui lance tous les autres, jusqu'au serveur graphique et à votre jolie interface GNOME… ou pas. Mais bon, je digresse.

Les applications

La configuration

Les périphériques et les processus

Je vois que ça fume, je reprends doucement.

Ces fichiers ne sont pas présents sur le disque dur, ils n'existent en fait qu'en mémoire et pour une notion de « fichier » qu'il vous faudra bien revoir puisqu'elle n'a pas grand chose à voir avec celle sous Windows.

Sur /dev/ ou /proc/, c'est comme si le système avait monté une partition qui n'est pas présente sur un disque dur mais créée virtuellement en mémoire.

Il y a des dossiers, c'est un peu le bazar là dedans, je vous laisse explorer. Vous y trouverez tous les disques durs, toutes les partitions, la carte son, la souris usb, et j'en passe.

fgivors@salade:/dev$ pidof firefox-bin
4244

Alors je peux en savoir plus sur lui avec

fgivors@salade:/dev$ ls /proc/4244/
attr    clear_refs       cpuset   exe     io        maps       mounts      numa_maps  pagemap      sched      stack  status   wchan
auxv    cmdline          cwd      fd      limits    mem        mountstats  oom_adj    personality  sessionid  stat   syscall
cgroup  coredump_filter  environ  fdinfo  loginuid  mountinfo  net         oom_score  root         smaps      statm  task

C'est bien plus puissant que le gestionnaire des tâches de Windows :)

Je peux savoir où il vit, s'il a lancé des processus fils, comment il a été lancé, d'où, etc.

Les médias amovibles et les données externes

Par exemple, /mnt/music_melo/ pourrait contenir la bibliothèque musicale stockée sur l'ordi de mélodie si elle n'avait pas si mauvais goût :)

/media/cdrom0/ est destiné à recevoir les fichiers stockés sur le CD-Rom.

Vous allez me dire « hé là, attends, quid de /dev/cdrom ? /dev/cdrom est le périphérique CD-Rom.

En faisant ce qu'il faut avec ce fichier, on peut par exemple éjecter le CD-Rom :

eject /dev/cdrom

En lisant les données brut, on peut lire un CD audio…

mplayer cddb://

Mais s'il y a des fichiers dessus, ce ne sont pas les données brutes qui nous intéressent, mais les fichiers réellement présents, qui sont encodés différemment suivant le système de fichier utilisé (ext3 / fat32 / ntfs) On doit donc demander à accéder au système de fichier de ce périphérique. Sous Ubuntu, tout se fait tout seul, on insère et ça se «monte». En vrai, un petit lutin caché sous le capo tape mount /dev/cdrom /media/cdrom0. Idem pour les clés USB !

Les données variables

Les services

Les fichiers temporaires

Quid de la SWAP

Contrairement à Windows, la SWAP n'est pas présente dans un fichier pagefile.sys qui fragmente et ralentit tout l'ordinateur. Elle est stockée sur une partition à part créée lors de l'installation. Le contenu de cette partition n'est pas vraiment accessible dans le système de fichier.

On notera que cette partition d'échange sert la plupart du temps aussi de stockage lors de l'hibernation, jouant ainsi le rôle du fichier hibernate.sys de Windows.

Conclusion

Avec ça, vous devriez être à même de vous repérer dans une arborescence de fichiers. Bien sûr, il est nécessaire de pratiquer un peu pour prendre l'habitude de cette organisation.

Références

Filesystem Hierarchy Standard

Remerciements

smolski pour sa relecture et ses réflexions pertinentes et constructives !