Kernel size over 64K: what is needed, how to implement?

Jody Bruchon <[email protected]>
Newsgroups org.kernel.vger.linux-8086
Message-ID <[email protected]>
ELKS can't compile to a size over 64K (the entire kernel must be in the 
same code segment). ELKS will quickly expand beyond 64K simply by 
selecting too many features. We need to be able to grow larger than 64K, 
and I would like to discuss how to do this. My understanding is that 
bcc/ld86 doesn't deal with 8086 far pointers at all. The outline of the 
process as it appears to me is as follows:

* Support must be added to bcc/ld86 need to be able to use far pointers.
* A file format must be specified that includes relocation tables for 
far pointers.
* A loader stub must be added to the kernel to relocate its own far 
pointers at boot.
* After this is done, support should be added to load userland 
executables this way too.

I'd like to know what everyone's thoughts are on this. If we do this 
work, we will be further tying ourselves to bcc. I am seriously 
considering adding a repository for dev86 to the ELKS project so that we 
can change the toolchain as needed with more convenience (comments on 
this are also welcome.) I see that there is an "ELKS format executable" 
but it appears that it only deals with memory allocation technicalities, 
so that isn't very helpful.

Thoughts?

Jody Bruchon
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.