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 DisqusIssue 268/2023
Buy this issue as a PDF
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters
Find SysAdmin Jobs
News
-
The Next Major Release of Elementary OS has Arrived
It's been over a year since the developers of elementary OS released version 6.1 (Jólnir) but they've finally made their latest release (Horus) available with a renewed focus on the user.
-
KDE Plasma 5.27 Beta is Ready for Testing
The latest beta iteration of the KDE Plasma desktop is now available and includes some important additions and fixes.
-
Netrunner OS 23 Is Now Available
The latest version of this Linux distribution is now based on Debian Bullseye and is ready for installation and finally hits the KDE 5.20 branch of the desktop.
-
New Linux Distribution Built for Gamers
With a Gnome desktop that offers different layouts and a custom kernel, PikaOS is a great option for gamers of all types.
-
System76 Beefs Up Popular Pangolin Laptop
The darling of open-source-powered laptops and desktops will soon drop a new AMD Ryzen 7-powered version of their popular Pangolin laptop.
-
Nobara Project Is a Modified Version of Fedora with User-Friendly Fixes
If you're looking for a version of Fedora that includes third-party and proprietary packages, look no further than the Nobara Project.
-
Gnome 44 Now Has a Release Date
Gnome 44 will be officially released on March 22, 2023.
-
Nitrux 2.6 Available with Kernel 6.1 and a Major Change
The developers of Nitrux have officially released version 2.6 of their Linux distribution with plenty of new features to excite users.
-
Vanilla OS Initial Release Is Now Available
A stock GNOME experience with on-demand immutability finally sees its first production release.
-
Critical Linux Vulnerability Found to Impact SMB Servers
A Linux vulnerability with a CVSS score of 10 has been found to affect SMB servers and can lead to remote code execution.