> it's not free (libre) like ELKS, but have a look at minix.  It's fully
> able to recompile itself, so you can spend all the time you want abusing
> that old hardware.

But it's barely functional under 640K.  If fact I seem to remember not
being able to compile it in 640K.

Anyone know how much of cc1 is libc?  Maybe it's time for shared libraries?

Implemenation idea:

Shared library file format is the same as object file format, except
no static data is allowed in the file, just code.  When creating a
shared library, code is moved to filename.so.  Static data and a bunch of
far call stubs are moved into a static library filename.a.  This library
is linked with code normally.  The only unresolved symbol in the program
are the code segments of the shared libraries.

A system call would be resonsible for loading the shared library (if
not already loaded) and would return its code segment.  The program loader
would need to call this for each of the shared libraries and write their
code segments into the proper places in the program. 

The biggest problem is that this would require the shared libraries not
be moved in memory when they are in use.  To prevent fragmentation,
perhaps a garbage collector could be called when the libraries are loaded.

Of course, I get about half an hour of free time every week, so it would 
take me several years to get this working. :)

Eric

Eric

Reply via email to