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
