Re: i386/loader compiled with NOFORTH

From: Ruslan Ermilov <ru_at_FreeBSD.org>
Date: Sat, 26 Apr 2003 14:09:13 +0300
On Fri, Apr 25, 2003 at 04:49:21PM -0400, John Baldwin wrote:
> On 25-Apr-2003 Ruslan Ermilov wrote:
> > But if we manage to load kernel high, above 1M, there
> > should be something that allows us to relocate heap
> > there, no?  Also, can't we just trust what BIOS thinks
> > about the amount of memory?
> 
> We load the kernel into lower memory first and then copy it
> up above 1mb.  The memory above 1mb is not managed by the
> heap and is only used as the destination of the kernel.
> 
I understand that this is how it works now.

> We could trust what the BIOS says, but putting the heap up
> above 1mb has some sticky issues.  First off, where do we
> put it?  We can't put it at 1m cause the kernel has to go
> there.  If we stick it at 4m, then we've limited the kernel
> to only being 3m in size, adn GENERIC is already larger than
> that.  Any kernel modules get loaded up above 1m as well,
> along with splash screens, etc.  Do you want to set a max
> size for all that and stick the extra heap above there?
> You would need at least an extra meg of space for it to buy
> you anything, so let's say you limit the kernel + modules
>  + module data size to 6mb, then you can start the extra
> heap at 7mb and still work on an 8bm machine.  The loader
> would no longer _function_ on a 4mb machine.  I really would
> like to have the loader function on a fairly broad range of
> machines.
> 
Well, hm, the installation requirement was always slightly
larger than operational, so requiring 8MB for installation
is normal.  The "normal" loader can still have its heap
pool in real-mode 1MB, but the "install" loader would
benefit from using say 900K for bzip2 plus the current heap
of 512K, at the top of available memory.  Just like we
"load" kernel and other modules there, we could modify heap
routines to operate in upper memory, no?  Is this handled
by the i386_copy{in,out} stuff in sys/boot/i386/libi386?

> I guess the real reason for your questions is that bzip2
> requires some outrageous amount of memory for some internal
> tables?  Does bzip2 really buy us that much more space than
> gzip in this case?
> 
Here are the 5.0-R numbers, from kern.flp and mfsroot.flp:

-r-xr-xr-x  1 root  wheel  1310896 Jan 17 00:45 kernel.gz
-r-xr-xr-x  1 root  wheel  1247884 Apr 26 14:00 kernel.bz2
-rw-r--r--  1 root  wheel  1407218 Jan 17 00:39 mfsroot.gz
-rw-r--r--  1 root  wheel  1358835 Apr 26 14:01 mfsroot.bz2

That is, saves us 50-60K of space on 1.44MB floppies.


Cheers,
-- 
Ruslan Ermilov		Sysadmin and DBA,
ru_at_sunbay.com		Sunbay Software AG,
ru_at_FreeBSD.org		FreeBSD committer,
+380.652.512.251	Simferopol, Ukraine

http://www.FreeBSD.org	The Power To Serve
http://www.oracle.com	Enabling The Information Age

Received on Sat Apr 26 2003 - 02:09:23 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:05 UTC