[Kos-dev] identity mapping et noyau

Christophe Avoinne (Club-Internet) kos-dev@yoda.isnpro.com
Fri, 9 Feb 2001 20:20:12 +0100


Je croyais que le noyau n'était pas réellement placé dans la mémoire
physique mappée à l'identité !? si je comprends bien, vous vous êtes
contentés de le placer en début de mémoire physique mappé à l'identité. Moi,
je voyais plutôt allouer les derniers mégas de la mémoire physique (mégas
physiques pas forcément identitaires), de l'affecter à une zone virtuelle
réservée pour le noyau. Cela signifie que l'éditeur de lien a juste à
reloger aux adresses virtuelles correspondantes. Evidemment, il faut penser
à faire le mapping AVANT la création du noyau.

Bien sûr, cela paraît simple ce que je dis, mais je me doute que cela ne le
sera pas.

Petite remarque, le noyau - s'il est fixe - ne peut pas donner de la
mémoire, sauf si vous décidez d'une gestion de mémoire virtuelle également
pour les pages de code du noyau. On n'est pas prêt de sortir de l'auberge, à
mon avis.

Christophe.

----- Original Message -----
From: "Thomas Petazzoni" <thomas.petazzoni@ifrance.com>
To: <kos-dev@enix.org>
Sent: Thursday, February 08, 2001 10:48 PM
Subject: [Kos-dev] identity mapping et noyau


> salut,
>
> on va devoir realiser un allocateur de bloc de memoire physique pour la
> gestion du DMA, et pour la gestion de divers peripheriques qui
> demanderaient des gros blocs de memoire physique. ces allocations nous
> obligeront a deplacer des choses dans la memoire, ce qui ne pose pas de
> problemes grace a la pagination, et aux savants moyens (restants a
> determiner) qui vont nous permettre de remonter d'une page physique a
> ses diverses associations virtuelles.
>
> seul hic : on ne peut pas deplacer le noyau !
>
> en effet, celui-ci a ete reloge pour tourner dans l'idendity mapping, et
> on ne doit pas casser l'idendity mapping (si une page a 6Mo appartient
> au noyau, elle doit encore pointer a 6Mo en physique). pourtant si on a
> besoin de l'espace du noyau, on est dans la merde !
> la solution est simple : c'est que le noyau ne tourne pas dans
> l'idendity mapping. il est reloge pour fonctionner a une adresse
> virtuelle absolue, qui ne sera pas dans l'idendity mapping.
>  il sera bien entendu encore accessible par l'idendity mapping, mais
> sera execute via son adresse virtuelle propre. ceci requiert bien sur
> d'avoir mis en place la pagination avant d'entrer dans le noyau (oups,
> desole d2 !).
>
> une autre serait de dire : si on a besoin de deplacer le noyau, c k'on
> prend trop de memoire, alors on dit 'et merde tu nous fais c*i*r avec ta
> memoire physique d'abord t'en auras pas'. mais bon c un peu bete si on
> peut le faire non ?
>
> je sais tjs pas pourquoi mon pauvre scheduler ne marche pas.. mais j'ai
> pas trop regarde.
>
> amicalement,
>
> thomas
> --
> PETAZZONI Thomas
> thomas.petazzoni@meridon.com     UIN : 34937744
> Projet KOS : http://kos.enix.org
>
>
> _______________________________________________
> Kos-dev mailing list
> Kos-dev@yoda.isnpro.com
> http://the-doors.enix.org/cgi-bin/mailman/listinfo/kos-dev
>