Mécanisme d'accès du système de fichier au disques
3 réponses
at
Salut,
Il y a qq chose qui m'échappe dans le mécanisme de gestion des
périphériques sous Unix.
Le répertoire /dev, qui fait partie d'un système de fichier, contient
les fichiers spéciaux permettant au système d'accéder aux périphériques.
Mais comme le système de fichier accède-t-il au disque dur ?
En utilisant les fichiers spéciaux correspondants au disque dur et
présents dans ce même système de fichier ? ( mais à ce moment là, c'est
un peu le pb de le poule et l'oeuf !! ) En gros, quand le système de
fichier ordonne une écriture sur le disque, quel est le cheminement
exact de la requête et le rôle du noyau dans tout ça ?
Si vous connaissez des liens clairs à ce sujet ou si vous pouvez
m'expliquer clairement, je suis preneur.
Par avance merci.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Eric Lévénez
Le 14/02/05 22:19, dans <421115e8$0$14529$, « at » <"sargon(at)no-log.org.nospam"> a écrit :
Le répertoire /dev, qui fait partie d'un système de fichier, contient les fichiers spéciaux permettant au système d'accéder aux périphériques. Mais comme le système de fichier accède-t-il au disque dur ? En utilisant les fichiers spéciaux correspondants au disque dur et présents dans ce même système de fichier ? ( mais à ce moment là, c'est un peu le pb de le poule et l'oeuf !! ) En gros, quand le système de fichier ordonne une écriture sur le disque, quel est le cheminement exact de la requête et le rôle du noyau dans tout ça ?
Dans /dev se trouvent des fichiers spéciaux (caractère ou bloc). Ces fichiers sont virtuels et ne représentent pas de fichiers réels. Ces fichiers sont caractérisés pas un numéro majeur et un numéro mineur. Le numéro majeur indique le numéro du driver et le mineur donne un sous périphérique pour le driver.
Au boot, le noyau est chargé en RAM et commence à s'exécuter. Là il connaît la structure du système de fichiers /. Tout programme lancé après (comme init) sait lire/écrire sur le système de fichier. Tout accès d'un programme à un fichier spécial dans /dev renvoie cet accès au driver référencé. Ainsi en écrivant dans /dev/xyz (maj, minB) on envoie en fait des données au driver 12 en lui disant que c'est pour son périphérique 42.
Le fait qu'il existe des fichiers spéciaux pour les disques et les partitions n'est qu'une astuce pour gérer le partitionnement, les sauvegardes... Les accès "normaux" ne les utilisent pas car ils passent pas des accès fichier "normaux" (par opposition aux fichiers spéciaux).
Parfois /dev est lui-même un système de fichier spécial et les fichiers dans /dev n'ont même pas de présence physique dans le système de fichiers /.
Les fichiers spéciaux sont généralement dans /dev, mais on peut en avoir partout, seuls les numéros de mineur/majeur comptent car ce sont eux qui servent d'aiguillage et non pas le nom du fichier en lui-même.
-- Éric Lévénez -- <http://www.levenez.com/> Unix is not only an OS, it's a way of life.
Le 14/02/05 22:19, dans <421115e8$0$14529$626a14ce@news.free.fr>, « at »
<"sargon(at)no-log.org.nospam"> a écrit :
Le répertoire /dev, qui fait partie d'un système de fichier, contient
les fichiers spéciaux permettant au système d'accéder aux périphériques.
Mais comme le système de fichier accède-t-il au disque dur ?
En utilisant les fichiers spéciaux correspondants au disque dur et
présents dans ce même système de fichier ? ( mais à ce moment là, c'est
un peu le pb de le poule et l'oeuf !! ) En gros, quand le système de
fichier ordonne une écriture sur le disque, quel est le cheminement
exact de la requête et le rôle du noyau dans tout ça ?
Dans /dev se trouvent des fichiers spéciaux (caractère ou bloc). Ces
fichiers sont virtuels et ne représentent pas de fichiers réels. Ces
fichiers sont caractérisés pas un numéro majeur et un numéro mineur. Le
numéro majeur indique le numéro du driver et le mineur donne un sous
périphérique pour le driver.
Au boot, le noyau est chargé en RAM et commence à s'exécuter. Là il connaît
la structure du système de fichiers /. Tout programme lancé après (comme
init) sait lire/écrire sur le système de fichier. Tout accès d'un programme
à un fichier spécial dans /dev renvoie cet accès au driver référencé. Ainsi
en écrivant dans /dev/xyz (maj, minB) on envoie en fait des données au
driver 12 en lui disant que c'est pour son périphérique 42.
Le fait qu'il existe des fichiers spéciaux pour les disques et les
partitions n'est qu'une astuce pour gérer le partitionnement, les
sauvegardes... Les accès "normaux" ne les utilisent pas car ils passent pas
des accès fichier "normaux" (par opposition aux fichiers spéciaux).
Parfois /dev est lui-même un système de fichier spécial et les fichiers dans
/dev n'ont même pas de présence physique dans le système de fichiers /.
Les fichiers spéciaux sont généralement dans /dev, mais on peut en avoir
partout, seuls les numéros de mineur/majeur comptent car ce sont eux qui
servent d'aiguillage et non pas le nom du fichier en lui-même.
--
Éric Lévénez -- <http://www.levenez.com/>
Unix is not only an OS, it's a way of life.
Le 14/02/05 22:19, dans <421115e8$0$14529$, « at » <"sargon(at)no-log.org.nospam"> a écrit :
Le répertoire /dev, qui fait partie d'un système de fichier, contient les fichiers spéciaux permettant au système d'accéder aux périphériques. Mais comme le système de fichier accède-t-il au disque dur ? En utilisant les fichiers spéciaux correspondants au disque dur et présents dans ce même système de fichier ? ( mais à ce moment là, c'est un peu le pb de le poule et l'oeuf !! ) En gros, quand le système de fichier ordonne une écriture sur le disque, quel est le cheminement exact de la requête et le rôle du noyau dans tout ça ?
Dans /dev se trouvent des fichiers spéciaux (caractère ou bloc). Ces fichiers sont virtuels et ne représentent pas de fichiers réels. Ces fichiers sont caractérisés pas un numéro majeur et un numéro mineur. Le numéro majeur indique le numéro du driver et le mineur donne un sous périphérique pour le driver.
Au boot, le noyau est chargé en RAM et commence à s'exécuter. Là il connaît la structure du système de fichiers /. Tout programme lancé après (comme init) sait lire/écrire sur le système de fichier. Tout accès d'un programme à un fichier spécial dans /dev renvoie cet accès au driver référencé. Ainsi en écrivant dans /dev/xyz (maj, minB) on envoie en fait des données au driver 12 en lui disant que c'est pour son périphérique 42.
Le fait qu'il existe des fichiers spéciaux pour les disques et les partitions n'est qu'une astuce pour gérer le partitionnement, les sauvegardes... Les accès "normaux" ne les utilisent pas car ils passent pas des accès fichier "normaux" (par opposition aux fichiers spéciaux).
Parfois /dev est lui-même un système de fichier spécial et les fichiers dans /dev n'ont même pas de présence physique dans le système de fichiers /.
Les fichiers spéciaux sont généralement dans /dev, mais on peut en avoir partout, seuls les numéros de mineur/majeur comptent car ce sont eux qui servent d'aiguillage et non pas le nom du fichier en lui-même.
-- Éric Lévénez -- <http://www.levenez.com/> Unix is not only an OS, it's a way of life.
Jérôme
Ok, merci pour ces explications claires. Le sujet de l'accès du système de fichier aux disques n'est pas abordé dans les ouvrages d'administration Unix que j'ai consultés. Seul l'accès aux périphériques est évoqué. Existe-t-il des liens ou des ouvrages traitant plus en détails les méthodes et mécanismes d'accès du système de fichier aux disques ?
Dans /dev se trouvent des fichiers spéciaux (caractère ou bloc). Ces fichiers sont virtuels et ne représentent pas de fichiers réels. Ces fichiers sont caractérisés pas un numéro majeur et un numéro mineur. Le numéro majeur indique le numéro du driver et le mineur donne un sous périphérique pour le driver.
Au boot, le noyau est chargé en RAM et commence à s'exécuter. Là il connaît la structure du système de fichiers /. Tout programme lancé après (comme init) sait lire/écrire sur le système de fichier. Tout accès d'un programme à un fichier spécial dans /dev renvoie cet accès au driver référencé. Ainsi en écrivant dans /dev/xyz (maj, minB) on envoie en fait des données au driver 12 en lui disant que c'est pour son périphérique 42.
Le fait qu'il existe des fichiers spéciaux pour les disques et les partitions n'est qu'une astuce pour gérer le partitionnement, les sauvegardes... Les accès "normaux" ne les utilisent pas car ils passent pas des accès fichier "normaux" (par opposition aux fichiers spéciaux).
Parfois /dev est lui-même un système de fichier spécial et les fichiers dans /dev n'ont même pas de présence physique dans le système de fichiers /.
Les fichiers spéciaux sont généralement dans /dev, mais on peut en avoir partout, seuls les numéros de mineur/majeur comptent car ce sont eux qui servent d'aiguillage et non pas le nom du fichier en lui-même.
Ok, merci pour ces explications claires. Le sujet de l'accès du système
de fichier aux disques n'est pas abordé dans les ouvrages
d'administration Unix que j'ai consultés. Seul l'accès aux périphériques
est évoqué. Existe-t-il des liens ou des ouvrages traitant plus en
détails les méthodes et mécanismes d'accès du système de fichier aux
disques ?
Dans /dev se trouvent des fichiers spéciaux (caractère ou bloc). Ces
fichiers sont virtuels et ne représentent pas de fichiers réels. Ces
fichiers sont caractérisés pas un numéro majeur et un numéro mineur. Le
numéro majeur indique le numéro du driver et le mineur donne un sous
périphérique pour le driver.
Au boot, le noyau est chargé en RAM et commence à s'exécuter. Là il connaît
la structure du système de fichiers /. Tout programme lancé après (comme
init) sait lire/écrire sur le système de fichier. Tout accès d'un programme
à un fichier spécial dans /dev renvoie cet accès au driver référencé. Ainsi
en écrivant dans /dev/xyz (maj, minB) on envoie en fait des données au
driver 12 en lui disant que c'est pour son périphérique 42.
Le fait qu'il existe des fichiers spéciaux pour les disques et les
partitions n'est qu'une astuce pour gérer le partitionnement, les
sauvegardes... Les accès "normaux" ne les utilisent pas car ils passent pas
des accès fichier "normaux" (par opposition aux fichiers spéciaux).
Parfois /dev est lui-même un système de fichier spécial et les fichiers dans
/dev n'ont même pas de présence physique dans le système de fichiers /.
Les fichiers spéciaux sont généralement dans /dev, mais on peut en avoir
partout, seuls les numéros de mineur/majeur comptent car ce sont eux qui
servent d'aiguillage et non pas le nom du fichier en lui-même.
Ok, merci pour ces explications claires. Le sujet de l'accès du système de fichier aux disques n'est pas abordé dans les ouvrages d'administration Unix que j'ai consultés. Seul l'accès aux périphériques est évoqué. Existe-t-il des liens ou des ouvrages traitant plus en détails les méthodes et mécanismes d'accès du système de fichier aux disques ?
Dans /dev se trouvent des fichiers spéciaux (caractère ou bloc). Ces fichiers sont virtuels et ne représentent pas de fichiers réels. Ces fichiers sont caractérisés pas un numéro majeur et un numéro mineur. Le numéro majeur indique le numéro du driver et le mineur donne un sous périphérique pour le driver.
Au boot, le noyau est chargé en RAM et commence à s'exécuter. Là il connaît la structure du système de fichiers /. Tout programme lancé après (comme init) sait lire/écrire sur le système de fichier. Tout accès d'un programme à un fichier spécial dans /dev renvoie cet accès au driver référencé. Ainsi en écrivant dans /dev/xyz (maj, minB) on envoie en fait des données au driver 12 en lui disant que c'est pour son périphérique 42.
Le fait qu'il existe des fichiers spéciaux pour les disques et les partitions n'est qu'une astuce pour gérer le partitionnement, les sauvegardes... Les accès "normaux" ne les utilisent pas car ils passent pas des accès fichier "normaux" (par opposition aux fichiers spéciaux).
Parfois /dev est lui-même un système de fichier spécial et les fichiers dans /dev n'ont même pas de présence physique dans le système de fichiers /.
Les fichiers spéciaux sont généralement dans /dev, mais on peut en avoir partout, seuls les numéros de mineur/majeur comptent car ce sont eux qui servent d'aiguillage et non pas le nom du fichier en lui-même.
Eric Lévénez
Le 15/02/05 15:08, dans <42120272$0$21718$, « Jérôme » a écrit :
Existe-t-il des liens ou des ouvrages traitant plus en détails les méthodes et mécanismes d'accès du système de fichier aux disques ?
Tout livre sur les internes du système parlent de cela. Par exemple pour Unix : "Conception du système Unix" de M.J. Bach (aka LE bach). Pour Unix System V release 4 : "The magic garden explained" de Goodheart & Cox. Pour le monde BSD il y a "Conception et implémentation du système 4.4BSD" chez Addison Wesley.
-- Éric Lévénez -- <http://www.levenez.com/> Unix is not only an OS, it's a way of life.
Le 15/02/05 15:08, dans <42120272$0$21718$636a15ce@news.free.fr>, « Jérôme »
<sargon@no-log.org.nospam> a écrit :
Existe-t-il des liens ou des ouvrages traitant plus en
détails les méthodes et mécanismes d'accès du système de fichier aux
disques ?
Tout livre sur les internes du système parlent de cela. Par exemple pour
Unix : "Conception du système Unix" de M.J. Bach (aka LE bach). Pour Unix
System V release 4 : "The magic garden explained" de Goodheart & Cox. Pour
le monde BSD il y a "Conception et implémentation du système 4.4BSD" chez
Addison Wesley.
--
Éric Lévénez -- <http://www.levenez.com/>
Unix is not only an OS, it's a way of life.
Le 15/02/05 15:08, dans <42120272$0$21718$, « Jérôme » a écrit :
Existe-t-il des liens ou des ouvrages traitant plus en détails les méthodes et mécanismes d'accès du système de fichier aux disques ?
Tout livre sur les internes du système parlent de cela. Par exemple pour Unix : "Conception du système Unix" de M.J. Bach (aka LE bach). Pour Unix System V release 4 : "The magic garden explained" de Goodheart & Cox. Pour le monde BSD il y a "Conception et implémentation du système 4.4BSD" chez Addison Wesley.
-- Éric Lévénez -- <http://www.levenez.com/> Unix is not only an OS, it's a way of life.