Boot des différents BSD

Le
Kevin Denis
Bonjour,

je me pose des questions sur la manière dont les BSD bootent en le
comparant avec linux.

Dans le temps, linux avait besoin d'un noyau auquel on indiquait la
partition racine, soit directement en dur dans le noyau, soit à l'aide
de paramètres passés via un bootloader.
Puis, l'initrd est arrivé proposant un microsystème permettant de
rendre la racine accessible. Puis l'initramfs qui remplace complètement
le mécanisme qui monte la racine et lance le binaire /sbin/init.

Ma question, savez vous si un des BSD propose ce genre de manipulation?
Comment bootent ils en gros? Et si ils n'implémentent pas cette
méthode de boot en deux temps noyau+initramfs, pourquoi?

Merci
--
Kevin
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 5
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Manuel Bouyer
Le #18056381
Kevin Denis
[le initrd de linux]
Ma question, savez vous si un des BSD propose ce genre de manipulation?



NetBSD a implemente quelque chose d'un peu similaire pour pouvoir utilser
un / crypte. Ca n'est utilise que pour ce cas particulier.

Comment bootent ils en gros?



Ca depend fortement de l'architecture. Sur NetBSD/x86, des informations sur le
disque de boot sont passees par le boot loader au kernel, afin qu'il
puisse les comparer avec les disques que ses drivers ont decouvert et
retrouver le disque de boot.


Et si ils n'implémentent pas cette
méthode de boot en deux temps noyau+initramfs, pourquoi?



Reponse rapide: parce qu'ils n'ont pas besoin de faire un truc aussi tordu.
Reponse longue: linux a implemente ce systeme de initrd pour pouvoir charger
les drivers necessaire au montage de / en module. les *BSD ont longtemps eu
les drivers disque et systeme de fichier compile en statique dans le kernel,
donc pas besoin de charger des modules pour pouvoir monter /.
Le systeme de modules de NetBSD a recemment ete revu, et maintenant pour x86
les drivers de systeme de fichiers (et a terme de controlleur de disque)
sont en module. Il a donc besoin d'un module pour pouvoir monter / mais
c'est le boot loader qui charge le module en meme temps que le kernel,
la non plus pas besoin de initrd. Solaris utilise la meme technique.

--
Manuel Bouyer NetBSD: 26 ans d'experience feront toujours la difference
--
JKB
Le #18056501
Le 05-12-2008, ? propos de
Re: Boot des différents BSD,
Manuel Bouyer ?crivait dans fr.comp.os.bsd :
Kevin Denis
[le initrd de linux]
Ma question, savez vous si un des BSD propose ce genre de manipulation?



NetBSD a implemente quelque chose d'un peu similaire pour pouvoir utilser
un / crypte. Ca n'est utilise que pour ce cas particulier.

Comment bootent ils en gros?



Ca depend fortement de l'architecture. Sur NetBSD/x86, des informations sur le
disque de boot sont passees par le boot loader au kernel, afin qu'il
puisse les comparer avec les disques que ses drivers ont decouvert et
retrouver le disque de boot.



Sur sparc aussi.

Et si ils n'implémentent pas cette
méthode de boot en deux temps noyau+initramfs, pourquoi?



Reponse rapide: parce qu'ils n'ont pas besoin de faire un truc aussi tordu.
Reponse longue: linux a implemente ce systeme de initrd pour pouvoir charger
les drivers necessaire au montage de / en module. les *BSD ont longtemps eu
les drivers disque et systeme de fichier compile en statique dans le kernel,
donc pas besoin de charger des modules pour pouvoir monter /.
Le systeme de modules de NetBSD a recemment ete revu, et maintenant pour x86
les drivers de systeme de fichiers (et a terme de controlleur de disque)
sont en module. Il a donc besoin d'un module pour pouvoir monter / mais
c'est le boot loader qui charge le module en meme temps que le kernel,
la non plus pas besoin de initrd. Solaris utilise la meme technique.



Je me suis _toujours_ demandé pourquoi ne pas mettre en statique
dans un noyau ce qu'il faut pour monter la racine. Pour le reste, c'est
compréhensible, mais pour la racine, je ne comprends pas. Si le pilote
fait un oops, de toute façon, c'est mort, on ne pourra pas le recharger.
Alors pourquoi donc vouloir à tout prix ne pas avoir ce qu'il faut en
statique ? Et la réponse n'est pas une taille maximale de noyau, parce
que si ce sont les seuls pilotes en dur dans le noyau, cela ne va pas
chercher loin...

Cordialement,

JKB

--
Le cerveau, c'est un véritable scandale écologique. Il représente 2% de notre
masse corporelle, mais disperse à lui seul 25% de l'énergie que nous
consommons tous les jours.
naddy
Le #18058011
Manuel Bouyer
Le systeme de modules de NetBSD a recemment ete revu, et maintenant pour x86
les drivers de systeme de fichiers (et a terme de controlleur de disque)
sont en module. Il a donc besoin d'un module pour pouvoir monter / mais
c'est le boot loader qui charge le module en meme temps que le kernel,
la non plus pas besoin de initrd. Solaris utilise la meme technique.



FreeBSD aussi.

Je ne crois pas qu'il soit possible de mettre UFS en module sur
FreeBSD, mais c'est bien possible avec des pilotes SCSI, ATA, etc.,
depuis une dizaine d'années.

--
Christian "naddy" Weisgerber
Patrick Lamaizière
Le #18057801
JKB:

Je me suis _toujours_ demandé pourquoi ne pas mettre en statique
dans un noyau ce qu'il faut pour monter la racine. Pour le reste, c'est
compréhensible, mais pour la racine, je ne comprends pas. Si le pilote
fait un oops, de toute façon, c'est mort, on ne pourra pas le recharger.



C'est quoi un oops ?
espie
Le #18057791
In article Patrick Lamaizière
JKB:

Je me suis _toujours_ demandé pourquoi ne pas mettre en statique
dans un noyau ce qu'il faut pour monter la racine. Pour le reste, c'est
compréhensible, mais pour la racine, je ne comprends pas. Si le pilote
fait un oops, de toute façon, c'est mort, on ne pourra pas le recharger.



C'est quoi un oops ?



Le cri du pingouin quand il se pisse dessus.

(une panique, si tu preferes).
espie
Le #18058001
In article Christian Weisgerber
Manuel Bouyer
Le systeme de modules de NetBSD a recemment ete revu, et maintenant pour x86
les drivers de systeme de fichiers (et a terme de controlleur de disque)
sont en module. Il a donc besoin d'un module pour pouvoir monter / mais
c'est le boot loader qui charge le module en meme temps que le kernel,
la non plus pas besoin de initrd. Solaris utilise la meme technique.



FreeBSD aussi.

Je ne crois pas qu'il soit possible de mettre UFS en module sur
FreeBSD, mais c'est bien possible avec des pilotes SCSI, ATA, etc.,
depuis une dizaine d'années.



Et OpenBSD non plus.

Autant pour certains trucs, je peux comprendre l'interet des modules, autant
la, j'avoue, surtout sur les machines recentes, je ne vois vraiment pas
l'interet pratique.
Kevin Denis
Le #18058101
Le 05-12-2008, JKB
Je me suis _toujours_ demandé pourquoi ne pas mettre en statique
dans un noyau ce qu'il faut pour monter la racine.



Trois cas concrets:
-racine chiffrée. Il faut bien demander le mot de passe à l'utilisateur.
-réseau à mot de passe. Genre un nfsroot over Wifi qui demande un mot
de passe.
-Une racine distante située sur un périphérique qui met du temps à
apparaître (typiquement une racine sur USB dont le bus met des plombes
à se réveiller). Soit tu mets un timer long comme la mort pour être sur
que la racine soit apparente, soit tu mets en oeuvre un système plus
malin.

Alors pourquoi donc vouloir à tout prix ne pas avoir ce qu'il faut en
statique ? Et la réponse n'est pas une taille maximale de noyau, parce
que si ce sont les seuls pilotes en dur dans le noyau, cela ne va pas
chercher loin...



Il y a 20 ans, effectivement, c'était simple. La racine était soit sur
un disque, soit en nfs. Aujourd'hui, c'est tout de même plus vaste que
ça. L'initramfs permet donc de répondre à ces nouvelles problématiques
de manière judicieuse.
--
Kevin
Kevin Denis
Le #18058091
Le 05-12-2008, Patrick Lamaizière
Je me suis _toujours_ demandé pourquoi ne pas mettre en statique
dans un noyau ce qu'il faut pour monter la racine. Pour le reste, c'est
compréhensible, mais pour la racine, je ne comprends pas. Si le pilote
fait un oops, de toute façon, c'est mort, on ne pourra pas le recharger.



C'est quoi un oops ?



Ce qui précède un kernel panix.
--
Kevin
Kevin Denis
Le #18058081
Le 05-12-2008, Manuel Bouyer
Et si ils n'implémentent pas cette
méthode de boot en deux temps noyau+initramfs, pourquoi?



Reponse rapide: parce qu'ils n'ont pas besoin de faire un truc aussi tordu.
Reponse longue: linux a implemente ce systeme de initrd pour pouvoir charger
les drivers necessaire au montage de / en module.



Mais pas que.

les *BSD ont longtemps eu
les drivers disque et systeme de fichier compile en statique dans le kernel,
donc pas besoin de charger des modules pour pouvoir monter /.
Le systeme de modules de NetBSD a recemment ete revu, et maintenant pour x86
les drivers de systeme de fichiers (et a terme de controlleur de disque)
sont en module. Il a donc besoin d'un module pour pouvoir monter / mais
c'est le boot loader qui charge le module en meme temps que le kernel,
la non plus pas besoin de initrd. Solaris utilise la meme technique.



Ok.
--
Kevin
JKB
Le #18060131
Le 05-12-2008, ? propos de
Re: Boot des différents BSD,
Kevin Denis ?crivait dans fr.comp.os.bsd :
Le 05-12-2008, Patrick Lamaizière
Je me suis _toujours_ demandé pourquoi ne pas mettre en statique
dans un noyau ce qu'il faut pour monter la racine. Pour le reste, c'est
compréhensible, mais pour la racine, je ne comprends pas. Si le pilote
fait un oops, de toute façon, c'est mort, on ne pourra pas le recharger.



C'est quoi un oops ?



Ce qui précède un kernel panix.



Non, pas forcément. Un Oops, c'est un plantage d'une partie non
cruciale du noyau (du style pilote foireux d'une carte son) qui
n'empêche pas d'arrêter correctementle système. Un panic, c'est un peu
plus violent.

JKB

--
Le cerveau, c'est un véritable scandale écologique. Il représente 2% de notre
masse corporelle, mais disperse à lui seul 25% de l'énergie que nous
consommons tous les jours.
Publicité
Poster une réponse
Anonyme