Mercurial > hg > aboriginal
view www/index.html @ 7:f8c588578fa1
Finish shuffling old website material into new website.
author | Rob Landley <rob@landley.net> |
---|---|
date | Tue, 28 Nov 2006 16:08:42 -0500 |
parents | e039588b3189 |
children | bed493dc4358 |
line wrap: on
line source
<html> <title>Firmware Linux</title> <body> <h1>Firmware Linux</h1> <b><h2>What is it?</h2></b> <p>Firmware Linux is an embedded Linux distribution builder that creates a bootable single file Linux system, based on uClibc and BusyBox/toybox. It's basically a shell script that builds a complete Linux system from source code.</p> <p>FWL builds a cross-compiler and then uses it to build a minimal system containing a native compiler, BusyBox and uClibc. Then it runs this minimal system under an emulator (QEMU) and natively builds the final system. Finally it packages the resulting system (kernel, initramfs, and root filesystem) into one big bootable file.</p> <p>Here is a description of <a href=design.html>the design of Firmware Linux</a>. That's the new (QEMU-based, capable of cross-compiling for non-x86) design I'm working on now. The old (UML-based, x86 only) design is described below.</p> <b><h2>Download</h2></b> <p>The current stuff is available from <a href=/hg/firmware>the mercurial repository. That's the new (QEMU-based, capable of cross-compiling for different hardware platforms) design I'm working on now, and where new development happens. To use it, download the tarball and run "./build.sh".</p> <p>The old (UML-based, x86 only) design is still available from <a href=old>the old website</a>, which is hideously out of date but contains a working (ancient) version.</p> <b><h2>Documentation</h2></b> <p>Here's a quick <a href=build-process.html>overview of the Firmware Linux build process</a>.</p> <p>Here is a description of <a href=design.html>the design of Firmware Linux</a>.</p> <p>As always, read <a href=/notes.html>my development log</a> to see what I've been up to on this project. <b><h2>History</h2></b> <p>I've been working on this project on and off since 1999, it's what got me into BusyBox and uClibc and compilers and so on. Now it's where I put together everything else I'm doing (like toybox and tinygcc) to see what actually works and give it a good stress-test. (Eating your own dogfood, and all that.)</p> <p>When the Firmware Linux project started, busybox applets like sed and sort weren't powerful enough to handle the "./configure; make; make install" of packages like binutils or gcc. Busybox was usable in an embedded router or rescue floppy, but trying to get real work done with it revealed numerous bugs and limitations.</p> <p>So I spent about 3 years improving Busybox (and pestering other people into improving their bits), and along the way accidentally become the BusyBox maintainer (at least until the project's crazy-uncle founder showed up and <a href=http://lwn.net/Articles/202106/>drove me away again</a>). The result is that in Firmware Linux, Busybox now functions as an effective replacement for bzip2, coreutils, diffutils, e2fsprogs, file, findutils, gawk, grep, inetutils, less, modutils, net-tools, patch, procps, sed, shadow, sysklogd, sysvinit, tar, util-linux, and vim. I was in the process of writing a new shell to replace bash with when I left.</p> <p>Firmware Linux stalled while I was BusyBox maintainer (2005-2006) due to lack of time, and since that ended most of my spare programming time has gone into launching toybox. But one of the main goals of toybox is to replace BusyBox in Firmware Linux, so as toybox matures it'll naturally lead to more of my time spent working on FWL.</p> <p>My server does not currently run on Firmware Linux. Making it do so is a TODO item. After that, I'd like to get it to the point where I can use it on my laptop. :)</p> <h2>Contact</h2> <p>My name is Rob Landley and my email address is rob@landley.net. My <a href=notes.html>development log</a> is probably the best way to keep track of what I'm working on, although I'll start a mailing list if enough people pester me.</p> </body> </html>