From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jody Bruchon Subject: Kernel size over 64K: what is needed, how to implement? Date: Fri, 17 Feb 2012 13:20:56 -0500 Message-ID: <4F3E9A88.7030105@jodybruchon.com> Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Return-path: Sender: linux-8086-owner@vger.kernel.org List-ID: Content-Type: text/plain; charset="us-ascii"; format="flowed" To: ELKS Mailing List 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