Re: [Q] TinyLinux project status (resend)

Rob Landley

On 04/24/2012 05:22 PM, Tim Bird wrote:
On 04/24/2012 03:13 PM, Gustavo Sverzut Barbieri wrote:
On Tue, Apr 24, 2012 at 7:02 PM, Tim Bird <tim.bird@...> wrote:
On 04/24/2012 12:22 PM, Rob Landley wrote:
On 04/18/2012 10:25 AM, Gross, Mark wrote:
I'd like to see Linux fit in stuff that this too :
Linux in under 2 megabytes of RAM, even when running from ROM, is not a
realistic goal.
Call me a glutton for punishment. I have a background project to see if
Linux running in 1M is possible. The budget for some items:
256K kernel
256K library
64k shell
128k multi-call utility

In general, this would require (as Rob points out), reverting a lot
of features that have crept into Linux, and substituting smaller
code for some pieces.

I've run Linux in as small as 2.5 meg (but with kernel and app XIP).
In the early days, I had a web server running in 4 meg (but with swap).

However, this is probably something I'll never find time to do...
As said in this mail thread, it all boils down to "is it worth?" question.

Recently the embedded space got beefy. Phones and tablets are like
desktop computers. Even network routers, tvs and cameras got bumps.
Um, they're explicitly replacing desktop computes.

Mainframe -> minicomputer -> microcomputer -> smartphone. This is the
third regeneration of the computer industry (we're up to Tom Baker).

Nobody needed to wait for the "priesthood" to turn your punched cards
into a printout once your department had its own mini terminals down the
hall. Nobody needed the terminal down the hall when they had a micro
computer on their desk. Nobody needs the computer in their desk when
they have a computer in their pocket.

Add in a USB docking station (Toshiba Dynadock or similar), and you can
hook your phone up to a keyboard, mouse, two big monitors, speakers,
extra disk space gigabit ethernet, and so on. (Yes, we need drivers for
this stuff but most of it we've already got.) All through the same USB
that powers the device. Given that the now-obsolete Nexus One had 512
megs ram, a gigahertz processor, and up to 32 megs of sd card, the only
things stoping it from being a self-hosting development workstation was
user interface issues and software.

The crappy little 8-bit boxes gave way to the PC because it was
displacing the minicomputer and stealing all the users, while growing
the market. The smart phone has hundreds of millions of PC users to yank
away and BILLIONS of people without a PC.

But smartphones growing up out of the embedded space to establish a new
powerful general purpose computing plaform with a standards and a
polished user interface is _not_ the end of the embedded space.

If you think of things like "smart dust" running Linux, then
it might be worth it. I don't know about you, but I don't want
to require more than 1M of ram on my dust computers. ;-)
The target I'e been considering isn't nearly that exotic. I'm pondering
disposable computing, electronics of the "blinky LED" variety you saw so
much of 5 years ago, capable of running Linux.

The raspberry pi is $25 for a machine with HDMI output. Now imagine a 25
cent machine, 4 megs of ram running on a watch battery at maybe 16 mhz
when not quiesced, and the output is some cheap bus (serial, i2c, mmc,
spi) that drives a "digital paper" like display on the front of a cereal
box. So your box of captain crunch can change what it says on the front
every 30 seconds (and maybe an accelerometer lets it know when it's
"active" so it can respond; touch screen would be awesome).

Sure it'd only last 6 months before the battery dies, but the cereal in
the box is stale at that point anyway. The "free toy inside" level of
resources can get quite an advertising "pop" if done right.

The other reason it might be worth it is purely for speed. A really
small system can fit in cache better (indeed the entire system might fit
in cache on a modern processor). This should help with performance,
at the expense of fancy algorithms for things like scheduling,
memory management and networking.
You're forgetting security and reliability. The idiots doing selinux are
confusing security with availability, you don't make a system more
secure by making it more complicated any more than you make it more
_waterproof_ by making it more complicated. What you do is you
thoroughly inspect every part of it to make sure nothing anywhere leaks.

Tiny, simple software is more auditable.

GNU/Linux isn't: Linux=GPLv2, GNU=GPLv3+, they can't share code.
Either it's "mere aggregation", or a license violation. Pick one.

Join { to automatically receive all group messages.