From the Opinions (by Jesse Smith) section of the
500th issue of Distro Watch Weekly:
People often regard Linux (or GNU/Linux, if you prefer) as an operating system. When asked "What operating system do you run?" many of us, myself included, are likely to reply, "Linux". I believe this concept of Linux as a single operating system to be a generalization at best and, at worst, inaccurate. The label GNU/Linux really refers to a family of operating systems, each with their own distinct quirks, rules, package management utilities and installers. Sometimes these differences are good as they allow for friendly competition and variety, allowing each user to find an operating system which fits their ideal. At other times these differences make extra work for developers, reduce the spread of software products and force users to give up some features in order to enjoy others.
I believe most of the problems this variety causes come not from upstream software projects, but rather from ambitious distributions. Distributions often develop in-house utilities for their users and keep those utilities in-house, which makes them harder to adapt to other distributions. While any distribution can package a distro-agnostic project such as LibreOffice or Firefox (indeed distributions can work closely with these neutral upstream projects), software projects which are kept "downstream", maintained by the developers of a single distribution, ultimately cause fragmentation and result in users losing out on important features. Let's take a look at some examples.
The YaST configuration tool has been included in the openSUSE distribution for years, yet efforts to port this configuration manager to other distributions have
typically failed. Likewise porting Mandriva's Control Centre has met with similar
road blocks. Various projects first introduced by Ubuntu have generally failed to spread. The Unity desktop environment and One client software have given developers working with other distributions
many headaches.
These little incompatibilities between Linux distributions have existed for years and aren't anything new. Most of us have learned to live with them, accepting that running one distribution and enjoying its perks means giving up on other attractive features. What concerns me now is that these incompatibilities not only appear to both be growing in number, but might be introduced deliberately. Looking at the systemd project, as an example, we're seeing the new init system being attached to other projects, including
udev and possibly the
GNOME desktop. Many Linux and BSD developers have expressed concern that this will limit GNOME and udev functionality to Linux distributions which swap out their existing init system for systemd. In fact it is an issue Gentoo's development team has taken quite seriously, resulting in a
fork of udev. The move has also effectively blocked GNOME Shell from making an appearance in the BSD community.
These examples certainly show the existence of incompatibilities, but they don't demonstrate deliberate fragmentation of the open source community, and I did suggest fragmentation might be caused on purpose, so let's look at another example. Canonical recently announced they had decided the new
Wayland compositor might not be the solution they had originally hoped it would be and so Canonical introduced a new product,
Mir. Now Wayland had not been widely adapted up to that point. Some initial work had been done to make Qt and GTK+ applications work with Wayland, but this functionality
wasn't included by default. Both toolkits had added Wayland support as a possible add-on option developers could turn on and test. In short, Wayland was receiving a lukewarm welcome from the community as a whole.
At least it was until Canonical announced the launch of Mir, a potential competitor to Wayland. A week after the
announcement went public,
this post was made to the GNOME mailing list stating: "The recent Mir announcement makes it a bit more urgent that we put our weight behind Wayland and help it reach its full potential." The post suggests GNOME should support Wayland before the end of 2013 and it's probably not a coincidence this is the same time-line proposed by Canonical for getting Unity working with Mir. I personally think it is also interesting to note the proposed push to get GNOME working with Wayland comes from Matthias Clasen, a Fedora contributor with an @redhat.com
e-mail address. I suspect in the final quarter of 2013 we will see an interesting and problematic fork in the road where GNOME runs on top of Wayland on Fedora, Unity runs on top of Mir on Ubuntu and other distributions not based on either of these projects will be running their desktop environments on top of standard X.
Why might this be problematic? Well, aside from the likelihood of new bugs being introduced with the arrival of fresh software there is also the question of video drivers. Linux distributions already suffer from poor video driver support and dividing that limited support three ways isn't going to help. While it should be relatively easy to make existing open source drivers work across X, Wayland and Mir, closed source drivers (those needed for 3-D support and gaming) do not yet work with Wayland or Mir. It's already hard enough to get companies like AMD and NVIDIA to support Linux when they are asked to support the X graphic stack, are these companies going to volunteer to support three different display systems in the small desktop Linux market? Might they only support one or two of the display options and, if so, which ones?
Increasingly we are seeing the Linux community divided into camps, not just the classic RPM vs DEB and GNOME vs KDE camps of the past. The chasms are growing wider, dividing the community into separate groups using different init processes, display systems and access controls. It is my concern as both a developer and a user that we are seeing a division of the Linux community into multiple separate communities. We appear to have the Fedora/Red Hat camp on one side, the Ubuntu/Canonical camp on the other and we have many other distributions stuck in the middle, faced with an uncomfortable choice. Should they join one camp or the other, or perhaps try to stick with existing technology which will slowly lose support as the big players move away? This concerns me as it appears that Linux distributions are not only becoming less compatible with each other, they may be forming new operating system families. Might we see GNU/Linux go from being one family of similar operating systems to being divided into three or more separate entities? I certainly hope not, but right now it looks like the two community members with the most money both want to take their balls and go home.