[eside-ghost] Desarrollando un cutre kernel...
Cymo
gcymoril en gmail.com
Mar Sep 13 14:56:23 CEST 2005
> Bueno, como apaño podria valer, puedo copiar una variable local a una
> direccion prefijada y luego acceder a piñon, pero es una solucion
> bastante warra, a mi parecer.
Ciertamente.
> Ademas, q no hay ningun motivo aparente
> para que las variables globales no funcionen :S
A mi se me ocurre una. Así, a bote pronto. Como sabemos todos y todas,
las variables locales se crean en pila, pero las globales no, van en
una zona de memoria aparte. Yo no sé donde cargas tu kernel (me
refiero a la dirección de memoria), pero habría que ver como
relocalizar esas direcciones. Quicymo (versión de quicir):
---------------------- base de la memoria
Dir: 0 GDT y otras movidad de Arqui que no recuerdo
Dir: x EthDra->OtrasMovidas
Dir y: EthDra->GetKernel();
Resto de la memoria
--------------------- Fin de la memoria
Por tanto, si las direcciones de las variables globales son relativas
al comienzo del kernel (o absolutas desde el kernel, según se mire),
tendrá que haber algún mecanismo para relocalizar dichas variables y
sumarles el desplazamiento (dirección y) desde la dirección cero,
hasta la que ocupa el kernel ... ¿nop?
Más información sobre la lista de distribución eside-ghost