18 August 2006

Gnote on GNU

In the mid 1980's, some enthusiasts of the Unix operating system decided the world needed a new operating system that was like Unix, but wasn't actually Unix.

The reason for this was that large parts of the code for the software were owned by AT&T's Bell Labs (or by its collaborator, Sun Microsystems) ; and developing new features as extremely expensive for individual developers.

Moreover, there was an open-source movement which held that there was something inherently wrong about the proprietary software development model, in which a single firm owns software and charges whatever it expects the market will bear. Such a model has, in recent years, posed an immense diplomatic and law-enforcement obstacle as Western governments (most notably the US government) have sought to both expand monopoly powers over intellectual property, and wage a losing battle against software "piracy." At the same time, the quality of proprietary software has nose-dived, so that the much-vaunted progress in computer technology is more than offset by software bloat, malware, and stupid design.

The GNU Project is an organization that developed free versions of many Unix-related utilities, libraries, shells, compilers, and the most commonly-used version of Emacs. Someone unaffiliated with GNU, a Linus Torvalds, wrote a kernel that worked well with GNU software, and this became Linux. In the great majority of cases, installations of the Linux kernel employ mostly GNU system software for the rest of the OS. However, there also exists a GNU kernel called Hurd, which is quite interesting. It is to be hoped that I'll have the opportunity to post about in depth someday. But it's an odd peculiarity of fate that the GNU Project developed a complete OS, and the open-source movement embraced all of it except the kernel.

When I began reading about GNU, I was plagued by the question, All right, I understand the technical imperative for a Unix-like OS that is open-sources, but didn't something like this exist already? I was thinking of BSD 4.4-Lite, a variant of Unix that achieved "free software" status in 1994. Indeed, the GNU Project itself developed was very closely tied to the BSD branch of the Unix development community. It turns out the expressly BSD tendencies of the "free software" movement mostly split off from the GNU Project in the early 1990's over the precise understanding of "open-source." The GNU General Public License was a legal formulation of intellectual " copyleft" principle under which any derivative of GNU-GPL-governed material was itself obligated to be covered by the GNU-GPL. It was legal and welcome that a developer should create a fork of GNU software, but any such fork would be as open-source as the original GNU source code. Hence, it was illegal for any program using GNU source code to be proprietary.

Hence, OpenBSD, NetBSD, FreeBSD, and the two dozen other non-GNU variants of BSD Unix are often covered by the BSD licenses, which allow forks to be copyrighted. The source code remains public domain, however. The developers of these other variants of BSD were obligated to fork off their own versions of BSD 4.4-Lite so that their version could be protected by BSD license rather than GNU-GPL.

The commercial Unix world has several proprietary GUI's; these include the Mac OS X, Sun Microsystems Solaris, CDE, and so forth. KDE was the first GNU-compatible GUI, but had been developed with a proprietary software called Qt. The GNU project therefore developed GNOME, which has suffered from much of the controversy plaguing all Unix operating environments. For the record, Unix is not a very easy OS to write GUI's for since any such thing has to cram an exceptionally large number of functions into the interface. Attempts to economize on what controls ought to be replicated through the GUI will inevitably spawn a lot of aggravation [*]. In addition to KDE and GNOME, there are Rox and XFCE. In many cases, such as Red Hat and Novell (SuSE), both are supported.

Both GNOME and GNU/Linux include an enormous number of components that must be assembled by specialists into a distribution that an ordinary user can deploy. This explains the wide variance in distributions, which specialize in a particular mission.

As of this writing, GNU does not have a distribution that uses a non-Linux kernel. Hence, any discussion of the GNU OS has to be about GNU/Linux.copyleft: a legal covenant binding on certain materials. Copylefted material may be distributed freely but no one is permitted to restrict the copylefted material. Unlike material in the public domain, derivatives of copylefted material may never be themselves copyrighted.

NOTE: RE other products from the GNU Project: in addition to the OS components that constitute most of GNU/Linux distributions, there are many other programs created by the GNU Project. Unfortunately, their website does not list them all in one place so I have included a few links that do: