I like to break stuff. Why? It means I get to find things out about what I've broken and I get to repair what I have broken. And operating systems are no exception. This past week I was pondering what I should write about here in my open source column. I knew I wanted to do some sort of comparison piece, but wasn't sure what.
Initially I wanted to do a security comparison piece, but I quickly realized that horse had been beaten into the ground. Besides there's just simply no way to definitively say one OS is more secure than the other. To be honest, the minute you put an OS on a network it is insecure. So you can take the most secure OS, use it unintelligently, and it is insecure. You can also take the most insecure OS, use it intelligently, and it is secure. So...I needed to find a different means with which to measure.
My epiphany hit me when a client of ours had an issue with a .NET upgrade. He couldn't get .NET to upgrade and he "needed it". So one of our employees did what just about any consultant would do and uninstalled/reinstalled .NET. But then Quickbooks POS refused to run. AND POS refused to uninstall. AND (after I called in Intuit and they forced the uninstall) POS wouldn't re-install. It was a pickle. A big pickle. But it lead me to this question:
Between Linux and Windows, which is easier to fix when broken? It was an interesting question, but one that should be easy to answer (at least in theory). It was time to set up my testing ground. I decided that .NET would be the obvious choice because there is a similar frame work on Linux - Mono. What would happen if I forced the uninstall of each and then re-installed. Would the applications that depended upon those framework applications still work? It should be a simple test. SHOULD.Removal
The first phase of the test was the removal of the software. Removing Mono was a simple command line away. Removing .NET actually required me to use a third party tool (.NET Framework Cleanup Tool).Testing
The second phase of the test was to see how this extraction effected each operating system. I have to say that both operating systems were affected by the removal of their respective framework. Windows was affected a bit worse, but only because more applications depend upon .NET than Mono. In fact, Windows 7 became a real headache to try to use once .NET was fully removed. On the Linux front, GNOME was quite the similar headache as much of it depends upon Mono. Logging into GNOME even became an issue.
So...success! Both OSes were equally hosed by the removal of their respective frameworks. NOTE: Linux, as an OS, wasn't crippled as any other desktop environment (KDE, XFCE, E17, etc) could be used without a problem.Re-installation
And now came the real test...the re-installation. Would all of those deal-breaking issues go away by the addition of .NET and Mono. Let's hope so.
The re-installation on both sides went off flawlessly. Neither OS complained about getting their framework back. Neither seemed to have any issue. I was getting hopeful.The results
On the Windows side things were either good to go or Defcon 1. Everything from Intuit was toast. It seems (as all you developer types would know) certain applications were written with specific versions of .NET in mind. If you don't have that particular .NET installed, that particular application simply won't run. And you also MUST install the .NET framework in a specific order. Because of that, I let Windows Update take care of the task. That didn't work so well, because it, for some reason, didn't want to install all of the needed versions of .NET. So I re-ran the clean up tool and manually installed all of the versions of .NET.
The manual installation worked much better, but the Intuit applications still did not want to run. No matter what I did, those applications were fubar'd. I could uninstall Quickbooks and Quickbooks POS ONLY with the help of the Windows Installer Cleanup Utility. But no matter what I did, I couldn't get Quickbooks or Quickbooks POS re-installed (not even with the help of Intuit support). If those apps were going to be needed, the machine was going to have to be reformatted and everything re-installed.
On the Linux front everything went smoothly. The Mono framework re-installed like a champ and everything that depended upon Mono fired up and ran as if it was never removed. I could log back into GNOME and use it exactly as I had before.
This is far from a scientific test. Most would actually call this test bogus because the tester started with a preconceived bias as to how the test would turn out. In my defense, I will say I was surprised at much how the removal of Mono effected GNOME. I had anticipated that Evolution would be rendered useless - but nearly the whole of the desktop? No...didn't expect that one.
I realize that everyone has chosen their side and, regardless of how things pan out, few are changing sides. This "test" did little to sway my preconceived opinion that Windows is just easier to break. And, when broken, Windows is also harder to fix. I understand that everyone's experience is going to differ with what I've done here. I have seen people instances where the same person can administer two similar Windows machines in the exact same method and have polar opposite results. So it is possible my experience with .NET was an anomaly. But based on the reaction from Intuit support, they have seen this before...they just don't seem to know how to fix it. I would like to think that any OS and its package manager could handle the remove of something like .NET and Mono flawlessly. Maybe this test only indicates that Linux has smarter package management systems. Or maybe it proves nothing. But from my perspective it shows me that Linux is simply easier to fix.
What about you? Which side of the fence do you fall? Which OS is easier to break and easier to fix?
Jack Wallen is an award-winning writer for TechRepublic and Linux.com. He’s an avid promoter of open source and the voice of The Android Expert. For more news about Jack Wallen, visit his website getjackd.net.