[Kos-dev] Des nouvelles...

PETAZZONI,THOMAS (Non-HP-Germany,ex1) kos-dev@enix.org
Mon, 22 Jul 2002 12:02:59 +0200


This message is in MIME format. Since your mail reader does not understand
this format, some or all of this message may not be legible.

------_=_NextPart_000_01C23166.F5454CE0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Salut,

Ca fait maintenant quelque temps que cette liste n'a pas recu de
message. C'est dommage, mais j'y suis aussi pour quelque chose ;)

J'ai un peu travaill=E9 sur KOS ce WE, mais pas dans les sources. Mes
travaux ont port=E9 sur deux points :
 * Babel et les (pseudo) probl=E8mes
 * Documentation

Commencons par la documentation. J'ai ecrit une documentation
inteldocfr qui reprend en fait le sujet du Chapitre 3 du Kos Book,
mais tres ameliore, surtout au niveau redaction. C'est maintenant une
documentation separee a part entiere, qui ne fait plus partie d'un
document completement obsolete. Si vous pouvez relire ce serait
nickel.

Plusieurs questions concernant ce document :
 * je ne parle que tres peu de KOS, ca se veut etre une documentation
 generale de l'archi x86. Qu'en pensez-vous ?
 * il n'y a aucun bout de code dans cette documentation. pourtant je
 sais que ce qui m'a (nous ?) pose probleme c'est de coder quelque
 chose qui implementait une GDT, une IDT, etc... alors peut etre que
 des bouts de code seraient les bienvenues. Au choix : soit des
 petites routines en assembleur ou en C, comme ca, d=E9cor=E9l=E9es de =
tout
 le reste. Soit carrement une doc s=E9par=E9e (ou incluse ?) qui =
programme
 un bootsecteur qui passe en mode prot=E9g=E9, met en place une IDT et =
met
 en place la pagination (identity mapping + mirroring). une sorte de
 mini noyau juste pour montrer comment marche les structures
 d'Intel. Merci de me donner votre opinion la dessus. Votre reponse
 peut aussi etre : te fais pas chier, y'a deja le code de KOS. C'est
 peut etre vrai ;)

Le deuxi=E8me document sur lequel j'ai travaille est la gestion des
interruptions dans KOS. Pour l'instant il n'est pas termin=E9 mais il
presente le role des handlers de bas niveau, des handlers de haut
niveau, des DSR et des DST. Il propose aussi une section concernant
l'implementation d'un handler de haut niveau. Je continuerai avec
l'implementation d'un DSR et d'un DST, afin d'expliquer l'API
propos=E9e.

Question :
 * un truc me tracasse : on utilise des TRAP GATE, donc les
 interruptions ne sont pas d=E9sactiv=E9es par le processeur avant
 d'=E9x=E9cuter les handlers. Je vois pas de cli au d=E9but des =
handlers,
 donc j'en conclus que les handlers d'IRQ sont =E9x=E9cut=E9s avec les
 interruptions activ=E9es. Ceci correspond bien au sch=E9ma que tu =
avais
 fait d2 pour la conf LSM 2002 (ISR0 arrive au milieu de ISR1). Mais
 par contre dans _dsr.c :

      /* Interrupts are REALLY disabled (we're during an IRQ handler),
         but we want then enabled during execution of the handlers */
      sti();

 Apparemment les interruptions sont desactivees pendant les handlers
 d'IRQ, ce qui semblerait plus logique, sinon je vois pas bien la
 difference entre le handler de l'IRQ et le DSR. Mais alors la
 question est : comment c'est possible d'avoir un ISR0 au milieu d'un
 ISR1 si les interruptions sont desactivees (j'ai pense a la question
 de la priorite, mais interruptions desactivees -> tout desactive).

Que dois-je penser ?

J'attends avec impatience vos commentaires sur les documents. Ils sont
attach=E9s avec le mail, je n'ai pas d'acces ssh pour le moment.

Concernant Babel, j'ai reflechi, et je pense en fait qu'effectivement
notre modele n'est pas si mauvais que ca. Toutefois, je pense que
nous devrions commencer par programmer quelque chose en C++, parce que
simplifie grandement le developpement.

La seule difference de ce que j'ai pense par rapport au Babel actuel
c'est que dans mon modele il y a deux niveaux : les resources (taches,
fichiers, semaphores, message queues, thread) et les gestionnaires
(fatfs, ext2fs, etc...). Ces deux entit=E9s ont des interfaces.=20

Dans l'ancien modele on faisait fatfs->read(resource). Dans mon modele
on fait resource->read(), de la meme maniere qu'on fait
resource->fork() ou resource->getpid(). Evidemment on ne peut pas
faire n'importe quoi avec n'importe quelle resource ;)

Les gestionnaires quant =E0 eux servent essentiellement =E0 la gestion =
de
l'espace de nommage. Si il y a un espace de nommage pour les
s=E9maphores, il y aura un gestionnaire, sinon non. Un systeme de
fichier doit donc proposer deux choses : un gestionnaire, qui se
chargera juste de la gestion de l'espace de nommage, et une interface
avec l'implementation de ses methodes.

J'ai commence a faire quelque chose en C++, mais c'est pas encore
termine, et pas encore presentable. Si j'ai le temps dans les
prochains jours (pour l'instant je suis tout seul le soir et je n'ai
rien a faire, tout est question de motivation) je continuerai. Je vais
essayer de simuler sur un systeme Linux le probleme que nous
avons. D'un cote je vais essayer de representer le noyau par des
classes et des objets codes en C++ et de l'autre par un embryon de
libc code en C, qui devra permettre un acces transparent aux resources
du noyau. Entre les deux j'utiliserai un systeme de message queue Unix
pour simuler le syscall. En effet, il faut absolument se passer de
l'appel de fonction, car le syscall est beaucoup plus restrictif que
l'appel de fonction.

A ce sujet, si quelqu'un a des bonnes references sur le fonctionnement
des RPC, cela m'interesse.

En ce qui concerne la glibc, j'ai commence a etudier les sources,
c'est vraiment pas mal foutu cette chose. Y'a des trucs un peu gore
(genre libio pour que ca marche et en C et en C++), mais pour la
portabilite, j'ai l'impression que c'est vraiment bien fait. Meme si
on implemente qu'une fraction des appels systemes on pourra compiler
notre glibc, car si une fonction n'est pas defini par notre portage,
alors la glibc utilisera automatiquement la fonction de meme nom dans
sysdeps/generic qui renvoie simplement ENOSYS (appel systeme non
existant). J'ai aussi pu me confirmer avec joie que tout le probleme
de bufferisation des E/S au niveau de getc, fgetc, fgets, printf,
scanf & co etaient gere au niveau de la libc.

Autre chose, si vous avez le temps, lisez quelques chapitres du Manuel
de la GLibc, meme apres plusieurs annees de C, on y apprend des trucs
interessants.

Voila pour aujourd'hui

Thomas

Thomas Petazzoni
thomas.petazzoni@non.hp.com
KOS : http://kos.enix.org
Perso : http://kos.enix.org/~thomas/=20


------_=_NextPart_000_01C23166.F5454CE0
Content-Type: application/octet-stream;
	name="inteldocfr-1.1.tar.gz"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
	filename="inteldocfr-1.1.tar.gz"

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

------_=_NextPart_000_01C23166.F5454CE0
Content-Type: application/octet-stream;
	name="interruptfr-0.5.tar.gz"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
	filename="interruptfr-0.5.tar.gz"

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
4xjHOMYxjnGMYxzj+F8e/wI9csJ1AFAAAA==

------_=_NextPart_000_01C23166.F5454CE0--