"Baby Linux"

Ha ha, I'm having fun! I have created a uClibc-based "baby linux", so far only have Xorg running with xterm. Not even a window manager or GTK (they come next).

I have an interest in creating something really tiny, yet quite usable. Xorg has 'vesa' driver only, no openGL nor Mesa. I am building this from scratch, aiming for extreme small size and speed.

The startup/shutdown scripts are a total new rewrite, only small code snippets taken out of Puppy scripts. Only designed for full install in a HD (so far). So, this is not a puplet. This baby needs her own name -- so why not Baby Linux

I don't know how far I will get with this, for now I'm just having fun.

Note that as Baby uses uClibc, existing compiled-from-C binary applications for Puppy, Ubuntu, Slackware, etc., will not work. Everything has to be compiled especially for Baby, and many apps might not be happy with uClibc.


Posted on 22 Mar 2011, 15:11


Comments:

Posted on 22 Mar 2011, 16:22 by Sage
'Baby' Linux
Ostensibly, excellent news. Like the HD allusion.
Not sure about the name, though. Our younger male followers might have a severe aversion to babies?!
'Mini', 'Micro', 'Diminutive' ?
From the user perspective, guess it depends on the eventual size of the .iso and real-estate demands. 1.44Mb floppy in assembler? 10Mb like 'Tiny Core'? 30Mb like 'SliTaz'?, a 50Mb 'credit card' version? a 120Mb 8cm CD?
Afraid I have been unable to follow your recent technospeak about the inner workings of uClibc but trust your judgment in that aspect. My interest are in the HW arena, primarily. If it can be really small when decompressed to a FULL install, there are millions of tiny 2.5" HDs that can be liberated from laptops with cracked screens, cracked cases, dud slim CD/DVD drives, dead batteries (costing more than a new machine to replace!), lost power adapters, etc. Their redeployment would depend on the ultimate size after apps are added. You do intend to supply .pets?! I still have a 120Mb Connor HD that I use for testing TinyCore, SliTaz and as a dedicated swap drive; must be 20yrs old now. Small, quiet, cool and power-lean. HD access times are always the slow link in conventional kit, but for general use, it doesn't make much difference whether they spin at 3200 or 15,000rpm.
Can offer user testing again now.


Posted on 22 Mar 2011, 19:17 by jamesbond
was just about to ask how your buildroot is going with lupu ....
... but I don't need to ask anymore, apparently it's a success :)


Posted on 22 Mar 2011, 19:56 by Justauser
look at tinycore
Barry, look at tinycore. it is incredibly small, about 10Mb and has an extensive repository of packages.


Posted on 22 Mar 2011, 21:47 by BarryK
libc comparison
Developers might find this interesting:

http://www.etalabs.net/compare_libcs.html

...Dietlibc creates a very small "Hello World" static program.



Posted on 22 Mar 2011, 24:46 by technosaurus
baby linux
the gtk guys seem to have bought into my (and others)complaint about c++ in pango (for freetype) and both the 2.x and 3.x series will build against pango-1.24.x ... if you stick with buildroot's defaults, you will get pango-1.28 and libstdc++, going with uclibc++ would be an improvement, but still an extra dependency - however small.

I have helped goingnuts with similar puplet (pupngo) ... minimal scripts, reduced footprint, some uclibc binaries (static versions for the "important" stuff) Xvesa-static is < 600k & will upx to ~220k, libX11 does not statically compile well - jwm ends up being ~1Mb, but we have found ways to use jwm as the desktop environment through creative use of trays (your drive icons for instance all go to a jwm tray)

future plans are to immediately start:
Xvesa <params> & sleep .2 && jwm -display :0
immediately in the initrd and use jwm -restart to update init progress witha tray label (stumbling block is that a terminal is needed for jwm -restart, but the terminals need more of an environment set up in order to start) ... also requires making use of jwm's startup, restart and shutdown tags to run some helpers

Many basic Alpine linux binaries should work.
http://dl-4.alpinelinux.org/alpine/v2.1/

maybe it should be called "runt" ?


Posted on 22 Mar 2011, 24:51 by GCMartin
Which Platform is this target for
Just 2 questions of Baby Linux:
1, Any idea of which hardware platform and memory this is targeted at?

2, And which primary application(s) do you foresee this addressing?

Very interesting, indeed.



Posted on 23 Mar 2011, 6:55 by Magruder
The name could be better...
Barry, I hope you'll take a lot of feedback before officially "christening" this one. I love the idea, but that name...

Maybe a contest? I'm not having any inspirations at the moment but we have a lot of clever folks using Puppy.


Posted on 23 Mar 2011, 7:33 by CLAM01
"Teacup Pup"?
"Baby" seems a bit too generic, and "Linux" is pretty generic, too.

By 'building from scratch' you will mean you are working "in vitro". Undoubtedly a good thing. Where it suggested the new little one was welped from a puppy you could find yourself subject to unwonted interest by Cyber-PETA "wachdogs"...


Posted on 23 Mar 2011, 8:20 by scottman
The project sounds good...
Looks good, I want to play with it myself and see where it goes.

Also... If Barry wants to call it "Baby", then "Baby" it is. Why do Puppy users insist on trying to control Barrys personal projects?




Posted on 23 Mar 2011, 8:57 by BarryK
Personal project
That's it of course, it's just a personal project, just playing. I don't know where it will go.

I am very uncertain about uClibc. I don't understand how it handles locale -- it is supposed to, but documentation is sparse. It doesn't have glibc's 'locale', 'localedef', 'setlocale' utilities.

Runt -- there is already a Linux with that name!

Anyway, naming is premature! I will probably at least get this to a working desktop -- probably -- and even if decide not to continue with it, will upload it, with all development tools.

I haven't checked out pupngo, will do so.



Posted on 23 Mar 2011, 9:40 by BarryK
Buildroot no-go
I have decided to give up on Buildroot. Various reasons:

1.
It is very sensitive to package versions on host. Lucid Puppy (Lucid Lynx Ubuntu pkgs) is ok up to and including compiling Xorg. However not for GTK. The host needs to be a later version of Ubuntu. What really cheeses me off is that this vital fact is not documented.

2.
Buildroot creates a broken toolchain. I found that right off when I found that /usr/lib/crt0.o, crt1.o, crtn.o and libc.so were missing from the target. And I keep finding more things. The Buildroot developers do not use it to create a target rootfs developer toolchain, only for runtime files.

I have been compiling packages in my target rootfs, installed in a partition, and it works ok for simple utility packages, but becomes broken with more sophisticated packages.

For example, I tried to compile jwm and it complained that xproto is missing -- but it should be there.

Moving on...



Posted on 23 Mar 2011, 10:25 by BarryK
Alpine Linux
...next stop, Alpine Linux. Thanks to technosaurus for putting me onto that.

I have been reading the description, very interesting:

http://alpinelinux.org/wiki/About

Downloading the iso now.



Posted on 23 Mar 2011, 14:28 by scsijon
QT Desktop?
eggWM a QT4 based window manager?

Moreover, unlike other window managers, it does not need a very strong computer to run EggWM, because only consumes between 3MB and 4MB of RAM.

Maybe time to try?
http://qt-apps.org/content/show.php/Egg+Window+Manager?content=136862

plenty of small apps out there too

regards
scsijon


Posted on 23 Mar 2011, 14:42 by scsijon
puppyrunt
if you want it, it's yours, i'll find something else when I get that far. I do like the idea of a "micro puppy".

I'd just about killed that idea anyway, for now at least, i'm having too much fun learning all the pitfalls and their fixes with the help of building with woof.


Posted on 23 Mar 2011, 18:48 by BarryK
Woof and Baby
scsijon,
The way I'm thinking now, is Woof will be used to build the "micro puppy". I am just about to post about latest thoughts.



Posted on 26 Mar 2011, 10:32 by ttuuxxx
"Baby Linux"
Hi Barry Just wondering if it could be gecko Edubook/Surfboard compatible, because even the 4 series you made runs a bit slow, So What I'm thinking is if Baby linux was 50% or more smaller, then it should fly on it.
Just an idea
ttuuxxx


Posted on 29 Mar 2011, 16:12 by mstlpflx
Smallest OS
I was playing around on Google and found this,<http://www.kolibrios.org/>. I downloaded it and .... it ran , at less than 3mb.
Name for this is Russian for "Hummingbird". This is just something interesting and very small, like micro or mini or baby and it was just something I thought was Amazing.... for it's size.


Posted on 1 Apr 2011, 20:07 by Yogev Ezra (Green Gadgets)
KolibriOS
We are now in process of porting KolibriOS to Edubook and other Vortex86-based products (like eBox-3300MX / Microclient JrMX).

More information is available here: http://www.deviceonchip.com/index.php?option=com_kunena&func=view&catid=33&id=531&Itemid=85

So far we already got sound and network working properly with Edubook / eBox-3300MX. Anyone who is willing to test or contribute, is welcome to register on KolibriOS forums: http://board.kolibrios.org/