Neil Williams: Embedded Debian still Debian?
The basic Debian debootstrap system is 180Mb or so. Embedded systems need a full GUI installation in 64Mb or less and a basic debootstrap-equivalent system of 10Mb or less.Such radical reductions in size mean radical changes to the structure of the the system itself. The question is, at what point does a modified Debian system become no longer Debian?
Main changes:
- Remove perl and reverse dependencies. There is simply no room for perl, let alone python or any other interpreted languages.
- Drop "Essential" - perl is classed as "Essential" for Debian so dropping perl means modifying "Essential", certainly. However, to give full flexibility for embedded systems, Emdebian is removing "Essential" completely. This means that all dependencies need to be specified in full but it also means that any workable package set can be used. (I'd like to have a configurable "Essential" that can be machine-specific so that a desktop can have a different "Essential" set to an iPAQ. If not, the iPAQ will simply have to do without "Essential" because the level of changes are not likely to be acceptable for the rest of Debian - and frankly, I'd be surprised if it was to be acceptable.)
- Modifying dependencies - cross building allows each package to be modified during the build, changing the options to ./configure to disable components that Debian enables. This can cause a few problems trying to mix-and-match Emdebian and Debian but customised Emdebian packages could help with that.
Main similarities:
- All packages are exclusively from Debian
- All packages buildable from source using packages in Debian Lenny.
- The majority of the Debian package set are available, within the constraints of the embedded device.
So the question is, lazyweb, how far do we go before you would regard Emdebian as no longer Debian?
I now have image tarballs for such a system - 18mb compressed with a full GPE GUI included, 48Mb installed. The scripts could, potentially, work with any debootstrap tarball.
Although based on debootstrap, the Emdebian set can be unpacked separately from debootstrap so that as much of the workload can be done on the build machine as possible. This allows the "installer" to simply copy the decompressed filesystem onto the device, run /sbin/ldconfig and dpkg --configure -a and it's ready to go.
I have a few issues to resolve within the packages themselves and within the available kernel for my test machine but the result is a full GUI installation that will fit on a 64Mb SD card (32Mb is a tad too small) with enough room to spare to add a Linux kernel zImage, modules.tgz, Windows executable/autorun runes and a bootloader. i.e. a possible method of installing Emdebian onto a handheld running Windows CE or Windows Mobile. The only issue is getting the right kernel and modules for the device.
These are important benefits, the cost is whether such an installation still qualifies as "Debian".
At what point does Debian cease to be Debian?
A few days ago, I asked 
Long story short: I'm busy.
These days are quite busy. I'm working (you know, I need to eat so I've a job), to the point that I have many vacation days to take. So I'll be in holidays and offline from friday for 10 days.
I'm still working on
Serious business involving the vmsplice() exploit: The kernel is fixed, hopefully Debian security team will have a fix for production use soon. In the meantime,
Today I've been mostly unwell. Although I have managed to write some minor new code, and watch a little bit of Doctor Who on DVD.
Recently several people have been ranting about Ruby on Rails. I like it, but I wouldn't use it for personal development in a hurry. Deployment is fiddly, and upgrades are annoying.
But one thing that I utterly condemn Rails for is helping to spread bad paging throughout the online world.
So, what is "bad paging" and why is it important? Well cool URLs don't change, right? "Bad paging" is any user-interface which presents you with a limited view upon a changing list of items which is non-bookmarkable.
Consider the following "list". Assume it represents your view of a collection of items numbering 100+. You may only view ten items at a time; clicking "next", or "previous", to navigate your viewport:
I wrote a quick and dirty workaround for the recent
My Apple Powerbook 5,4 just booted for the first time using
