Il s'agit d'une question de bas niveau, et je comprends que ce n'est peut-être pas le meilleur endroit à poser. Mais, il semblait plus approprié que tout autre site SE, alors voilà.
Je sais que sur le système de fichiers Linux, certains fichiers existent réellement , par exemple: /usr/bin/bash
est celui qui existe. Cependant, (pour autant que je le comprends), certains aussi n'existent pas réellement en tant que tels et sont plus virtuels des fichiers, par exemple: /dev/sda
, /proc/cpuinfo
, etc. Mes questions sont (ils sont deux, mais trop étroitement liés comme des questions distinctes):
- Comment le noyau Linux fonctionne-t-il pour savoir si ces fichiers sont réels (et donc les lire depuis le disque) ou non lorsqu'une commande de lecture (ou autre) est émise?
- Si le fichier n'est pas réel: à titre d'exemple, une lecture de
/dev/random
retournera des données aléatoires et une lecture de/dev/null
retourneraEOF
. Comment fonctionne-t-il quelles données lire à partir de ce fichier virtuel (et donc quoi faire quand / si des données écrites dans le fichier virtuel aussi) - existe-t-il une sorte de carte avec des pointeurs pour séparer les commandes de lecture / écriture appropriées pour chaque fichier, ou même pour le répertoire virtuel lui-même? Ainsi, une entrée pour/dev/null
pourrait simplement retourner unEOF
.