Comment une machine sait-elle ou se trouvent les adresses?

Comment une machine sait-elle ou se trouvent les adresses?

by Niels Marie Olivier Vadot -
Number of replies: 2

Bonjour, bonjour a tous,

J'ai une question en lien avec l'exercice 1.6 de la serie 12.

que le disque contient les informations suivantes (les adresses indiquées sont au format : « adresses de bloc.adresse de mot », avec des mots de 32 bits) :
...
42.0:    00000000000000000000000000011110
42.1:    00000000000000000000000000101011
...
42.1023: 11101011101010010010001001001110
43.0:    11001100110101010100001110001001
43.1:    00110100100110001001000111001011


Si j'ai bien compris, le contenu a l'adresse 42.0 represente le nombre d'adresses de blocs pour stocker le fichier, et les adresses 42.* suivantes indiquent les adresses successives des blocs constituant le fichier.

Donc si on veut lire le contenu du bloc #1, il faut aller lire a l'adresse 0b101011 = 43. On peut alors decoder le contenu du bloc a l'adresse 43 pour obtenir les premiers echantillons du fichier musical.

Mais une question se pose: comment la machine sait-elle dans un premier temps ou trouver l'adresse des blocs (cad l'adresse de l'adresse des blocs, ici l'adresse 42) ?
Je sais que le "fichier du dossier" contient cette information (adresses, metadonnees etc), mais de meme: comment concretement, quand on clique sur un dossier, la machine sait ou aller chercher les informations-memes sur les fichiers de ce dossier ? Car apres tout, ces metadonnees sont stockees quelque part sur le disque.

Et on peut alors poser la question pour tous les dossiers parents jusqu'au root.

Comment l'ordinateur sait-il ou est, sur le disque, la base du systeme de fichiers ? (sachant que ce n'est surement pas "hard-coded", vu qu'il est possible de deplacer une partition systeme (via un os bootable sur cle usb) sans ruiner le bootloader et devoir faire une reinstallation complete)

Merci beaucoup !

In reply to Niels Marie Olivier Vadot

Re: Comment une machine sait-elle ou se trouvent les adresses?

by Jean-Cédric Chappelier -

C'est une bonne question et la réponse très générale se trouve slide 19 / 52 : les « logiciels systèmes » sont chargés de traduire des noms locaux/temporaires en nom de plus grande portée. Après, concrètement, cela va dépendre du système d'exploitation (OS), du système de fichiers (FS), etc.

Par exemple la réponse ne sera pas la même pour un disque dur que pour un DVD, etc.

Sur un disque dur p.ex. le disque lui-même « sait » (il est constuit pour) où se trouvent ses données et comment y accéder ; la couche de partitionnement du disque va créer les méta données pour dire où sont les « début de chacun des disques (partition en fait) correspondant ».

Si une de ces partitions est de type Unix par exemple, le premier secteur contiendra les méta-informations du premier inode. Un inode est un bloc au sens du disque qui contient les informations d'un morceau de fichier. En Unix les répertoires ne sont que des fichiers particulier qui contiennent la liste des inodes des fichiers/sous-répertoires qu'ils contiennent (un peu répétitf cette phrase mais c'est bien ça). Le premier inode dont je parlais plus haut est justement l'inode de / (c.-à-d. de root).


Je ne sais pas si c'est assez clair, mais c'est assez précisément comment ça fonctionne en réalité sur un FS Unix.
On peut en reparle de vive voix si ce n'est pas clair.