Thanks for the historical context! (I didn't get into linux until the 2.2 days).

so what is the likely minimal HW we think linux "should" be able to boot on and 
say run a simple shell?  What is Linux tiny's target now that 2MB is out of the 
question?

--mark

> -----Original Message-----
> From: Rob Landley [mailto:r...@landley.net]
> Sent: Tuesday, April 24, 2012 12:23 PM
> To: Gross, Mark
> Cc: Tim Bird; Ezequiel GarcĂ­a; Dave Hylands; celinux-
> d...@lists.celinuxforum.org; kernelnewbies
> Subject: Re: [Celinux-dev] [Q] TinyLinux project status (resend)
> 
> 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