Regrettably, there is more on this subject, and I've decided to do the
first implementation of the Coyotos kernel for i686 or higher
processors.

The issue is PAE and NX. In order to support NX (no execute), you need
to run the MMU in PAE mode. In order to run PAE mode, you need to be
running on Pentium-II or better. Even then, you need a pretty recent
processor to get NX support.

It is possible to design a single kernel that will support both, but it
adds runtime checks that are a nuisance. I don't yet know whether it is
practical to support PAE and non-PAE in the same kernel binary. I do
know that Windows does not do so. The obvious alternative would be to
simply compile *two* kernel versions into a single binary image and have
the low-level bootstrap unpack the right one, and/or have GRUB/whatever
simply load both alternatives as modules.

WHY:

   I want to make sure that NX support works, and I don't currently
   have time to do the kernel both ways myself.

   PAE has an irregular page table structure, which impacts a number
   of low-level interfaces in the HAL in various ways. I want to
   test that as well.

COMPATIBILITY:

   The only behavioral difference from the perspective of applications
   will be the presence or absence of the NX bit.

OTHER:

   My understanding is that QEMU emulates the PAE mechanisms, so this
   shouldn't be a short-term issue for people who are experimenting
   with the early kernel versions.

   IF THIS IS WRONG, PLEASE LET ME KNOW IMMEDIATELY!!!



_______________________________________________
L4-hurd mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/l4-hurd

Reply via email to