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
-
First Release Candidate for Linux Kernel 6.14 Now Available
Linus Torvalds has officially released the first release candidate for kernel 6.14 and it includes over 500,000 lines of modified code, making for a small release.
-
System76 Refreshes Meerkat Mini PC
If you're looking for a small form factor PC powered by Linux, System76 has exactly what you need in the Meerkat mini PC.
-
Gnome 48 Alpha Ready for Testing
The latest Gnome desktop alpha is now available with plenty of new features and improvements.
-
Wine 10 Includes Plenty to Excite Users
With its latest release, Wine has the usual crop of bug fixes and improvements, along with some exciting new features.
-
Linux Kernel 6.13 Offers Improvements for AMD/Apple Users
The latest Linux kernel is now available, and it includes plenty of improvements, especially for those who use AMD or Apple-based systems.
-
Gnome 48 Debuts New Audio Player
To date, the audio player found within the Gnome desktop has been meh at best, but with the upcoming release that all changes.
-
Plasma 6.3 Ready for Public Beta Testing
Plasma 6.3 will ship with KDE Gear 24.12.1 and KDE Frameworks 6.10, along with some new and exciting features.
-
Budgie 10.10 Scheduled for Q1 2025 with a Surprising Desktop Update
If Budgie is your desktop environment of choice, 2025 is going to be a great year for you.
-
Firefox 134 Offers Improvements for Linux Version
Fans of Linux and Firefox rejoice, as there's a new version available that includes some handy updates.
-
Serpent OS Arrives with a New Alpha Release
After months of silence, Ikey Doherty has released a new alpha for his Serpent OS.