Thursday, 14 February 2013

The Ultimate Operating System

I know what this seems like, and please, hear me out. I'm not a Johnny-come-lately blurting out 'hey, wouldn't it be cool if...' about this kind of stuff. I've been around the block. I've had a good few years to come to my latest conclusion and without further ado, here it is.

Microsoft should use a Linux base for an OS.

Right, now I've got the awful part of saying it out the way I'll go into detail about how and why I think this would be such a good idea. For everyone. Yes, including Microsoft.

OK, here goes. I'm not going to go into the ideals and fundamentals of open-source, freedom, free software and all the stuff that Linux represents, that's everywhere else, and I really don't have time. For this post I'm only interested in the ideals. Henceforth I present my case m'lud.

Exhibit 1: Desktop Virtualisation

VirtualBox Seamless Mode.
This is VirtualBox with its Seamless mode turned on. Seamless mode allows you to run 2 different operating systems e.g. Windows and Linux together so the applications and windows of one look like they're part of the other. It's not perfect but it's an excellent feature; VMware do the same with their offerings. This came about because a lot of people desktop virtualise. Why do they desktop virtualise? Because no one single OS can do everything. Windows 7 is the best Windows yet (including Windows 8) but it's still missing some stuff that you have to get a Linux distro up and running for. What stuff? I'll get to that shortly.

Exhibit 2: Ubuntu

If it wasn't for Ubuntu, desktop Linux wouldn't have gotten half as much coverage as it has done over the last 6 years. It was once on an upward curve of adoption beyond the growth curves of any other OS but various issues have seen that checked, not least their decision to go with Unity against almost everyone's wishes but that's for another time. It's still there, plugging away, and the enlightened people at Canonical know that tomorrow's bread is buttered in the mobile space so we're seeing Ubuntu phone cropping up here and there. Major issues are lack of a really good enterprise level office suite, Exchange access that actually works (seriously, Evolution has to be the biggest joke of a software product ever written), and not being able to just run anything Windows only.

Exhibit 3: PuTTY

PuTTY is the de facto telnet/SSH client for Windows. Everyone knows about it. Well, almost everyone. Its massive use is due to the fact that people need to SSH into stuff. This news not be earth shattering to many, but in a corporate world where Microsoft Exchange, Outlook, Office, SQL Server, it's easy to forget that actually, the Internet (and therefore the world) runs on Linux:

Exhibit 4: Apache + NGinx

I can't really embellish this a lot more. And it's kinda still exhibit 3. Apache + NGinx drive the vast majority of the Internet, IIS is dying after a brief spurt in 2007, and outside of forced use of Microsoft products in corporate environments where people don't know any better, or where .Net developers are cheap and easy to find, Microsoft isn't really taken seriously.

Get To The Point Already

OK, I've established that Linux is a big player, right? I won't even mention Android with its meteoric growth and 85% global market share. Oops. Linux has some stuff that Windows doesn't and will never have but really should:

LAMP. Yes there's WAMP. But Microsoft needs Apache with modules as they are now. Fully 100% compatible and portable. In config files. With a nice shell to control it.

Pseudo-terminals. I think PTS support is the biggest obstacle in this whole thing. But they're absolutely required. Running Windows on PTS is absolutely required for...

SSH. I cry a little every time I have to remote desktop into a Windows machine. I mean WTF. Why can't I SSH into any remote server? There's been ways to try and make this happen with varying degrees of success, but never perfect. And certainly never built in from the install. SSH with SCP and SFTP are the absolute best ways to remote admin anything.

BASH. There's a bit of an Elephant in this room and it's called Powershell. Some people evangelise it, but it's essentially a copy of the old KSH from Unix with some application specific 'servlets' (modules) available. Some bits are nice, some are horrible, all of it is based on the awful Windows cmd application running inside a GUI with that horrific font they've always used and the ridiculous incoherent tab-completion and weird command history (up then down, WTF?).

Centralised Package Management. Every Linux distro has a way of installing software from the command line with GUI programs if you're that way inclined. Nothing has ever bettered apt / dpkg for Debian based systems such as Ubuntu. Windows has Windows Update - for Microsoft products. Why can't I install and update my torrent software, my video editing suite etc. etc. from the central software repo in Windows? Why can't I just type apt-get install sql-server and it goes and fetches it from the Internet, then installs and configures it for me? Are Microsoft campuses like The Village where everyone who works there thinks it's still 1995?

To Summarise

The above items bring me to my main point in all this. Linux is almost perfect as a desktop and server OS. 

It just doesn't run Windows apps. 

I dream of a day where I don't have to install Windows inside a VM on my Linux machine just to be able to run the unfortunately ubiquitous MS Office suite. The Linux kernel, with its inherent security and stability, with the proven GNU libs and software, with the software that runs the Internet, with everything well thought out, with win32/64 libraries, with everything that just works, is my dream. I doubt it'll ever happen, especially not with Ballmer killing Microsoft day by day, but if I had my way it would. One OS to rule them all. Over and out.