"Baby Linux"
March 22, 2011 —
BarryK
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.
Comments
'Baby' LinuxUsername: Sage
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.
libc comparison
Username: BarryK
"Developers might find this interesting: http://www.etalabs.net/compare_libcs.html ...Dietlibc creates a very small "Hello World" static program.
baby linux
Username: technosaurus
"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" ?
Which Platform is this target for
Username: GCMartin
"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.
The name could be better...
Username: Magruder
"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.
"Teacup Pup"?
Username: CLAM01
""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"...
The project sounds good...
Username: scottman
"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?
Personal project
Username: BarryK
"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.
Buildroot no-go
Username: BarryK
"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...
Alpine Linux
Username: BarryK
"...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.
QT Desktop?
Username: scsijon
"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
puppyrunt
Username: scsijon
"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.
Woof and Baby
Username: BarryK
"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.
"Baby Linux"
Username: ttuuxxx
"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
Smallest OS
Username: mstlpflx
"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.
KolibriOS
Username: Yogev Ezra (Green Gadgets)
"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/
Tags: general