Has Linux lost the Unix Philosophy?
![](/var/linux_magazin/storage/images/online/blogs/off-the-beat-bruce-byfield-s-blog/318120-13-eng-US/Off-the-Beat-Bruce-Byfield-s-Blog.png)
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.
![Learn More](https://www.linux-magazine.com/var/linux_magazin/storage/images/media/linux-magazine-eng-us/images/misc/learn-more/834592-1-eng-US/Learn-More_medium.png)
News
-
NVIDIA Released Driver for Upcoming NVIDIA 560 GPU for Linux
Not only has NVIDIA released the driver for its upcoming CPU series, it's the first release that defaults to using open-source GPU kernel modules.
-
OpenMandriva Lx 24.07 Released
If you’re into rolling release Linux distributions, OpenMandriva ROME has a new snapshot with a new kernel.
-
Kernel 6.10 Available for General Usage
Linus Torvalds has released the 6.10 kernel and it includes significant performance increases for Intel Core hybrid systems and more.
-
TUXEDO Computers Releases InfinityBook Pro 14 Gen9 Laptop
Sporting either AMD or Intel CPUs, the TUXEDO InfinityBook Pro 14 is an extremely compact, lightweight, sturdy powerhouse.
-
Google Extends Support for Linux Kernels Used for Android
Because the LTS Linux kernel releases are so important to Android, Google has decided to extend the support period beyond that offered by the kernel development team.
-
Linux Mint 22 Stable Delayed
If you're anxious about getting your hands on the stable release of Linux Mint 22, it looks as if you're going to have to wait a bit longer.
-
Nitrux 3.5.1 Available for Install
The latest version of the immutable, systemd-free distribution includes an updated kernel and NVIDIA driver.
-
Debian 12.6 Released with Plenty of Bug Fixes and Updates
The sixth update to Debian "Bookworm" is all about security mitigations and making adjustments for some "serious problems."
-
Canonical Offers 12-Year LTS for Open Source Docker Images
Canonical is expanding its LTS offering to reach beyond the DEB packages with a new distro-less Docker image.
-
Plasma Desktop 6.1 Released with Several Enhancements
If you're a fan of Plasma Desktop, you should be excited about this new point release.