[Kos-dev] Fork() ?

Thomas Petazzoni kos-dev@enix.org
Tue, 26 Jun 2001 12:03:27 +0200


salut,

desole pour le bombardement de messages ces derniers jours, mais je suis
tres motive par KOS en ce moment. evidemment a chaque fois que ca
m'arrive c'est en periode d'examens. Heureusement c'est bientot termine
!

J'ai essaye de reflechir a comment nous allions initialiser le systeme.
Pour l'instant nous creeons une kernel_team, qui contient tous les
threads noyau, et le mapping des differents objets en memoire virtuelle.

Plus tard, nous allons devoir commencer a avoir des threads fonctionnant
en mode utilisateur. Au debut, il n'y aura pas de problemes, nous les
ferons tourner dans l'espace virtuel de la kernel team, pour les tests,
mais il va bien falloir se decider un jour a avoir des espaces virtuels
differents pour chaque team.

Comment devons nous proceder pour l'initialisation au depart ? Creation
d'un processus init en mode utilisateur qui serait ensuite forke pour
creer les autres processus (ou plus exactement team) ?

Que va devoir faire notre fork ? Devra-t-on recopier integralement tous
les mappings memoire (je pense que oui), devrons nous recopier la liste
chainee des threads ? Toutes les teams auront dans leur espace virtuel
la zone noyau, mais contiendront-elles toutes les threads noyau ?
Je ne suis pas sur que ce soit une bonne idee car c'est plutot difficile
apres poru maintenir la conherence des donnees.

Devons nous des maintenant nous preoccuper de tout cela, ou devons nous
coder des fonctions type create_team, create_user_thread, etc... et
ensuite implementer par dessus un fork ?

Bref, je me pose de nombreuses questions (que je m'etais deja pose) mais
qui sont a l'ordre du jour me semble-t-il ...

amicalement,

thomas
-- 
PETAZZONI Thomas
thomas.petazzoni@meridon.com     UIN : 34937744
Projet KOS : http://kos.enix.org
Page Perso : http://www.enix.org/~thomas/