How Microsoft shattered Gnome's unity with Windows 95
Who needs prior art when you've got lawyers?
Feature There never will be a year when Linux conquers the desktop, because desktop computers are going to merge into tablet-style touch-driven devices and disappear. But desktop Linux was getting close, until Microsoft derailed it a few years back.
The GNOME project’s recent release, GNOME 3.8, served to remind me of the significance of Microsoft’s actions.
That’s because GNOME 3.8 introduces a new GNOME desktop, something it’s calling Classic Mode and which the project describes as "the traditional desktop experience".
GNOME Classic Mode brings to six the total number of GNOME desktops and takes the Linux and open-source community down a path of fragmentation they seem only too willing to venture down.
But if there was one product that nearly put a single FOSS desktop onto tens of millions of PCs, it was GNOME 2 that was released in 2002. According to the GNOME Project, GNOME Classic Mode is a return to GNOME 2 "with the underlying power of GNOME 3 technologies" and "enhanced" by GNOME 3's growing library of extensions.
You can thank Microsoft for this fragmentation.
Four years after GNOME 2002, in 2006, Microsoft started signing no-sue patent-sharing pacts with Linux companies. The following year, it started to make threatening noises about "the Linux desktop including OpenOffice" infringing a worryingly precise 235 patents. It didn't sue anyone, but then, who could it prosecute? No single organisation is responsible for the Linux desktop: it's the work of multiple independent groups of developers, often volunteers, many in loose, non-profit cooperatives.
Of course, the big question – worth an awful lot more than $64,000 – is: was Microsoft correct? Does the Linux desktop stack infringe Microsoft patents?
To answer, we have to look at what "the Linux desktop" means. There are dozens of window managers, but in 2007 there were only a few complete desktop environments – KDE and GNOME being the main contenders. So let's consider what they have in common: windows, obviously, with a menu bar inside each one.
Microsoft's Windows 95 (Credit: Guidebook Gallery)
KDE 3.5 from 2007 - click to enlarge (Credit: KDE.org)
At least one "panel", by default along one long edge of the screen. In the panel's left corner, a button that opens a hierarchical menu to launch programs, shut down the system and change settings. Optionally, next to that, some shortcuts for launching often-used apps, then an app-switcher. In the right corner, a collection of status icons for sound volume, network status and so on, plus the clock.
It's an absolutely standard, generic layout. In the late 1990s, loads of OSes used something much like it: OS/2 Warp 4, BeOS and QNX Neutrino, pre-KDE Linux window managers IceWM and FVWM95 – the latter built on FVWM v2 to make it look like Windows 95 from Microsoft.
You need a really long memory (and to be quite old) to remember what new features were first seen in the 1994 beta of what was going to be Windows 4. These included the "Taskbar", along the bottom edge of the screen, the "Start Menu"with a hierarchical list of installed apps, and the "notification area" in the bottom, right-hand corner that contained status icons and the clock.
It also inherited features from earlier versions of Windows: menu bars inside app windows, as opposed to the menus of most existing OSes. Windows 3's "program groups" become submenus of the Start menu instead, as categories containing entries for the main apps of each software package.
I could go on, but you get the picture. Everything that unified GNOME 2, KDE, Xfce and pretty much every other desktop GUI in the world originally comes from Windows 95.
If you look at the handful of surviving GUIs that predate Windows 95, such as RISC OS (1987), Mac OS X (based on NeXTStep from 1988), AmigaOS or GEM (both 1985), they're totally different. Look at screenshots of long-dead early GUIs from the 1980s, such as SunOS's SunView or Smalltalk, and they don't even have features like menu bars or buttons on window title-bars at all – Apple invented most of that stuff with the Lisa and later Macintosh projects.
Forking back to the future of 2002
There isn't even prior art for most of the distinctive features of Windows 95. RISC OS already had its Icon Bar, but that doesn't have an app launcher or a way to switch windows. NeXTStep had its Dock, but that doesn't have menus or a status icon. Neither did window-switching. Windows 95 might have been inspired by these – but it implemented them rather differently.
The RISC OS 3.7 desktop from the late 1990s (Credit: Guidebook Gallery)
The problem is that GNOME and KDE and so on didn't. Their versions are precise replicas of Windows 95.
The Linux community seemed unconcerned by Microsoft's patent claim, but what happened next is significant.
Novell, owners of primary KDE backers SUSE, signed a patent-sharing deal with Microsoft. Xandros, at that time a significant Linux vendor on the back of Asus' EEE, had already signed in 2006. Red Hat (still a primary sponsor of GNOME development) and Ubuntu (the leading desktop GNOME distributor) wouldn't sign.
In 2008, GNOME was labelled as "decadent" and a radically different Version 3 was announced. Ubuntu was initially involved, but when its proposals weren't adopted, the company went its own way and developed the Mac-OS-X-like Unity desktop.
In 2011, the two leading GNOME distributors both switched to new desktops. The similarities are conspicuous. Both have removed anything resembling a Start menu or taskbar, replacing some of this functionality with NeXT/Apple-like icon docks down the left hand screen edge, plus full-screen, search-driven app browsers. Both have rearranged window-title-bar buttons and Ubuntu has even banished in-window menu bars. Both have been wildly controversial and are widely disliked.
The same year, SUSE declared that KDE would once again be its default desktop.
Since then, GNOME has forked repeatedly.
The biggest of the Ubuntu remixes, Linux Mint, is carving out a new niche for itself, offering more "traditional" – meaning Windows-like – GNOME-based desktops. First came its own Cinnamon desktop, built upon GNOME 3 but with a taskbar-and-launch-menu shell. Mint is also the only mainstream distro to offer MATE, a fork of the GNOME 2 codebase.
MATE is the only one of these desktops to run happily with 2D graphics – GNOME 3, Unity and Cinnamon all require 3D compositing, rendered either in hardware or (more slowly) in software. GNOME 3 used to offer a non-composited 2D desktop called "Fallback Mode", which looked and worked much like GNOME 2, but was based on Gtk3 and much less customisable. However, GNOME 3.8 has now dropped this feature, resulting in Fallback Mode quickly being forked to create the Consort Desktop Environment.
In its place, the GNOME project has announced Classic Mode, part of the GNOME 3.8 update. This is based on the 3D-composited Shell but with extensions to provide a taskbar and an app menu – in other words, exactly what Mint has done with Cinnamon, but developed separately.
When the first Long Term Support version of Ubuntu was released, there was a single desktop used by every major Linux distribution. As Microsoft rattled its sabre over the following two years, Novell, Linspire and Xandros – all KDE-centric vendors – signed their patent deals with Microsoft.
Six years after Microsoft's threats, there are six different GNOME desktops: GNOME Shell, Unity, Cinnamon, MATE, Consort and now Classic Mode. As a result, developer effort is spread pretty thinly, and the users are revolting.
The phrase "divide and conquer" - of splitting your enemies up in order to reduce their combined threat - is attributed to many mighty rulers down history, but it comes to mind when looking back at the Linux desktop. And it's a strategy that suited Microsoft because it won without spending a cent in court.
Hang on, though, aren't most of these GNOME spin-offs very Windows-like? Aren't they at risk?
No, not any more. Microsoft has taken no legal action since 2007 and thus under the legal principle of laches it has forfeited the right to sue. Indeed, with Windows 8, the company itself moved away from the classic Start Menu-based desktop to a touch-oriented one.
Doesn't matter, though – the job was done by the time GNOME Shell and Unity came out. Meantime, it's been good news for the Xfce and LXDE desktops, which are still picking up disgruntled GNOME 2 emigrés – meaning yet more fragmentation of the Linux community. ®