Has Linux lost the Unix Philosophy?
Off the Beat: Bruce Byfield's Blog
Whenever a technical dispute breaks out in Linux, someone is sure to condemn a solution for not following the Unix Philosophy. The argument makes sense, because, although GNU may be short for GNU's not Unix, the structure of GNU/Linux remains an obvious derivative of UNIX. But is the Unix Philosophy even relevant to modern GNU/Linux, with its emphasis on the desktop and efforts to attract disaffected Windows users? In some ways, definitely.
The Unix Philosophy is a design aesthetic describing how programs and operating systems should interact. It exists in several versions, many of which are expansions or summaries of others. However, the versions remain roughly consistent with each other. My favorite version -- mainly because of its brevity -- is Peter H. Salus' in A Quarter-Century of Unix:
- Write programs that do one thing and do it well.
- Write programs to work together.
- Write programs to handle text streams, because that is a universal interface
Keeping the old school alive
How closely is that followed today? Relatively well, so far as using text stream goes. A majority of Linux programs continue to use plain text configuration files, which means that users can easily edit them, using the text editor of their choice.
However, there are a few exceptions. GRUB 2, for example, discourages manual editing, automating new entries after a new kernel or operating system is added. Similarly, Systemd uses binary files for its logs, while KDE's Akonadi, by making use of a database, ensures that any failure will be catastrophic, and unrepairable manually.
Such changes are usually made in the name of efficiency. All too often, however, the efficiency is gained by interfering with the do-it-yourself ethos that should almost be a fourth pillar of the Unix Philosophy.
The situation is even better when it comes to programs working well together. In modern Linux, open standards are a rule with very few exceptions.
For instance, GIMP and Krita have their own formats, but, thanks to the innumerable open graphics formats, files are exchangeable with very few problems.
The problems that do exist are largely a matter of how formats are interpreted. For example, transferring files in Open Document Format between LibreOffice and Calligra Suite can result in inconsistencies such as changes in color. Correcting these inconsistencies is unglamorous work, which is perhaps one reason why improvement is slow, but, these days, even a relatively highly formatted MS Word document can be handled reasonably successfully in Linux. True, something like a MS Word brochure rapidly crumbles into gibberish when exchanged, but the progress over the last decade is noticeable. If the situation is not ideal, at least the ideal is recognized.
However, modern Linux's greatest departure from the Unix Philosophy is having one small program do one thing well. In fact, the idea has been largely abandoned.
You can see the change quite clearly. Image Magick, for example, is the name for a collection of individual scripts for editing graphics. By contrast, Krita is a collection of features integrated into a common interface. Similarly, groff/troff are a collection of options for editing plain text files, LibreOffice an interface with similar features integrated into it that supports multiple formats.
Without actually counting, I suspect that Krita has more features than Image Magick, and LibreOffice more than groff/troff (although I could be wrong), but the main difference is that, as desktop projects, Krita and LibreOffice offer convenience at the cost of being vastly larger programs.
In a few corners, such as the Slackware community, the ideal is still alive. From LibreOffice to KDE, more than one program does not accompany a Slackware release because it is actually a loose collection of dozens of programs. However, many people want these excluded programs, so they are easy to find in online repositories or else in derivative-distributions. Refugees from Windows in particular seem to want to have large programs that do everything, and the majority of distributions do not even try to control them.
Even if official efforts are made to have one program do one thing, the unoffical efforts to bypass this principle more or less reduce the official efforts to empty gestures before they are done.
Why it matters
The Unix Philosophy cannot be enforced, and, even if it could be, whether it should be is uncertain. After all, if people want a huge office suite, is anything wrong with giving them one, especially when memory shortages are no longer a concern? Anyway, as the acronym says, GNU's Not Unix, so why should it be expected to follow Unix conventions?
At the same time, the Unix Philosophy can be said to encourage elegant and economical solutions. In weakening its tenets, and abandoning one almost entirely, Linux may have not only abandoned its roots, but, perhaps, some of its excellence as well.
comments powered by DisqusSubscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters
Support Our Work
Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.
News
-
Canonical Bumps LTS Support to 12 years
If you're worried that your Ubuntu LTS release won't be supported long enough to last, Canonical has a surprise for you in the form of 12 years of security coverage.
-
Fedora 40 Beta Released Soon
With the official release of Fedora 40 coming in April, it's almost time to download the beta and see what's new.
-
New Pentesting Distribution to Compete with Kali Linux
SnoopGod is now available for your testing needs
-
Juno Computers Launches Another Linux Laptop
If you're looking for a powerhouse laptop that runs Ubuntu, the Juno Computers Neptune 17 v6 should be on your radar.
-
ZorinOS 17.1 Released, Includes Improved Windows App Support
If you need or desire to run Windows applications on Linux, there's one distribution intent on making that easier for you and its new release further improves that feature.
-
Linux Market Share Surpasses 4% for the First Time
Look out Windows and macOS, Linux is on the rise and has even topped ChromeOS to become the fourth most widely used OS around the globe.
-
KDE’s Plasma 6 Officially Available
KDE’s Plasma 6.0 "Megarelease" has happened, and it's brimming with new features, polish, and performance.
-
Latest Version of Tails Unleashed
Tails 6.0 is based on Debian 12 and includes GNOME 43.
-
KDE Announces New Slimbook V with Plenty of Power and KDE’s Plasma 6
If you're a fan of KDE Plasma, you'll be thrilled to hear they've announced a new Slimbook with an AMD CPU and the latest version of KDE Plasma desktop.
-
Monthly Sponsorship Includes Early Access to elementary OS 8
If you want to get a glimpse of what's in the pipeline for elementary OS 8, just set up a monthly sponsorship to help fund its continued existence.