choukette wrote:Bonjour,
je me posais une (en vrai deux) question(s), qui est/sont valable(s) (je pense) à la fois sous linux et sous tout autre système.
Comment le noyau fait-il pour découvrir les informations qu'il écrit dans /proc/meminfo par exemple?
Je ne vois qu'une solutions: ces infos sont écrites en dure dans le processeur. Celui-ci est interrogé par le noyau qui ensuite retranscrit édite les fichiers dans /proc. Est-ce comme cela que ça fonctionne?
Bon voila ma deuxième question: je pense (et j'ai peut être tort!) que chaque famille de processeur comporte un nombre différent de mémoires, de registres, d'additionneurs, de multiplieurs etc... Comment le système connait les ressources matérielles des processeurs? Comment sait-il qu'il a à disposition par exemple 10 registres 32bits (je dis n'importe quoi, c'est juste un ex).
Cette fois, je vois 3 solutions: premièrement, il n'en sait rien, et vu que Fedora est compilé pour une architecture, alors toutes les autres ne sont pas optimisées et doivent donc (pour reprendre mon ex) comporter au moins autant de registres ou multiplieurs.
Ma deuxième solution est que ces infos sont écrites en dur dans le processeur, qui est questionné par le noyau.
Enfin, la dernière solution serait que le noyau "test" le processeur pour extirper ces infos
Savez-vous comment cela fonctionne?
En m'excusant du dérangement et merci par avance!
:-D
Personne n'a oser tenter une réponse 😉
Je pense que l'on peut écrire un bouquin (ou un noyau) pour répondre complètement à tes questions 😉
Déjà, il y a beaucoup d'infos différentes dans /proc/meminfo et encore plus dans /proc ...
Cela dépend donc de chaque info.
Certaine sont probablement obtenues du BIOS, d'autres dépendent de la configuration matérielle détectée par différent moyens, d'autres sont calculées et mise à jour au fur et à mesure du temps, ou encore dépendante de la configuration du noyau.
Concernant la détection du processeur c'est plutôt via des instructions assembleur que le type de CPU et ses capacités sont détectées.
Tu peux jeter un œil ici pour voir comment détecter la CPU (connaissance de l'assembleur requises ...) :
http://www.intel-assembler.it/portale/5/cpu-identification/asm-source-to-find-intel-cpu.asp. Une fois la CPU détectée, le noyau doit aussi en connaître les possibilités et / ou les explorer.
Le mieux serait de lire le Tanenbaum (Systèmes d'exploitation), Le noyau Linux (Ed. O'Reilly) ou le code source du noyau ...