TacOS-team / tacos

Système d'exploitation / Operating System
GNU General Public License v3.0
9 stars 4 forks source link

pipefs #147

Open MaximeCheramy opened 12 years ago

MaximeCheramy commented 12 years ago

Le rôle d'un pipefs est de créer un FS très simple pour fournir des pipes. En gros un appel à la fonction pipe va demander au pipefs de lui créer des inodes avec le read et write qui va bien.

Dépend de #133.

NicolasFloquet commented 12 years ago

Qu'est-ce qu'un pipe fait de plus qu'un device qu'on instancierais plusieurs fois?

MaximeCheramy commented 12 years ago

Un pipe non nommé comme son nom l'indique n'aurait pas de nom dans le FS, on lui demande juste un inode et puis voilà. Le mécanisme d'instanciation de device se fait une fois au début (ou lorsqu'un device physique est connecté mais c'est pas géré dans TacOS), c'est pas fait pour en créer et en supprimer trop souvent. C'est lourd, il y a plein de structures à instancier.

MaximeCheramy commented 11 years ago

Bon, l'utilisation classique d'un pipe non nommé c'est :

Cela est possible parce que les file descriptors sont connus et partagés par les 2. La partie partage des fd c'est bon, mais le problème c'est qu'après notre exec, on perd le contenu de la variable qui contient l'id du fd.

Alors le gros problème c'est qu'on a pas de fork. Donc ma grande question est : comment on fait ? Soit on implémente un fork, soit on trouve un moyen d'envoyer des données à un processus fils (et dans ce cas, adieux pour de bon posix).