Because yet another Linux
Distro would just be Bloody Stupid! 1. The BSL kernel boots, this can be using the provided floppy image, ISO, or if you like, CF, or if you're feeling really sexy: PXE booting. The
BSL kernel doesn't need to turn around and have support for whatever it just booted from, so basically anything you can get an x86/x86-64 BIOS to boot, you
can get the BSL kernel to work.
This is the second pseudo-release of Bloody Stupid Linux,
which of course has nothing to do with the first release. The first BSL was a 50Mb ISO Live run CD based on DamnSmall Linux.
I had a lot of fun hacking around DamnSmall, and apparently it drew a little attention. John, the lord master of DamnSmall, even was kind enough to link to me off of the DSL relatives page. I got a few mails, most about the image to the right,
about a hundred downloads or so, and some of those were even people I didn't know. However, making a DSL mod distro was just too useful, I needed to do something
Stupid, so here we go with 0.02a:
Introducing Bloody Stupid Linux 0.02alpha
BSL 0.02a is based around an initramfs compiled into the kernel. ( for specifics on setup, take a look at the README) Here's how it works:
2. The kernel unpacks its 800kb root filesystem cpio archive into ramfs. This was compiled into the kernel, and was basically the whole reason for
this project. Once I read the menuconfig description it seemed too neat not to try. Now that's stupid!
3. Init fires off on the mini filesystem (which is built entirely on BusyBox), its a very short ash script that:
4. The 53Mb tarball unpacked to a 170Mb-ish Slackware that runs through its init up to runlevel 3, starting sshd and no other network daemons. The root password,
unsurprisingly is "bsl". The only differences between it and a fresh Slackware install are:
A. Looks to see if there's 256Mb of system RAM available. If not, it makes fun of you and drops to a shell.
B. Tries to get a DHCP lease, failing that it will prompt for the usual: IP, gateway IP, netmask, and the IP of the image server (we'll get
to that in a minute.)
C. Mounts some ramdisk, wget's a tarball of its modules from the image server, unpacks that, and then tries to modprobe all of them.
D. Mounts some more ramdisk, wget's a 53Mb tarball of a Slackware root filesystem from the image server, unpacks that, pivot_root's
over to that and fires off the local Slackware /sbin/init.
Why go to all this trouble? The BSL kernel is basically a life support system for ram and network cards, since it wget's support for everything else on the
machine the kernel is very small. The initial aim was to fit it on a single floppy, then PXE booting became attractive, and really, since the kernel doesn't need
to support whatever it just booted from in order to have its root filesystem, its very flexible. Yeah, I know an initrd can do the same thing, but its more fun
this way. As it stands, BSL makes for an excellent repair system, the framework for a bulk installer, a neat toy, and an alright thin client ( as long as you've got
a gob of RAM handy.)
A. /etc/rc.d/rc.S has been edited not to overwrite /etc/motd at boot.
B. /etc/motd has been changed to display a Bloody Stupid message.
C. /etc/hosts and /etc/HOSTNAME have been set to bloodystupid.bloodystupid.org
D. /etc/rc.d/rc.udev has been chmod'd non-executable. I was having issues with udev and the fact that / was tmpfs.
E. /etc/inittab has been changed so that instead of agetty you just get bash on all 6 of the basic ttys. No need to login, thanks again to Knoppix for making that easy.
Most of all, this whole thing is incredibly hackable. If you wanted to use a different slackware image, just tar one up, name it image.tar.gz and stick it in the /bsl
directory of your image web server. If you need that image to unpack to larger than 170Mb, hack up the init script in the cpio archive, rebuild the archive, then
recompile the kernel... sounds like a lot, but it really isn't. Want to replace the whole image with Debian/SuSe/Fedora/Arch/DSL/Gentoo? Go to it!
For anyone interested in how bad of a DSL/Knoppix Hacker I was, the old 0.1 ISO is Here
Right now 0.1 looks marginally functional.