Monday, April 23, 2007

10 Days of Trinux, 9 Years Later

It's actually been longer since I lamented the lack of well maintained ramdisk distros but the project activity log say 10 days so I'll go with that.

It was certainly tempting to throw in the towel and say Trinux peaked in 2000 and be done with it (which it actually did, and what I thought when I let the domain expire a few months back) I think there are some good reasons to re-introduce (and continue to maintain) a minimal ramdisk Linux distribution in 2007 -- 9 years after first started serving up it off of and a SATLUG page. And I'm not including the fact that there are still some folks left on trinux-talk from the old days and that maintaining a distro is fun. So here is a heavily annotated (but limited to a single sentence) rationale for what I'm up to with ubuntutrinux.

While Firmware Linux is a well-designed project and actually works (unlike the bloated buildroot) there is a need for a small (meaning under a 10 MB core) non-uclibc distribution or distribution toolchain (i.e distribution creator) that allows releases to be packaged quickly (like under 10 minutes, not counting kernel compilation) using the latest Linux 2.6 kernels that allow easily deployment applications compiled on a standard desktop/server Linux (like Ubuntu) for a variety of boot media: CD-ROM, USB, PXE, or a Linux /boot partition.

Although the documentation is incomplete and I haven't been doing predictable numbered releases yet, it does this now and almost everything is up on snapshots directory.

During the first go around I made the mistake of supporting some boot media more than others. For me a single floppy plus network package loading was the only way to go. ISO were impractical and inflexible.

It should be a no suprise if you read the italicized text above, but with ubuntutrinux, the key design principles are:
  • Simplicity, speed, and ease of use
  • Maximum deployment
  • Interoperability
The rest is implementation.


De Boer said...

Hi Matt,

Do you know whether the ubuntutrinux no longer supports floppy booting is a technical problem with the recent kernels too big to fit?
I just loved the single-floppy booting with the original trinux. But I also like the Debianizing of your concept of trinux.
Thank you!

Matt Franz said...

Well it is a combination of a technical and a time issues. I suppose tt might be possible using Busybox compiled with uClibc and a completely bare 2.6.x kernel (no networking or fileystem support) to fit on a floppy. There was tremendous about of modularization (is that a word?) that went into the 2.2/2.4 Trinux floppy builds that was very tedious time consuming.

mightydreams said...

I appreciate your work I am a new comer to this field but this sort of projects help in learning a lot

jim said...

Yeah, I seem to have issues putting minimal kernel builds onto a floopy. Why not go USB though? I had great luck putting PuppyLinux onto a USB drive. Hell, you can almost fit a whole distro on a USB stick these days.

Linux Elite

Anonymous said...

Hi. Could you write about the process you use to prepare pkgs for trinux? Do you start with slackware binaries?
I use NetBSD but I need LInux for a few things. I am happy to recently try trinux. It's booting fast in qemu. Previously I was using sysrescuecd (Gentoo-based). But your setup (RAM-based only, and a pkglist loaded on boot) is more my style: simplicity.
Could you write about how you prepare pkgs? I like how you've stripped out the cruft (man pages, etc.). Your philosophy is good: Knoppix and it's silly terminology and CDROM-centricity sent us down a unnecessary path. We need RAM-based *and* simple enough to add/remove pkgs easily. I can do this in *BSD, but Linux has been not so easy. Cheers!