[Kos-dev] Id ressources

Thomas Petazzoni kos-dev@enix.org
Fri, 26 Apr 2002 09:55:32 +0200


Salut,

> Pour chaque ressource du pere, il est certain qu'on doit allouer une
> ressource vers la meme SR pour le fils au moment du fork. Ca, je n'en
> doute pas une seconde. Mais alors la question que je pose est :
> comment tu vas changer toutes les references a la ressource du cote du
> fils ? Par un gros grep sur l'espace memoire cpl3 du fils : partout ou
> on voit l'adresse correspondant a une ressource qu'avait le pere, on
> la remplace (la reference) par la nouvelle adresse de la ressource
> nouvellement allouee ?  Je persiste et signe : c'est pas une bonne
> solution (euphemisme).

Cher ami, je trouve votre reflexion tout a fait pertinente !

J'avais effectivement pas du tout pense a ce probleme la, et on va etre
oblige de revenir  a une sorte de vieux tableau ala Unix. On pourrait
imaginer avoir un index pour chaque resource dans la liste des resources
par team, mais ca voudrait dire qu'il faut la parcourir pour trouver la
resource d'index i. -> pas bon niveau perf, donc on est oblige de passer
par un tableau de pointeurs vers des resources defini en statique dans
la structure team_t.

En ce qui concerne le tty, j'ai encore quelques doutes. J'aurai voulu
faire ca en 2 parties : une partie vraiment tty, qui s'occupe de la
gestion de haut niveau, et qui marcherait qu'on soit dans un terminal
(pty) ou dans une vraie console (tty), et une partie console, qui elle
est specifique a l'environnement pc.

par contre, j'ai regarde dans oldies, on avait fait quelque chose de pas
mal pour le multiconsole : on a plusieurs buffers dans la carte video,
et avec deux ou trois outb on dit a la carte de changer de buffer. mais
y'a un hic : ca limite mechamment le nombre de console, et surtout de
cette maniere la, ca permet pas de faire l'historique par pages
(Shift+PageUp/Down). Seule solution : faire des memcpy (c'est la
solution retenue par Linux. Ils ont quand meme optimise le truc en
reportant ce gros memcpy dans un Bottom Half (nos DSR). Si on fait ca,
ca arrange pas mal de trucs, notamment au niveau de la separation du
driver de tty avec le driver console : le driver console se demmerde
avec la carte pour mettre les infos ou il faut, et le driver tty
d'envoyer une page de caracteres correctement formatees.

Ainsi, on peut imaginer avoir le driver de tty avec soit derriere un
driver console (texte 80x25), ou alors derriere un driver framebuffer
pour afficher du texte... M'enfin ca demande encore un peu de
reflexion... mais j'aimerais avoir vos suggestions !

Thomas
--
thomas.petazzoni@enix.org - icq #34937744
Projet KOS : http://kos.enix.org
Club LinUT : http://club-linut.enix.org
Page Perso : http://www.enix.org/~thomas/