PDA

Voir la version complète : a propos des services chrootés et des SO (le tt sous linux)



marin_shadok
27/06/2004, 23h47
je me monte un serveur en ce moment avec un copaing et je me posais la question suivante :

si je met chaque service dans un chroot distinct, et que je lie dynamiquement, je devrais avoir un exemplaire des SO dans chaque chroot, meme si plusieurs services partagent un meme SO. mais une fois que ca passe en ram, est ce que le meme SO sera chargé en ram autant de fois qu'il y a de services qui l'exploitent ou est ce qu'il ne sera chargé qu'une fois ?

car si il est chargé plus d'une fois, autant compiler statiquement, je me fais pas chier avec les dependance et le service est plus rapide. mais si il est effectivement chargé qu'une fois meme exploité par plusieurs chroot differents, alors sauvegardons de la RAM

Peewee
28/06/2004, 21h22
je me monte un serveur en ce moment avec un copaing et je me posais la question suivante :

si je met chaque service dans un chroot distinct, et que je lie dynamiquement, je devrais avoir un exemplaire des SO dans chaque chroot, meme si plusieurs services partagent un meme SO. mais une fois que ca passe en ram, est ce que le meme SO sera chargé en ram autant de fois qu'il y a de services qui l'exploitent ou est ce qu'il ne sera chargé qu'une fois ?


Elles seront chargées différement pour chaque chroot. L'édition de lien dynamique n'a pas de mécanique de reconnaissance de segment de text (le code executable) autre que basé sur le chemin de la librairie chargée.
Il y aura 1 chargement par chroot différent.
(si vous voulez jouer, mettez n fois la libc dans des répertoires différents, modifiez le ld.conf en conséquence et faîtes un ldconfig -v pour vous rentre compte de chaque chargement d'une même librairie)



car si il est chargé plus d'une fois, autant compiler statiquement, je me fais pas chier avec les dependance et le service est plus rapide. mais si il est effectivement chargé qu'une fois meme exploité par plusieurs chroot differents, alors sauvegardons de la RAM

Suivant le type de service, l'édition de lien statique est imbattable, en particulier les programmes qui forkent beaucoup de fois par seconde. Il n'y a pas d'édition de lien dynamique dans le cas de programmes threadés, dû à la ré-entrance du code, à condition que la librairie ait bien été programmée pour être utilisable dans le cas d'une ré-entrance par thread. (Exemple type la librairie de résolution de BIND existe en version threadée spécifique avec libresolv_r)

A noter qu'une fois l'édition de liens faîte, seuls les segments contenant du code actif seront conservés en mémoire le reste dégage si l'OS est bien fouttu.

Les BSDistes profiteront allègrement du service "jail".

marin_shadok
29/06/2004, 00h12
ah, enfin une réponse satisfaisante !! merci Peewee! :wink:

fennec
29/06/2004, 08h44
il faut absolument mettre ce thread dans la FAQ :lol:

Peewee :jap:

The_ED
03/08/2004, 18h46
il faut absolument mettre ce thread dans la FAQ :lol:


Quand j'aurais le temps de "FAQer" cette categorie! :lol: