Introduction and market share
This article was provided to TechRadar by Linux Format magazine. You can get the printed version here.
So the latest iteration of Windows has now been unleashed, and as has become tradition at Linux Format, we pit the Redmond-ian OS mano-a-mano with Linux to determine the ultimate operating system.
Of course, in reality this is comparing apples and oranges: One is a free codebase which can run on most any hardware imaginable, the other is a proprietary product with an undecouple-able GUI that, until recently, has run only on x86 PCs. Our approach will be to consider features from Windows 10 and compare them with like-for-like equivalents from various Linux distributions.
- Also check out: 20 smart new and improved features in Windows 10
Microsoft's new operating system has certainly brought forth a lot of changes, and perhaps the most notable is that Windows 10 will be the last incarnation of the OS. That doesn't mean the end of Windows, but rather the beginning of "Windows as a Service". Updates will be pushed to consumers once Microsoft deems them ready, while businesses will be offered a choice of two release channels, dubbed Current and Long Term which offer more rigid release cycles. Individuals who purchase (or are entitled to a free) copy of Windows will see it supported "for the lifetime of that device".
Windows gone by
One can forgive Microsoft for abandoning its previous strategy of doing discrete releases, it hasn't on the whole worked out well. Windows Vista was received with generally little affection, mostly because of its demanding system requirements, but let's not forget good old user-inertia.
This is going to get us in trouble but Vista did have some good points. Sure, the constant user account control interruptions were annoying, but they were part of a well-intentioned move to introduce proper account privileges to Windows. DirectX 10 introduced new and exciting multimedia features and the new WDDM driver model promised improved graphics performance. But for the most part, the release was widely seen as a failure, ignored by users and businesses alike. At its peak it could only manage a paltry market share of about 21%.
In sum, having a single release of Windows obviates fragmentation problems for Microsoft and upgrade woes for customers. Assuming, of course, that they upgrade in the first place. Many an upgrade-refusenik cites Windows 8 as a reason for staying put and it will be hard to assuage their trepidations and get them to move on. Cosmetically Windows 10 doesn't look or feel all that different to Windows 8.1.
This might just be because we here at LXF towers prefer to work with grown-up operating systems, but if Microsoft really wanted to avoid naming its latest progeny Windows 9, then 8.2 would be a much better title. Obviously it's a secret how different the underlying codebase really is, but digging around the settings you'll find the same Device Manager that has been kicking about since XP. You'll even find win.ini and system.ini files which date back to Windows 3.1.
The Microsoft of today is a different beast to that of yesterday. The company still enjoys desktop dominance (albeit split between its last five desktop OSes), but this is no longer enough, and Nadella is only too aware of it. The real battle is taking place on mobile devices, and Microsoft barely has a foot in the door.
One of the most touted Windows 10 features is platform convergence: PCs, Xboxes, Windows Mobile devices, giant Surface Hubs and even the Win10 build for Raspberry Pi will all run on a unified Windows core, so that one app will run consistently on any of these platforms. For convertible tablet/laptop devices, there is also the Continuum feature, which ensures apps will undergo a seamless UI transition whenever the device is transformed.
When Windows 10 Mobile is released, it will enable users to plug their phones into a monitor, mouse and keyboard and use the handset as they would a regular PC. In July last year Satya Nadella stated there was already 90% API overlap between mobile, desktop and Xbox code.
Convergence has also been one of Canonical's buzzwords ever since the introduction of the controversial Unity desktop. Two Ubuntu phones have already been released, but these rely on Unity 8 which incorporates the new Mir display server. These technologies have a long way to go before they are stable for desktop use, although brave souls willing to try can do so through the Ubuntu "Next" channel. In all likelihood Microsoft will achieve convergence before Canonical does, but the real challenge for both parties (both small fish in the mobile ecosystem) will be leveraging this feature to win over consumers.
Windows 7, released three years after Vista, did a reasonable job of righting some of its perceived wrongs and, credit where credit is due, was generally a much better OS than its predecessor. Adoption was fairly cautious, but by Q3 2011 it had surpassed XP. Unfortunately for Microsoft, many of those XP diehards refused to budge and to this day continue not to do so.
In a way, Microsoft's most successful operating system has become its greatest bugbear. Even today, fourteen years since being released and over a year after it reached its prolonged End Of Life (EOL) the blue and green dinosaur that is XP is still very much alive (but probably not well). No doubt Microsoft enjoys the remunerations that go with expensive post-EOL arrangements, but these resources could surely be better directed elsewhere.
Which brings us to 2012, Windows 8, and the interface formerly known as Metro. While a boon for touchscreen users, desktop users were lost and confused searching for familiars, namely the Start Menu and the desktop. These were hidden behind unintuitive shortcuts or touch gestures. The OS was accused of being in the midst of an identity crisis, with Desktop apps and Metro apps rendered entirely at odds with each other.
Windows 8.1 was released about a year later and, heeding users protestations, backpedalled on many of the design decisions. Reception was much warmer, but traditional keyboard and mouse navigation remained awkward. At the time of writing, there are about as many people still using Windows XP as are using 8.1, with both enjoying around a 13% share of the desktop market.
Borrowed bits and Windows SSH
As people do more and more on their desktops – what with multiple browser windows, Skype conversations, music players and whatever is the latest thing the kids nowadays are up to – desktop real estate becomes a scarce resource. Thanks to high resolution, widescreen displays the situation is not as bad as it used to be, but imagine if you could have group different applications or windows together on a single "virtual desktop".
The latest Windows offering lets you do exactly this, with its new Task View feature. Testing via Windows Insider program found that users preferred to have only icons from the current desktop visible, so this is the default setting. Previews of all available desktops can be accessed with a click/tap of the Task View button or using the Windows-Tab key combination. At the moment this is a little clumsy though, since invoking the keyboard shortcut places the focus inside the current desktop preview. A couple of extra key presses are required to actually cycle through other desktops and the applications running therein.
Virtual desktops have been available on Windows through third party programs since the XP days, but more often than not these just used ugly hacks to hide and group various entries on the taskbar. This confuses a number of applications, which are hardwired to believe there can be only one (desktop, not Highlander). The discerning reader will of course be aware that virtual desktops have been on Linux since the initial KDE and GNOME releases in the late 90s, and that they were around, in various guises, long before that in the days of the Amiga 1000 (1985) and the Solbourne window manager (1990). It's nice to see Microsoft join the party. Better late than never guys.
Task View in itself is also rather similar to Gnome Shell's Activities Overlay (the screen that shows all running applications). Like Gnome Shell, Windows 10 also features a central notification area (dubbed "Action Center"), so that one's tray is spared domination by dancing icons and toaster popups all vying for one's attention.
Typing Being able to livesearch applications (and in so doing get unwanted web results) from the Start bar is a nice feature, although it's been in Unity and Gnome Shell since their inception. The Unity Dash will even categorise various web results into 'lenses', but obviously it loses points because of the infamous Amazon sponsored results. Being able to see all installed applications is a useful feature. It was vaguely present in Windows 8 (and was in fact the only way to find newly installed applications), but again has been present in a much more useable form in modern Linux desktops for about five years.
Windows Powershell has been around since 2006, and the series sees a fifth instalment with the latest OS. One of its most touted features is that it provides something akin to a package manager. This amazing technology lets you source software from a trusted repository and install it without having to run the gauntlet of ambiguously worded questions relating to the installation of toolbars, smileys, or other bloatware. Packages can then be cleanly removed with a simple command.
The blurb from Redmond calls this Software Discovery, Installation and Inventory (SDII). If only we had something like this on Linux. Oh wait. At present, OneGet (being the title of this new tool) is just a collection of Powershell cmdlets that talks to the repository used by the third-party utility Chocolatey Nuget. This provides just shy of 3000 packages just now, an order of magnitude smaller than any Linux package manager. In future there will be many other repositories available, perhaps even an official Microsoft one. But at least you'll no longer need to fire up IE just to download your favourite browser, it can all be done by opening a Powershell window as administrator and typing:
Install-Package -Name Firefox -Provider chocolatey
Replace Firefox with GoogleChrome if you're that way inclined The -Provider argument proved to be necessary for disambiguation with another package called xFirefox when we tested, but hopefully things will have been tidied up now the OS has been launched. Naturally, Microsoft will encourage people to use the App Store as their first port of call for new software, but Powershell gurus will enjoy this method. Even if it's not a patch on Apt or DNF.
Windows as a Service can in some ways be compared to a rolling-release operating system, such as Arch or Linux Mint Debian Edition. At the same time the multi-branch release model for businesses is vaguely similar to Debian's release model. Indeed the whole Insider Preview model is a big old beta test itself, just like what has been happening with Steam OS over the past year-and-a-bit. But none of these are really Linux ideas, and it's actually pretty refreshing to see Microsoft co-opting them. Also pleasant is the fact that Microsoft's new OS is being offered as a free upgrade for those already running a legitimate copy of Windows 7 or later, but this move is largely a deal-sweetener for potential upgraders sitting on the fence.
Another development which isn't strictly part of Windows 10 but which we'll happily include here nonetheless is that PowerShell is soon to be blessed with SSH functionality. So you will be able to connect to your Windows box and use awkward PowerShell syntax to administer it. While it has always been possible to run a third party SSH client, such as the venerable PuTTY, running a server involved installing the Cygwin environment which is pretty heavy duty. Interestingly, various bods at Microsoft have pressed for SSH inclusion, but traditionally they have been struck down by management.
Nadella, though, is much more tolerant of what his predecessor might have called 'commie' technology. In fact, team Redmond are actually going to contribute to the OpenSSH community. In fact, they've just become an OpenBSD (custodians of the OpenSSH project) "Gold" contributor by flinging a five-figure sum their way.
Likely there will be some that look upon this move with scepticism and others all too willing to quote the oft' jested Microsoft strategy: Embrace, Extend, Extinguish. But remember that didn't work with (MS)HTML and it won't work with SSH either. Who knows, maybe we'll even be able to blame Redmond for the next Heartbleed.
Hardware and drivers
If you have an older computer running Windows 7, or even XP, and are considering upgrading to Windows 10, then bear in mind the minimum system requirements:
- 1GHz CPU
- 1GB RAM (2GB for 64-bit)
- 16GB Hard Drive
- DirectX 9 video card (with WDDM driver)
These are pretty modest, especially when one considers the demands Windows Vista imposed back in the day. DirectX 9 has been around since 2004, but hardware from that era will likely not meet the driver requirement. Plenty of marginally newer hardware will though, for example the Nvidia Geforce 600 series from late 2004, or AMD's HD2xxx series from 2006 (which back then was made by a company called ATI).
These are minimum requirements though, don't expect a particularly slick experience using them. 2GB RAM is no match for a few tabs in Chrome, whatever your operating system. Also with an old processor, a 1GHz Celeron from back in the day say, you'll be spending a lot of time twiddling your thumbs waiting for Windows to catch up with itself. It is foolhardy to compare raw frequency numbers between old and new CPUs too – multi-GHz processors have been around for 10 years and an old Athlon 4800 (2.4GHz) pales into insignificance compared to the similarly clocked Intel Core i3-370M found in many budget laptops.
When people begin to consider switching to Linux, they are often concerned about hardware compatibility. The situation here is always improving, but there remain a few unsupported devices: Some older laptop graphics chips are modified by the OEMs, so are no longer recognised by some drivers (although if you encounter such a thing the open source drivers will happily accept your bug report).
Likewise, there remain some budget peripherals such as remote controls and TV cards that lack Linux support. No doubt you will have seen people on forums complaining about dysfunctional wireless cards, but 90% of the time this is due to missing firmware (which can't be bundled with most distributions, but is available in the linux-firmware package).
New converts to Linux often make the mistake of going and manually hunting for drivers. This is almost universally a bad idea, your distribution will come with drivers for pretty much all hardware that is supported on Linux in the form of loadable kernel modules. These will be loaded automatically as soon as each bit of hardware is detected, and while they might on some occasion need some minor configuration tweaks, rare is the occasion that one would want to replace them.
It's easy to forget that driver problems on Windows arise too. Perhaps now so more than ever thanks to Windows' driver signing requirements. A motherboard will require drivers for its chipset, network interface, RAID controller, audio device and various other obscurely named platform drivers. These will be available from the manufacturer's website, alongside a poorly translated manual. But you'll need to know the precise motherboard revision or you'll risk a whole world of pain. Such downloads often run to hundreds of megabytes, due to various manufacturers' insistence upon bundling all manner of bloatware.
Linux drivers, having to undergo the scrutiny of the various subsystem maintainers (and possibly even Linus himself) are guaranteed to be as efficient and well-coded as available hardware knowledge allows.
The difference is that we've only been using the Windows install for about a week, once a few apps and a few (thousand) obscurely titled runtime libraries are installed the age-old curse of Windows decline will kick in. Our Arch install has been used pretty much every day for over a year, has all manner of long-forgotten packages installed, and remains blazing fast.
One exception used to be playing Flash videos, which rapidly crippled the system. This was easily solved by uninstalling the Flash plugin because it's entirely unnecessary nowadays and serves only as a vector for the delivery of viruses. A modern computer is required to enjoy a smooth-running Windows 10 – running it on a virtual machine proved particularly painful.
By comparison pretty much any computer built in the last ten years will happily run a lightweight desktop, such as LXQt or MATE, with no fuss whatsoever. Add to that a slightly more modern graphics card (one supporting at least OpenGL1.4 and having 128MB of video memory), and it will easily manage a standard Ubuntu install (the stated minimum requirements are 1GB RAM and a 1GHz CPU).
Newer graphics cards will tend to perform better on Windows on release, but eventually the Linux drivers catch up performance wise. They are usually available quite soon after a new graphics card launches too, for example Nvidia already provides drivers for the high-end 980 Ti and Titan X cards.
That said, Nvidia's new hardware requires signed firmware blobs to work, and at the time of writing there seems to be some paucity in providing these to the open source Nouveau project. Hopefully this will all be resolved soon. AMD on the other hand is much more friendly towards the open source Radeon driver. Not only does the company provide specifications, it actually pays people to work on it. AMD's latest innovation has been to introduce a common kernel module for both its open source and proprietary (Catalyst) driver offerings, with the latter's naughty bits annexed to a separate userspace module.
Beyond the desktop and Windows IoT
The next edition of Windows Server won't be released until next year, but there are Technical Previews available. The big new feature is in Active Directory Federation Services (ADFS) which allows users from foreign directories and databases to be authenticated by Active Directory domains. ADFS itself has been part of the OS since Windows Server 2003 R2 and enables two realms to establish mutual trust so users from one realm can use their credentials on the other in an entirely fuss-free manner.
There are already commercial solutions for authenticating Linux clients against an Active Directory domain controller, and it's possible (though convoluted) to do it using FOSS software. Active Directory uses LDAP and Kerberos which are both open standards. These need to be tied together with Samba and PAM and the domain controller will likely need tweaking also. In the new edition, this process ought to be much more streamlined.
Centralised authentication in a pure Linux environment can be achieved using the aforementioned protocols, or others such as SASL or NIS. All of these approaches have their advantages and drawbacks, and people coming from a Microsoft background may struggle to recreate the more advanced functionality of Active Directory.
It's important to note that Active Directory provides much more than just authentication, it handles all the related arcana too – trust, certificates, domains and group policies. Many of these are only relevant on Windows systems and the rest can be dealt with using other Linux tools. A common tactic in heterogeneous environments is to have non-Windows machines authenticate to a directory server running something other than AD but which is capable of syncing to and from it, a method known as deflected integration. Version 10 of Internet Information Services (IIS) is included in Windows 10, bringing with it support for HTTP/2.
Naturally, our top three Linux Webservers (Apache, nginx and lighttpd) have had support since not long after RFC7540 was published in May. And they were supporting SPDY, essentially the parent protocol of HTTP/2, prior to that. Before the 7.0 release, IIS was something of a laughing stock, being little more than a bloated web server that didn't allow more than 10 simultaneous connections.
It has grown up now though, incorporating a modular extension system and being much more scalable on multiprocessor systems. To improve performance IIS uses a kernel-level driver for processing HTTP requests. An IIS vulnerability discovered in April allowed attackers to achieve remote code execution on unpatched systems by exploiting this driver and its privileged status. Linux has had web server bugs too, but its architects know what does and does not belong in the kernel.
Linux remains the undisputed champion of the server world, which is why it runs most of the internet. We have world class web servers and databases, industrial grade distributions (such as Red Hat Enterprise Linux or the free CentOS) and the advantage of open source on our side. Linux virtual machines tend to be much cheaper than their Windows counterparts, and are certainly much more efficient thanks to its modular nature.
Windows IoT Pi Edition
Windows Server Core, introduced in 2008, provided a minimal Server OS sans the Explorer shell and many other features not required by most people. Continuing this theme, we now have Windows 10 IoT core, aimed at small Internet of Things devices. At present, builds are available for five devices including the Raspberry Pi 2.
We're pretty far from impartial here, but we think that reducing the Pi to minion status in this way seriously detracts from its appeal. Being able to boot into a proper desktop (even if it is slow and clunky on the original Pi), or run code straight from the python interpreter, helps new coders appreciate that this diminutive board is very much a fully-functional computer.
Of course, if you're a seasoned embedded applications programmer then such a desktop is just going to get in your way. There are all manner of Linux distributions designed to be run on embedded devices, including Yocto Sancto and Angstrom. It's also worth mentioning that there are already a huge number of embedded devices already running Linux in one form or another: sat-navs, set-top boxes, the TVs which the latter are hooked up to, the list goes on. The latest tux-flavoured innovation in this area is Snappy Ubuntu Core, which is aimed at the cloud as well as Things.