Linux supporte plusieurs types de systèmes de fichiers. Au moment où nous
rédigeons, les plus importants sont :
De plus, plusieurs systèmes de fichiers étrangers sont pris en charge afin
de faciliter l'échange de fichiers avec d'autres systèmes
d'exploitation. Les systèmes de fichiers étrangers fonctionnent exactement
comme les systèmes natifs, sauf qu'ils peuvent ne pas disposer de certaines
caractéristiques usuelles d'UNIX, ou avoir des limitations curieuses ou
autres bizarreries.
Le choix d'un système de fichiers dépend de la situation. La compatibilité
ou d'autres raisons impliquent parfois l'utilisation d'un des systèmes de
fichiers non natifs. Si l'on peut choisir librement, il est sûrement
préférable d'utiliser ext2 puisqu'il possède toutes les
caractéristiques souhaitables sans engendrer de perte de performances.
Il y a aussi le système de fichiers proc, généralement accessible
via le répertoire /proc, et qui n'est pas réellement un système de
fichiers même s'il se présente comme tel. Le système de fichiers
proc facilite l'accès à certaines structures de données du noyau,
comme la liste des processus (d'où son nom). Il fait ressembler ces
structures de données à un système de fichiers qui peut être manipulé avec
tous les outils habituels sur les fichiers. Par exemple, pour obtenir une
liste de tous les processus, on peut utiliser la commande :
(En vérité, il y aurait d'autres fichiers qui ne correspondent pas à des
processus. L'exemple ci-dessus a été raccourci.)
On notera que, bien qu'il soit appelé système de fichiers, aucune partie de proc ne correspond à un disque physique. Il est créé de toutes pièces par le noyau. À chaque fois que quelqu'un essaie de regarder une partie du système de fichiers proc, le noyau la montre comme si elle existait quelque part, alors que ce n'est pas le cas. En conséquence, même si il y a un fichier /proc/kcore de plusieurs méga-octets, il ne prend aucune place sur le disque.