I've moved recently, and the only computer I've got working right now is my old Intel Classmate notebook. It's slow, but it works well for 95% of what I want to do, even if the keyboard is a little small for my giant claws. Anyway, I was running Ubuntu 10.04 Beta when the Xorg memory leak bug hit, and I used that as an excuse to try some stuff I'd been thinking about for a while.
I installed and tried Fedora 13 Beta for about a week. I got really hands on with it, and I have some pros and cons that I'll (hopefully) cover this weekend. I also tried Tinycore Linux, which some of you may never have heard of.
Tniycore is ... tiny: it's 10MB, which puts it right at the bottom of the "small Linux" distros. It's also very core. There are no apps. It boots to a minimal desktop (WM, built for Tinycore) with a small dock (Wbar), and nothing else. Oh, there's a terminal, a control panel, and an app installer (using FLTK). It feels very much more "then" than "now." Believe me, though, it boots fast. From my SD card, the desktop is fully functional in 3 seconds -- my SD card is slow.
By default, Tinycore boots into "cloud" mode, which is like a live CD, but it runs completely from memory. With only 10MB, you can understand that running in memory isn't a problem. You can also guess how blazingly fast it is. When you want to run an app, you open up the apllication installer, search and choose (many are availbale), and click "Install." The application(s) appear in your dock.
Everything continues to run completely in memory. Installing means downloading a TCZ package, which is really just an archive of the binary, along with a hash file and a dependency file. Dependencies are handled automatically. When the package is installed, the original files are deleted to make room in RAM. Starting an application is almost instantaneous, even for a big app like Firefox. Since the package format is so simple, even the newest software (like PCManFM2) is available. The simple package format also means that the application installation takes almost no time, even on my little netbook. Chrome Browser installs in about 1.5 seconds, for example.
You can also set Tinycore to run in another mode, called TCE. If you specify TCE mode on boot and give a location to save, Tinycore will save all your packages to that location so that you won't have to download them again. You can also set applications to be loaded automatically "on boot" or only when first launched, "on launch." Applications aren't permanently stored in the filesystem unless you go to real trouble to do it. They are always freshly installed, either at boot or at launch.
This completely original distribution takes a new approach to computing, and that is on demand. Imagine if my computer just PXE booted to Tinycore -- how fast would it be? With GbE Internet connections coming, and 10GbE after that, how much sense does it make to store my OS on my desktop. Network speeds eclipse most hard disk speeds, even now.
I can see putting up a server in my house for PXE booting a custom image of something like Tinycore, with apps set "on launch" on an NFS directory from the server. This is starting to sound a bit like LTSP (which is a great project I've deployed a couple of times), but everything here is local and running completely from memory. Applications will launch faster than their HD-bound cousins since the network is quicker than my HD.
Why do I say that? Let's look at what happened to me two nights ago. I installed Ubuntu 10.04 over the network, using just a kernel and initial ramdisk as a starting point. It's my favorite way to install when I have a decent connectiion. (I'll write about the experience soon). I download the base Ubuntu system (2 minutes) and installed it (10 minutes). Next, I downloaded the full desktop (6 minutes) and installed (2.5 hours!). This is on a 12Mb/s network with a 30GB netbook HD. Imagine the speed on 100Mb or even Gb Ethernet.
Where does this all end? SaaS, folks. It's coming. On demand computing will be here soon.