BoøkWürm is my answer to “what shall I do with this old laptop”? Turn it into an eBook (PDF/HTML/Palm Doc/CHM file) reader. It’s pronounced buekweurm. Sort of.

I’ve always wanted to cut my own Linux system from scratch, and at least one of my open source projects must make gratuitous use of the Heavy Metal Umlaut.

The old laptop in question being a Sony Vaio PCG-735. The essential facts being a Pentium 233MHz MMX, 32 MB RAM, 2.1GB HD, Neomagic MagicGraph 128XD graphics adaptor with 2MB video memory @ 800×600, Ensoniq ES1879 Sound Blaster Compatible audio.

It is a Windows 98-vintage laptop, and would probably run that venerable system moderately – I haven’t tried. I’ve tried various Linux distributions on it, mostly the older ones. Red Hat 7.3 worked reasonably well, and RH 9 was eventually coaxed onto it. I recall trying Ubuntu 4.10, but ’twas rather too much for the poor old thing. There is the old Ubuntu Mini RAM HOWTO that explains what to do. I tried modern (7.10) Ubuntu, and even Fluxbuntu, but the installer wouldn’t even run.

This strikes me as Just Plain Wrong. I’m sure I recall, back in the early days of Linux, that one of the goals was to make it run on older hardware, suitable for systems repurposed and running in the developing world. If Linus stated that anywhere, he seems to be distancing himself from it now, which is fine… but surely, an installer should be able to run in 32MB.

A system of this spec isn’t going to be running, or Eclipse for Enterprise Development. What could I do given a minimal system?

I pine for the Psion SIBO system, one of the most compact, elegant platforms I’ve used. It’s astounding what Psion’s engineers made that system do. The Series 5 just wasn’t the same. The Palm Pilot also – I use a Handspring Visor – just the right combination of “just good enough”, squeezed into a useful form factor.

So, I could develop PDA-like functionality, or perhaps an eBook reader – a decent small PDF reader (Evince?), a small modern browser (Dillo? Kazehakase?), a small media player (XMMS? Perhaps that’s too big now…), and a simple launcher and file manager (I’m thinking of taking Thunar and perhaps a lightweight window manager / taskbar). I’m not into asceticism; Fluxbox might be fine for geeks; it’s not an end-user WM. Thou Shalt Not Edit Configuration Files.

I’m concerned about speed – this isn’t a fast system – boot time is important. OK, the Psion 3c had superb power management, designed by geniuses, and the OS had “Instant On”, which I’ve only seen done well these days in the Mac laptops. I’d imagine that suspend will probably be painful on this laptop – so ultra-fast-boot is a goal. When booting my Ubuntu Thinkpad T21, I have enough time to read several pages of newspaper before it’s ready to do anything. So, I’d want to use readahead to load all the necessary files, and to reorder the hard disk so that the initial boot files are contiguous.

I haven’t profiled it, but the traditional init, with its mass of shell scripts, awk/sed/grep/etc. – can’t be fast, surely? How much of that stuff does one actually need? So, develop a system starter app in a relatively high level, fast language (Perl? Python? Ruby might be too slow.)

So, let’s start from first principles. Let’s assume we’re building an embedded system, not a desktop OS distribution.

I’ll use an ultra-cutdown Linux kernel, uClibc and busybox, busybox’s init or perhaps initNG, my own system starter, in the system language of choice (I’d so like this to be Ruby)

As soon as possible, go graphical, and stay there. It might be slow, but I’ll use the frame buffer, and X’s frame buffer server. Launch the WM, and launcher/desktop file manager.

Try to use pure GTK apps rather than any other GUI library; there’s no need to have more than one.

More as this project progresses…

One Response to “Project BoøkWürm”

  1. […] gets the funky foreign letters in BoøkWürm correct; and even inserted that as a hypertext link to that category. As I mouse over the link in […]

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s