Enterprise Software

Micro distributions are NOT micro kernels

All too often, I read a tech writer who seems to think that a Linux (or some other OS) that takes up a small amount of disk space is a "micro kernel." This is patently absurd. These are micro distributions. Most Linux and BSD based operating systems already have an extremely small kernel, small enough to fit on a floppy disk along with enough configuration files and utilities to get a system up and running and perform a restore.

If you compare these "micro kernel" OS’s like Damn Small Linux and PuppyLinux to a full blown Linux distribution like RedHat or SuSE, what you will see is that they really are no different. In fact, they are usually just a stripped down version of those "fat" OS’s! All that they have done is remove every piece of code that the distribution makers view as "unnecessary".

Indeed, you should be able to take the rc.d and other configuration files from one of these "micro distributions" and put it onto RHEL or SuSE or Mandrake or whatever, and have that OS run in an identical memory and CPU footprint as the "micro distribution."

At the end of the day, a "fat" OS is only "fat" by virtue of how much disk space it consumes. Most of these "fat" OS’s are simply loaded down with fifteen different open source versions of the same type of application. This is where we see RHEL or SuSE have more lines of code than Windows. Windows ships with one web browser, one media player, one basic text editor, etc. whereas a *Nix will ship with five different applications for each task and let you choose which one you prefer.

I have tried working with these "micro distributions" and to be honest, it is a pretty miserable experience. I have tried Damn Small Linux as well as PuppyLinux. It was extremely frustrating to not be able to install any software that was not available as a binary package through the system’s installer, simply because there was no compiler available. *Nix without a compiler is like having a car without a steering wheel. PuppyLinux did have a Perl package, but it was missing most (if not all) of the standard Perl libraries, rendering it useless to most programs (and without a make command and/or CPAN, very difficult to add new packages) that need it. PuppyLinux did not have cron (the standard *Nix task scheduler) so it was difficult to see it being used as the basis for any serious server application.

Anyone who thinks that these "micro distributions" are going to make a huge different has not actually tried doing anything with them that are trivial tasks on a "fat" *Nix. As stated before, the only difference is how much disk space they take up. If an extra gigabyte of disk space is going to make that much of a difference to you, you are in trouble anyways. And if you think that these "micro distributions" are going to help you reduce system resource requirements, you are wrong there too. Sure, many of them are compiled with a 586 or even a 486 target in mind, but at the end of the day, all *Nix distributions are pulling their kernel from the same place (within families, of course).

J.Ja

About Justin James

Justin James is the Lead Architect for Conigent.

Editor's Picks

Free Newsletters, In your Inbox