Niveau :
Résumé : syscall
Il paraît que sous unix tout est fichier. Vous allez voir que ce n'est pas tout à fait vrai.
La seule interface du noyau avec ses processus est la table des appels systèmes, dont voici la liste pour linux (et les prototypes en C). Vous y trouverez en gros 3 catégories : les appels liés aux fichiers, les appels liés aux processus, les appels liés au temps. Dans les fichiers on trouve entre autre le réseau, et dans les processus on trouve entre autre la gestion de la mémoire et des signaux. Donc sous unix tout est fichier ou processus ou temps (souvenez-vous du temps où on l'appelait time sharing system).
Malgré leur grand nombre, les appels système ne font finalement que peu de choses. Quelques opérations de base, et puis c'est tout. En fait la grande majorité du code de linux est appelé à travers des lectures/écritures sur des fichiers.
Le code du driver de votre disque dur est appelé lors de la lecture d'un répertoire. Le code de nombreux drivers est appelé lors de l'utilisation d'un fichier dans /dev, le code de configuration de linux est appelé lors de l'utilisation de /sys ... Ce qui est beau dans cette histoire c'est qu'on ne s'en rend pas compte, les méthodes utilisées sont toujours les mêmes (open, read, write ...)
Notez quand même que tout cela forme une API du noyau un peu plus vaste que les appels systèmes : les numéros de bloc dans /dev, les noms dans /sys, le format de fichier dans /proc, ne sont pas interchangeables. C'est une API au dessus de l'API fichier. C'est à cause ou plutôt grâce à elle qu'on dit que tout est fichier.
Mais retenez surtout ceci : tout est fichier ou processus ou temps.
Comments