Updated: April 9, 2010
Some time ago, I received an email from a user asking me what operating systems I was using, and more importantly, the reasons behind the decision to use them. I have mentioned various bits and pieces of my arsenal on many an occasion, as well as the personal and business justification for making it the way it is, but I've never given it a proper dissertation.
Well, here it is. The focus in the said mail was on Linux distributions, but I decided to include the proprietary systems into the article, to make the picture as complete as I can. If you're interested in learning what makes my computers tick, lean back and enjoy a story about the computing whims of a conservative geek, me.
The most important thing
Personally, I try to make computing decisions based on actual need and future demands. Some people probably buy computers and an accompanying operating system without much thought about growth, expansion, scalability, flexibility, and other fancy words. I try to think ahead and see how well an existing setup can serve me five years ahead. In other words, I'd like to be limited by hardware rather than software. When it comes to replace the setup, I want this to be because the hardware has been obsoleted and it's time to move on.
Nevertheless, this is just a background noise to the most fundamental drive behind my decisions. In general, both hardware and software are designed to suit a wide range of users, therefore if you're not too picky, you can get by with a whole palette of combinations without much trouble. But if you're like me, you want to get it absolutely right.
For me, the most important ingredient is stability. Stability means many things, but it comes down to a blend of transparent, uninterrupted usage and a robust design. I have zero tolerance for errors and problems in the operating system and take a long time warming up to a setup. And if problems do crop up down the way, I never forget the lesson.
This makes my choices rather spartan for most part. Visual part plays little importance. For this reason, I run production Windows machines adorned with the Classic View dating back to Windows 95 and Linux machines with no Compiz and only the most basic theme. The emphasis here is on the word production, because test machines and test operating systems in multi-boot configurations are configured with all kinds of bells and whistles. As a corollary, my fanatic insistence on stability has a few by-products:
Little or no tweaking
I do not believe in changing system defaults in home environment. Any such change is usually of marginal impact on performance and introduces more problems than solutions. Kernel optimization is a sort of a Voodoo magic and it cannot be translated easily from huge business networks into a one-man shop.
Small changes can be made, usually revolving around a few innocent services or startup programs, but I do not change the CPU affinity, the dirty ratio or anything alike in a home environment.
Tweaking also means being able to remember, three years from now, every little change you made. It's virtually impossible. It's best to stick to the defaults. While they offer maybe 90% efficiency, they also remove 90% unpredictable errors. It's a tradeoff.
Best performance boosts are done by simply adding hardware - more RAM, a better GPU, a second hard disk. Scalability at home is easy, if planned correctly.
Backup before any change
I never, ever change system settings without a full image. It's almost a religion. Accordingly, any introduction of changes is always accompanied with a mandatory wait period, at least a month long, during which I follow up the news headlines carefully for any disaster outbreaks. I prefer to let the major issues be smoothed before committing updates to my machines.
In practical terms, Windows updates are manual and performed only when needed. Linux kernel updates are delayed for several weeks. Drivers updates are far and few in between. If it works, why break it. A good example is the recent issue with Nvidia drivers. No BIOS updates, ever. Sounds silly and ultra-conservative, but it has served me well.
Ah, another one. Extremely important. Windows XP, 2001-2014 at least. In comparison, many Linux distributions have a tender age of 18 months, which is hardly enough for anything, to say nothing of the biannual cycle. If you wait a month or two after the official release, this leaves with you with just a few shorts months of getting used to the operating system before a newer version comes out, with the constant dread of potential regressions.
For this reason, I am loath to upgrade to new editions and usually skip releases. The upcoming Ubuntu 10.04 Lucid Lynx Long-Term Support (LTS) release, which offers three years of support, sounds like an interesting prospect, although optimally, operating systems should have a decade-long life cycle. Just like cars. Now, let me elaborate on the choices.
A complete separation between desktop usage and business/work/server need. I would like to focus on the desktop in this article. In fact, I will not talk about my work setup. That's a different story altogether. That said, I do want to clarify that I consider either RedHat or SUSE, either in their commercial or free, unsupported format, namely CentOS and openSUSE, suitable platforms for server use. Now, desktop ...
Choice 1: openSUSE
openSUSE has always run well for me, stable and sturdy, with proper German upbringing. Backed by a large company, Novell, openSUSE inherits some of the business no-nonsense spirit, which makes it ideal in my book. Currently, I'm running the latest release 11.2, furnished with Gnome desktop.
I mainly use openSUSE for serious study of new technologies, including kernel crash dump analysis, profiling tools, virtualization, and more. Additionally, it is a fairly standard desktop, with everything you want or need.
Choice 2: Ubuntu
Ubuntu is my other choice. I'm currently enjoying Jaunty on several machines and am looking forward to Lucid Lynx. Karmic has not proven stable enough for my production machines, although it runs on several test instances.
I like Ubuntu because it generally works quite well, it's fairly polished, it has decent support and lots of software. The popularity and availability of Ubuntu make it less likely to vanish overnight. I do not favor small distributions with one-man development teams.
Ubuntu has lots of potential and promise, which is why I forgive some of the glaring issues that crop up occasionally. However, any such mistake automatically disqualifies the current edition from becoming a production version.
Jaunty runs a whole of three instances on my new laptop, and it's present on several other hosts. Jaunty serves me mainly for writing articles, virtualization, as well as gaming. Jaunty is my main system for game exploration and online gaming, as well as all kinds of common desktop tricks. I tend not to do any kernel-related work on Ubuntu, because it is not a classic Linux and most of the configurations differ from the mainstream.
Why not CentOS?
Why not indeed. The main reason I'm not using CentOS as a home distro is the fact the distro kernel is a little old and does not fully support the latest range of devices. This obstacle can be overcome, but I do not like to invest too much time tweaking. I prefer plug-'n'-play setups.
But ... I am feeling tempted and looking forward to CentOS 6. It has always been very stable and I frequently use it for the study of kernel, coding and exploration of high-end system administration tools and utilities.
Then, there's also Scientific Linux, a RedHat fork on steroids, which has all the bits a modern user might need, so I'm currently testing this distro as another addition to my home arsenal. There's the seven-year support to consider, as well.
Windows operating system
I run Windows XP SP3 on two machines. Installed as SP2 in 2005 and 2006 accordingly, the machines run as nimbly as the day they were configured. No timely slowdown as most people complain. Simply because such things do not happen on their own and always result from inefficient user changes. With virtually static setup save for applications updates, these two Windows hosts are top notch. Just for reference, one of them has a 15-second boot, not bad considering the age and all.
Well, several reasons: 1) habit 2) why not? It works fine, so why not use it. There's no problem running both Windows and Linux and enjoy the advantages of both. I don't find Windows to be slow or riddled with spyware, it's users who are. As such, it's a fair operating system. Lastly, I enjoy gaming quite a lot, and some games are only, still, available for Windows.
Software wise, there are a few programs that have no equal Linux alternative. These include the excellent IrfanView image viewer, the omnipotent Notepad++ text editor, Google SketchUp, my wife's interior design programs, and maybe a few others.
A properly configured Windows XP works just fine, including going without a reboot for a month or longer. Part of the overall stability scheme. If you don't irritate your computer, it will serve you well. I use my Windows XP for writing a fair deal of articles for this website, lots of gaming, including LAN parties with friends, and 3D art.
I am testing Windows 7; in fact, have been doing that for a year or so. Still, I am not yet fully convinced I want it, although the 64-bit edition and XP Compatibility Mode are quite appealing. I will probably install Windows 7 on the next machine I buy, to be able to play the latest games. Other than that, there are no critical incentives, yet.
Not sure if I should talk about these, but you may appreciate the extra word of advice. There are several things I always pay attention to when buying machines, and these include:
Max. RAM + many disks
RAM goes a long way. And so does a pair of disks. Many people place too much emphasis on CPU, but it's the slow disks and too little memory that choke up the systems. Lots of fast disks will make the biggest difference there is. CPU is of secondary importance unless you either compile like mad or encode HD movies all the time.
Nvidia graphic card + Nvidia official drivers
I like to get the last bit of juice from my cards. This is why I do not like open-source drivers. While the effort is benevolent, it's inadequate as long as the open-source drivers cannot match the complete set of features present in the closed-source drivers.
As you can see, my setup is driven by conservative needs, which is why you'll never see me overclock, pour liquid Nitrogen onto the CPU, flash my BIOS (sounds naughty), or run the latest bleeding edge alpha releases.
Both Linux and Windows serve me well. I try to take the best of both worlds and use them to my advantage. Ubuntu, openSUSE, with CentOS wooing me, from the Linux side. Windows-wise, XP and maybe, one day, the seventh edition.
Stability first, everything else later. And I'm spent.
Thanks to Bob for his suggestion!