In the first of a monthly series, Packt columnist Mayank Sharma explores some of his favorite and perhaps lesser known Open Source software...
I am a big fan of Live Linux distributions that run off a CD. They have carved their place in the Linux desktop space, mostly thanks to one distribution—Knoppix (www.knopper.net/knoppix/index-en.html). Due to its compressed file system, excellent hardware recognition, and Debian roots, Knoppix has not only spawned a whole breed of Live CDs, but a lot of Live CD enthusiasts and developers as well.
For a while Live CDs were all about stuffing the maximum one could in 700MB of CD real estate. All this while new hardware was quickly outdating a lot of computers in many homes, offices, and educational institutes, which couldn't accommodate the latest Linux distributions and Open Source software. This led to a new breed of Live CDs, which could fit inside a business card sized CD. Puppy Linux (www.puppyos.com), Feather Linux (http://featherlinux.berlios.de), Damn Small Linux (http://www.damnsmalllinux.org), Austrumi (http://cyti.latgola.lv/ruuni/index_en.html) are some of them.
Of these I am blown away by Puppy Linux. It's placed 19th on Distrowatch's list of popular distributions. It loads completely in RAM, which does take a little while, but once loaded, applications start in a matter of seconds on all sorts of hardware. For a minimalistic distro with a 60MB ISO, Puppy has every application a desktop user would need; word processor, browser, desktop publishing applications, email client, instant messenger, media player, and much more.
If that doesn't impress you, maybe the fact that if you burn Puppy on a CD-R, it can save all your information and work back to the media—surely will. Puppy will also run happily off your USB key, if your BIOS supports booting from USB devices. It's got two package management systems, PupGet and DotPup that can be used to install any application not bundled in the ISO, even when running within the Live CD environment!
But all this is thanks to the innovation behind the scenes. Puppy Linux isn't based on any distribution; rather it has been written from scratch, along with the various scripts under the Setup menu to get everything working. Even its package managers are written specifically for Puppy Linux. All these result in Puppy being one of the best integrated distributions out there.
It's also one of the easiest to switch to, for a Windows user. The desktop and menus makes it look and feel similar to the Windows operating system. Everything can be setup without touching the keyboard. If you still can't find your way around, Puppy packs a lot of documentation to help users get started. There are also many free online video tutorials (http://rhinoweb.us/) that show basic installing, customizing, and configuring operations.
Puppy Linux is an excellent choice for powering the plethora of dated hardware in countries with strapped IT-budgets. By utilizing existing hardware, it not only saves the hardware cost, but being available for free also saves software costs. Its developer, Barry Kauler recently wrote (http://www.puppyos.com/olpc/) why he thinks Puppy would make an ideal OS for the (http://laptop.org/) One Laptop Per Child (OLPC) project. His experience of running Puppy on a 433MHz box with 128MB Compact Flash card and no hard disk is impressive, once you read the benchmarks. The box boots up in about 46 seconds and powers-off in about 20. While running, apart from big applications like Mozilla Seamonkey, AbiWord, GNumeric, and Inkscape, which take between three to twelve seconds to start, all other small applications take about a second or less!
The Puppy Linux team is currently working on the next revolutionary version Puppy 2.0, http://puppyos.com/development/howpuppyworks.html, which just hit beta and will soon be released. Barry was kind enough to find time between developing Puppy and burning CDs for people who have purchased Puppy Linux CDs and made donations, to answer a few questions on what makes Puppy one of the best distributions.
Mayank Sharma: Barry, can you please give us some background information about yourself and Puppy?
Barry Kauler: I'm a retired university lecturer, now doing a little part-time work. Puppy started about three years ago as a fun thing to work on sometimes, but has now taken over my life. There are several other guys heavily into development and testing, the core team, but there are lots and lots of others who contribute, like provide site hosting or user reports.
MS: Puppy has come a long way since its inception. From a little known minimalistic distro to one of the most user-friendly and active ones, how has the journey been?
BK: Fun! When it stops being fun, it will be time to do something else. The first release, v0.1, was, I think, only 19M, a Live CD with Xvesa Kdrive graphics and web browser. I've been learning as I go along, and Puppy has steadily improved. Although the Live CD ISO has grown in size, the latest Puppy2 beta release is 70M—it is still remarkably small, which is something that I take great pride in.
MS: How important is a community to an open source distribution? You are one of the most popular ones with a very active forum http://www.murga.org/~puppy/, an additional community supported website http://www.puppylinux.org/, and community releases http://www.murga.org/~puppy/viewtopic.php?t=8028. What would you like to recommend to upcoming Open Source hackers on creating a community around their "product"?
BK: I think it is important to take the time to be part of the community, get onto the forum, and communicate. We have a reputation for being friendly to newcomers. Of course there have to be frictions sometimes, but the basic availability, responsiveness, and friendliness present—bind us.
MS: Why did you decide to start from scratch? We know one of the down-sides to this is the lack of hardware support when compared to DSL, which is based on Knoppix. And the obvious up-side is better structure and organization which lets you pack a lot more stuff.
BK: Yes, if you look at the boot up and shutdown scripts in Puppy, you will see they are unlike any other distro. I wrote it from scratch; well not quite, right back at the beginning I read the "Boot disk Howto" to create the very first Puppy Linux on a floppy disk, then moved it to CD. I thought all existing distros were too bloated and slow. Also, it's a bad habit of mine, reinventing the wheel.
When people ask me if Knoppix or DSL are superior in some way, I would respond that they have better hardware detection, including the huge Debian package repository. But, even those [differences] are getting eroded—look at the latest Puppy2 beta (uploaded May 24), it has wonderful hardware detection. We even have an experimental Debian package installer, with dependency checking. But be careful of that one as Puppy has some differences from a Debian system, so we will probably have to test and certify what Debian packages work properly on. You don't even have to install Puppy to download and use packages.
MS: One of the things Puppy is known for is its custom scripts for doing a variety of things like hardware configuration, adding apps, customizing puppy, etc.
BK: Doing it all ourselves, and now it's not just me, but others like MU, pakt, rarsa, petersieg, johnmurga, lobster, guesttoo (forum names), plus many more—we are making it hard for ourselves not just grabbing ready-made solutions. But, we think we end up with something that works better, is streamlined, and most importantly we understand all its nooks and crannies.
MS: You recently wrote about Puppy being an ideal candidate for the OLPC project? What do you feel is the necessary criteria a distribution should match for such a project?
BK: Other small distros are good candidates too. In the case of OLPC, the distro needs optimizations to work from Flash memory; no hard drive. Read-only compression is needed, plus means of limiting writes to the Flash memory.
MS: Tell us something about the malleable nature of Puppy. Can it be used on a CD, a flash drive, a DVD?
BK: Yes, and Puppy2 is trying to structure that malleability even more, that is, the boot/shutdown scripts are designed such as to enable further adaptability to new configurations/hardware.
MS: Puppy has two very good package management systems; Pupget—http://puppylinux.org/wikka/PupGet and DotPup—http://puppylinux.org/wikka/DotPup. I think having two sources for getting packages (official and fan-contributed) is a very good idea from the user's point-of-view. How did these evolve? And how have they grown over the years? What about quality checking of DotPup packages?
BK: As mentioned above, I have this bad habit of reinventing the wheel, so I also developed the Pupget package management system from scratch. Just prior to that, GuestToo came up with the DotPup system, which is simple and easy for contributors to create packages. Puppy project management is very casual; when someone comes up with a good idea, I encourage them to go for it, and when it looks good I may incorporate it into Puppy. I recognize the value of individual creativity, and have a basic dislike of committee management.
MS: What advantages (and disadvantages, if any) did the UnionFS (http://en.wikipedia.org/wiki/UnionFS) support bring along?
BK: It still has some bugs, elusive ones, but overall it is great.
MS: In how many languages can Puppy be installed?
BK: Originally English only. But, there is now a Vietnamese Puppy, and we just announced a Chinese Puppy. Recently an internationalization project was started to further improve this situation.
MS: What's new and great in the upcoming Puppy 2.0 branch?
BK: Too much to explain! Heaps and heaps of great things! The best thing is, go to my Developer News page and read down (it's a lot of reading!): www.puppyos.com/news.htm
Mayank Sharma is a freelance writer from New Delhi, India. He is blown away by the power of Free and Open Source Software and its usefulness to developing nations.
Check out his blog at http://www.geekybodhi.net/