[Kos-dev] Concept de "controleur" ?
Raphaël Junqueira
kos-dev@enix.org
Wed, 23 Apr 2003 23:23:17 +0200
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Le Mardi 22 Avril 2003 11:32, Thomas Petazzoni a écrit :
> Hello,
Salut,
> [ Beaucoup de gens sur cette liste risquent de trouver ce message
> bizarre, parce qu'il parle de choses qui sont en réfléxion entre Davi=
d,
> Julien et moi-même, et nos discussions n'ont malheureusement pas eu lieu
> sur la mailing list : nous avons pris la mauvaise habitude de ne plus
> l'utiliser. ]
Si c'est pas honteux tout ca ;p
> Je vais tout de même tacher d'exposer brièvement le problème. Nous =
avons
> introduit dans KOS l'idée que l'on ouvrait une "ressource" selon une
> "interface".
allons y
<snip>
> Malheureusement, en interne, un problème se pose en ce qui concerne
> l'implémentation des drivers et la factorisation du code.
hmmm
<snip>
> En effet,
<snip>
> Dans KOS, il faut trouver une solution différente pour factoriser ce
> code. L'idée la plus simple qu'il me vient à l'esprit est une sorte de
> "controleur" : pour chaque interface, il y a un controleur a qui on
> passe un identifiant de driver et qui propose toutes les méthodes de
> l'interface. Dans le cas de block, la fonction read() du controleur
> gérerait le cache, les problèmes de fragmentation/défragmentation, =
etc..
> en s'appuyant sur la méthode read() du driver passé en paramètre.
Logique, et je ne voit tjs pas l'interet du mapping direct
INTERFACE->IMPLEMENTATION.
En clair, moi je le voyait plutot un "controleur" qui fournirait "une
implementation par defaut/generique" et dechargerait les parties speciques a
des modules dedies (drivers)
Pour quoi donc, me dirait tu ? Ben prenons l'exemple d'une gestion de bus (ce
en quoi hurd est une calamite) une grosse partie du code de gestion est et
doit etre partagee car:
- les infos sur les IOs doivent etre regroupees afin d'avoir un scheduleur
d'IO digne de ce nom
- tous les bus sont interdependants dans leurs acces (vive la joie des acces)
- - ...
> De toute façon c'est une idée un peu comme celle-ci qu'il faut (je
> pense) utiliser. La question maintenant est : est-ce que ce problème de
> factorisation de code est inhérent à block et à ce moment là il f=
aut
> trouver une solution spécifique à block, ou alors est-ce que ce probl=
ème
> risque de revenir avec de nombreuses interfaces, auquel cas il faut
> trouver une solution globale pour le système.
Non elle n'est pas inherente au bloc, mais aussi a la gestion des bus, et de
pleins d'autres styles de peripheriques. De plus on peut "piper" :) par
exemple avec la gestion de bloc qui passe qquesoit le bus (exemple tordu via
le bus USB: c tres bo ca aussi)
Dans la liste a fort dose de factorisation, on trouvera aussi surement les
cartes sons et cartes graphiques.
> Voilà le fruit de mes réflexions. J'espère réellement qu'on trouv=
era une
> issue à ce problème, car j'attends les solutions pour pouvoir me lâ=
cher
> sur le codage ;-)
J'espere que ca t'aidera a te lacher ;)
> Bonne journée,
a toi aussi,
> Thomas
Amicalement,
Raphael
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (GNU/Linux)
iD8DBQE+pwRJp7NA3AmQTU4RAgykAKCFhbLxAW+kxrEXKxLosRs6kizQNgCeM4OH
8r4LER5O5qtpV5jTUALHiq0=
=7Crh
-----END PGP SIGNATURE-----