On 04/18/2012 10:25 AM, Gross, Mark wrote:
> I'd like to see Linux fit in stuff that this too :
> http://olimex.wordpress.com/2012/04/04/unix-on-pic32-meet-retrobsd-for-duinomite/

Linux in under 2 megabytes of RAM, even when running from ROM, is not a
realistic goal. For context: linux 0.0.1 was developed on a 4 megabyte
system in 1991. Swap support was added in december of that year so it
could run on a 2 megabyte system.

That's the historical low water mark of linux memory usage, back when
the kernel really didn't do that much. The 0.x kernels were _profoundly_
more stripped down than what we have today, they didn't even implement
full "a normal user is not root" permissions, had no hotplug/kobjects or
reverse mapping support, thread local storage or futexes, nothing like
ipchains/tables... Even the /proc filesystem didn't show up until
0.97.3, and the linux-0.97.3.tar.gz source is only 316k.  THAT required
a swap partition to do anything useful in 2 megs.

The smallest amount of memory I ever saw a 32-bit system run in was
IBM's OS/2 run in a little under 2 megs, and that was with the OS in ROM
running a text-mode dedicated app (some weather station reporting thing).

Sure, DOS and early versions of Windows ran in less, but that was 16-bit
code, using not just smaller instructions but smaller constants.
sizeof(int) was 2 bytes, _and_ both leveraged BIOS code in ROM to
provide driver support. Heck, half the time windows 3.1 ran in "real
mode" instead of "protected mode", and until win32c/win32s it used
segment:offset addresses with thunking to de-overlap the segments.
Windows 98 still had its scheduler compiled as 16 bit code, which is
what gutted Pentium Pro sales and led to the initial split between IBM
and Microsoft.

The ELKS port of Linux is a 16-bit version of Linux. If you really want
to play with 2 megabytes of memory or less you could try that, but note
that it's essentially a completely different OS (and basically a toy):

  http://elks.sf.net

If you want to run something in 256k ram, glue it onto u-boot.

Rob
-- 
GNU/Linux isn't: Linux=GPLv2, GNU=GPLv3+, they can't share code.
Either it's "mere aggregation", or a license violation.  Pick one.
_______________________________________________
Celinux-dev mailing list
Celinux-dev@lists.celinuxforum.org
https://lists.celinuxforum.org/mailman/listinfo/celinux-dev

Reply via email to