Not even my Linux kernel is that large. If my kernel was so large that it caused problems with the available physical memory, I think I would go with a loader kernel. That is, create a second kernel that sets up paging and then jumps to the original kernel. The original kernel is then a normal ELF executable, only with a really high .text address. If the original kernel is loaded as module or initrd, GRUB (or whatever) will be able to put it wherever it fits. And using virtual memory means even the kernel itself does not really need to care where it was loaded.
Anyway, I don't think that a linker script is the right way to address this.
_________________ Carpe diem!
|