The Ubuntu Conundrum

Ubuntu is perhaps the most popular Linux-based operating system, however for that very reason it has as many proponents as enemies. I myself use Ubuntu (Xubuntu 16.04 LTS, to be exact) at work, both as a development platform and to host services in libvirt/KVM virtual machines (Ubuntu Server 16.04 LTS there). It performs alright and so far hasn’t let us down, though we haven’t been using it through more than 2 releases so we’re unable to gauge its reliability properly. On more personal grounds I can say it works splendidly on my early-2011 MacBook Pro 15″ with faulty AMD graphics and has since the very beginning (out-of-the-box, as one might say). Singular package upgrades don’t bring about all of the regressions people profess so fervently. However, I can understand where the hate is coming from and I admit it is partially justified.

Product and popularity
For whatever reason human psychology dictates that we equate quality with popularity. If something is extremely popular, it simply must be good, right? Wrong. Completely. A product is popular, because someone with enough resources made it visible to as many consumers as possible. The product was made popular. Quality is a useful, but clearly secondary measure. A good anecdote is the long gone rivalry between VHS and Betamax. We all remember VHS, though most of us do not remember Betamax, which was technically superior. However, it lost the popularity race and will forever be remembered as the second best or not remembered at all. Now, this is not to say that Ubuntu is in any way inferior…

Ubuntu, the (non)universal operating system
The main issue with Ubuntu is that it succeeded as a more open operating system alternative to Windows and macOS X, however did not solve the underlying problem – computer literacy. Of course, not every computer user has to be a geek and hack the kernel. However, when I see that Ubuntu users address their PC-related issues with the same shamanism and hocus pocus as in Windows, my soul twists in convulsions. We did not flee from closed-source operating systems only to change the names of our favorite tools and the look of our graphical user interfaces, though observing current trends, I might be terribly wrong. The other problem is that Ubuntu’s popularity has become self-perpetuating. It’s popular, because it’s popular. Many tutorials online and in magazines assume that if one uses Linux, he or she surely runs Ubuntu on all of his or her computers. This is extremely hurtful to the entirety of the Linux ecosystem, because neither Debian nor Ubuntu represent standard Linux. Both of those systems introduce a number of configuration improvements to applications, which are not defined in upstream documentation and absent in other distributions (so-called Debianisms). Therefore, Ubuntu being a universal operating system is more of a publicity gimmick than a fact. Especially, considering that on servers, SLES (SUSE Linux Enterprise edition), CentOS and Red Hat clearly dominate.

The solution?
I would say it’s high time we begin showing newcomers that there is an amazing world of Linux beyond Ubuntu. To that end, I have a couple of suggestions for specific needs and distributions covering those needs. Related questions come up often in the Linux Facebook group and around the Internet, but get answered superficially via click-bait articles listing top 10 distributions in 2017/18. Not exactly useful. Anyhow, the list:

  • Software development:
    – Fedora (up-to-date packages and developer-centric tools like COPR)
    – Arch Linux (up-to-date with a wide range of packages via AUR and vanilla package configuration for simplicity)
    – openSUSE Tumbleweed (up-to-date with a rolling, snapshot based release cycle, but sharing the Leap / SLES high-quality management tools like YaST2)
  • Servers:
    – openSUSE Leap (3-year long support life cycle, high-quality management tools like YaST2 and straightforward server + database + VM configuration)
    – CentOS (binary compatible with Red Hat Enterprise Linux)
    – FreeBSD (ZFS hard drive pool management + snapshots, reliable service/database separation via jails, rock solid base system)
  • Easy-to-use:
    – Manjaro Linux (based on Arch Linux, with lots of straightforward graphical configuration tools, multiple installable kernels, etc.)
    – Fedora (not only for developers!)
    – openSUSE Leap (for similar reasons as above + a streamlined, user-friendly installer)
  • For learning Linux:
    – Gentoo (painful at first, but extremely flexible with discrete software feature selection at compile-time via USE flags)
    – Arch Linux (Keep It Simple Stupid; no hand-holding, but with high-quality documentation to make the learning curve less steep)
    – CRUX (similar to Gentoo, but without the useful scripts; basically, vanilla Linux with a very simple package manager)
  • For learning BSDs:
    – FreeBSD (as mentioned above)
    – OpenBSD (strong emphasis on code-correctness, system engineering and network management)
    – DragonflyBSD (pioneering data storage and multi-processor systems)

Just Linux Things


As a follow-up to my previous post, I noticed that a lot of the recent open-source technologies are extremely Linux-centric. It all started around the time GNOME3 and systemd were introduced. Both heavily rely on facilities present in Linux-based operating systems, making them difficult to port to other Unix platforms like the BSDs. These technologies are also strongly promoted to entice prospective developers. While I understand the need for platform-centric efficiency inherently tied to Linux-specific features (cgroups, etc.), it is also important not to ignore the rest of the IT ecosphere. Yes, I mean even Windows, which is normally not considered on equal terms as Unix, but is relevant when talking about C# or .NET applications.

A recent example of this trend is Docker. Containers are now the new pink and everyone wants to get a piece of the pie. Docker barely reached release 1.x, yet some companies already make claims about “widespread adoption”. I thought industries prefer stable and tested-for-years solutions. I find this new craze odd the least. As expected, Docker is a Linux thing. While the containers are indeed OS-level on GNU/Linux systems, much like LXC (Linux Containers), they’re not on Windows and neither on MacOS X. Oddly enough, the latter uses a Unix virtual machine manager xhyve (based on FreeBSD’s bhyve). Therefore, despite the fact that developer interfaces are similar or even identical, the engines running underneath will have a substantial overhead on non-Linux systems. At that point one might consider whether native and more established solutions are not already available and more suitable for multi-container setups. On FreeBSD we have Jails and a ton of Jail managers to make one’s life easier. I have a feeling that Jails on FreeBSD would do a lot better than Docker containers on GNU/Linux. Not to mention that a FreeBSD base system is a lot slimmer than whatever one could consider a base system in GNU/Linux world. “Widespread adoption” seems to be lacking, because most of world’s servers run GNU/Linux.

Another weird trend I notice is identifying everything Linux-related with Ubuntu, as if Ubuntu was the only True Linux Distribution. I often read articles that claim to touch on Linux, but in reality discuss Ubuntu. A square is a rectangle, but not all rectangles are squares! That’s so obvious, no? This “Linux = Ubuntu” assumption hurts the whole ecosystem quite a lot. People learn how to use Ubuntu, think they’ve mastered Linux. Then, they’re dropped into a den full of Gentoos and CentOS’, and they end up suffering. Ouch! A fallout of this worrying trend is the fact that people deploy Ubuntu in places where a more lightweight GNU/Linux distribution would be a lot more suitable. That’s one of the reasons why Docker switched from Ubuntu to Alpine Linux eventually. With the wealth and diversity of the GNU/Linux ecosystem, one doesn’t even need to go far.

The LTS Conundrum

During my time with openSUSE Tumbleweed I noticed that this specific ecosystem moves faster than Fedora, Arch Linux and sometimes even light itself. It stands to reason, as Tumbleweed (TW) is the testing ground for future Leap 42.x service packs and openSUSE software in general. Despite this, TW is surprisingly stable and reliable. Alas, the same cannot be said about the most recent Ubuntu LTS (Long Term Support) releases. I believe the below cartoon is more than appropriate.


‘LTS’ is a bit of a magical term in software development. It marks an operating system or piece of software as inherently stable and meant to be supported for years. For instance, all Windows releases thus far were LTS, because their support cycle extended for years. Yet, they would get regular and security updates nevertheless. In the Linux-verse LTS means ‘more stable, less updates’ and in the case of Debian’s regular releases, only security updates are pushed to the audience. I’ve used Ubuntu since version 12.04 LTS and all of the XX.04 releases were rather solid. Of course, minor bugs happened from time to time, though nothing game-breaking. Until 16.04 LTS hit…

Ubuntu 16.04 LTS is a bug-fest across all main flavors – Kubuntu, Xubuntu, Lubuntu, etc. Recently, when setting up a Dell Latitude D820 for a colleague I chose Lubuntu 16.04 LTS, believing that it’s going to work out-of-the-box and that all I need to do is just install the additional software. First, in stark contrast to previous Lubuntu releases, the installer in this one did not do the standard Internet connection/power supply/disk space check. Huge minus already. Then, it suggested I install extra proprietary software, yet failed to provide the firmware for the Broadcom BCM4311 chip. When I somehow managed to complete the install, booting stopped on the ext4 fsck (file system check), because the Intel driver package xserver-xorg-video-intel was missing entirely and X11 could not load. What sort of shoddy work is this? I am amazed that this sort of bug was not caught prior to the release.

To me LTS means that I can safely rely on the software. I can install it, configure and Get The Job Done. Imagine a company that is in the process of transiting to 16.04 LTS. Absolute nightmare! All Hell breaking loose! That’s part of the reason I moved to openSUSE for good. If I want breakage, I choose Tumbleweed. Should I feel the need for a stable environment, Leap 42.1 is within hands reach. As a teaser, Leap 42.2 Alpha 3 is already there for the taking. Guess what – thanks to the SUSE base it’s solid even before release!

Simplicity Is the Ultimate Sophistication

Originally coined by Leonardo da Vinci, later accepted and implemented by Steven Paul Jobs as part of the Mac OS X credo. In the advent of Ubuntu’s shoddy release called Xenial Xerus and its heavy repercussions on Linux Mint 17.3, I decided to revisit this beautiful maxim. I do not intend to go on another rant, yet the need and willingness are definitely there.

The new Ubuntu 16.04 LTS breaks many things, as have observed Roger from Dedoimedo and my father (both highly influential figures to me). The problem though is not that it breaks things. Rather, that the things broken severely cripple user-experience and Long Term Support releases should display improved reliability from the get-go. I was honestly looking forward to 16.04, since 14.04 had been a decently solid release. Now, I have no intention to even touch (as in, the ‘touch’ Unix command) Xenial Xerus. Ubuntu’s new release painfully shows a couple of things that are wrong with Ubuntu and potentially with the whole of the GNU/Linux ecosystem:

  1. Catering to too broad an audience makes the operating system unsuitable for any single individual. This is one of the major problems with Windows and seeing it happen to a GNU/Linux distribution pains me.
  2. Diminishing quality of the base installation. I agree it’s completely impossible to please everyone (see, point 1.) and I am not expecting every piece of software in the repositories to work flawlessly. However, if parts of the base install don’t work as intended, although they clearly did in past releases, one really starts to wonder about quality assurance…
  3. Lack of consistency between flavors of Ubuntu. The point was originally made by Roger from Dedoimedo. Until personally tested, it is not clear whether each flavor of Ubuntu will support our hardware equally well. In former times I used to think that the major difference between flavors was merely the selection of apps and the desktop environment. Guess I was wrong. This is slightly off-putting, because it means there may be a lack of sync between developer groups responsible for each flavor.

Point 1. is a philosophical issue and cannot be treated in terms of good and bad. Unfortunately, the mythical End User, much like Big Foot has never shown itself, so an educated guess is all we can bargain for. Points 2. and 3. display symptoms of improper management. I myself had problems with Lubuntu 16.04 shortly after release. Some directory paths were already restructured for the upcoming move to LXQT, though PCManFM was still looking for the wallpaper in the defunct LXDE directory. Amending the issue took me approximately 5 minutes. In all seriousness, how difficult can it be to configure the wallpaper properly out-of-the-box…?

The beauty of an operating system is defined in two things – A) it looks just about right (clean, clear and non-intrusive design) and B) things just work (minimal, yet functional setup). Ubuntu would have far less problems if the developers focused more on getting a small subset of simple apps and scripts to work and NOT change them for the sake of change. Building up from a solid base is much easier to carry out afterwards. Many other GNU/Linux distributions suffer from similar problems, though not all of them. Somehow I never had issues with Manjaro XFCE, even when using development snapshots. I reckon keeping it simple at the core eventually pays off.

The Easy and the Lightweight

Recently, I switched from Manjaro Linux to Arch Linux to get closer to the heart of my GNU/Linux operating system again. It’s pleasant to be in full control of what’s going on under the hood. However, often there are those small things. How do I know which packages are required for handling the multitude of archive formats (tar.gz, .zip, .7zip, etc.)? Why does the file manager not automatically link images to the only image viewing app I have on my system? We all suffer from similar problems and in some way it doesn’t have to be all on the user to figure things out. However, as with great power comes great responsibility, easy to use GNU/Linux distributions typically come with lots of unwanted software that only overburdens our precious machines. Thus, I asked myself – can I get some but not all?

Not entirely surprisingly, Yes. GNU/Linux is flexible enough that many lightweight distributions were born to cater to users with minimal needs. Below, a short round-up:

Bodhi Linux – based on the current Ubuntu LTS branch, it was one of my first GNU/Linux distributions. Although Enlightenment was substituted with its fork, Moksha, it is still equally lightweight. Bodhi will perfectly suit those of us who prefer simplicity and don’t want to be overwhelmed by software choice. The one application per task rule stands strong.

Peppermint OS – also based on the current Ubuntu LTS branch. Peppermint OS makes great use of web-based applications through its Ice web-app creator/linker. Favorite services like Facebook or YouTube can be locally linked in a browser window to mimic software installed on the hard drive. The desktop environment is a mix of LXDE and Xfce.

BunsenLabs Linux – successor to the Debian Stable-based Crunchbang Linux. It’s a community project that intends to continue Crunchbang’s legacy as a fuss-free Debian Stable distribution. It utilizes Openbox with components from Xfce as its desktop environment. A fantastic alternative to those who don’t like installing Debian from scratch.

AntiX – also based on Debian Stable, though with an option of switching to Testing or Unstable at install time. Out-of-the-box it offers numerous applications for typical daily tasks, still staying true to its lightweight nature. The developers push really hard to make AntiX run smoothly on low-end computers. Granted, it was the only complete distribution that worked smoothly on my ancient Intel Pentium M EeePC.

All of the above distributions do great deeds in terms of resource usage and can be installed even on antiquated PIII machines. Their main strength is that they offer the same base functionalities as full-blown distributions, still requiring barely any CPU and RAM. Every single one of them is worth at least trying out!

Autumn Linux Round-up!

linux_distrosSummer is leaving, fall is just ’round the corner and the harvests are approaching with their pumpkin-headed harbinger in the vanguard. For me the season of orange-brown kaleidoscopes and falling leaves is always a time of recollection and deep melancholy. However, still holding onto the sunny mood, like the last warm gust, I decided to devote this entry to a round-up of several Linux distributions I found most worthwhile for both greenhorns and veterans alike. There will be numbers, but they mean completely nothing.

  1. Debian. The father, mother and grandparent of most Linux distributions, the oldest in this round-up. Debian can be literally anything. It can be an ultra-stable, unbreakable server (Debian Stable), an all-around desktop operating system (Debian Testing) or a developer’s ‘playground’ (Debian Unstable). There are very few things which Debian does not do well. Unfortunately for me, one of them is dependency resolution. In its attempt to be helpful, Debian sometimes links too many packages in a dependency net, causing artificial conflicts. This happens very rarely, though, and is swiftly resolved by package maintainers.
  2. Ubuntu family. ‘Descendant’ of Debian. A distribution created to show people that Linux can be attractive, fully functional and extremely capable at the same time. Also, that it is most likely the operating system model of the future. Thanks to its many flavors, Ubuntu is suited for most hardware, even rather dated.
  3. Arch Linux. The Linux of the people. Debian gives choice, Arch Linux means choice. It is the very essence of Linux (plus, a package manager!). It gives the user basic tools to create his/her perfect operating system and thorough guidelines how to do it. There are completely no limits to how far one go with it.
  4. Manjaro. The first-born of Arch. If Arch Linux seems too daunting, there is Manjaro. Many aspects of Arch Linux have been optimized and streamlined to provide top-notch out-of-the-box experience. There are kinks and rough edges sometimes, however this should come to no surprise, since it’s very difficult to build on something as do-it-yourself as Arch Linux.
  5. Fedora. The grand innovator. Entirely driven by its vast community of dedicated users, designers and programmers. It’s more streamlined than Arch and has its base in the legendary Red Hat. Truly, while Arch is geared towards tinkerers, Fedora seems to be the distribution of serious creators. Again, sky is the limit…but it’s always blue.

Finally, I have to make a sad yet necessary announcement.  I will be temporarily closing this journal in favor of a goal I set myself regarding Unix development. More on that in the opening entry of my new blog…on Python!

Linux-do – The Path to Linux

For some people Linux is merely an operating system, an inexpensive alternative to Windows or Mac. For me and many others Linux represents a path – ‘Linux-do’ as the Japanese would probably put it (Bushido or Bushi-do – ‘the way of the warrior’). My main goal when using various distributions was always broadening my understanding of mechanics underlying operating systems – how the kernel software lets the user communicate with hardware, how to compile software, etc. Due to its intrinsic flexibility, Linux offers quite a lot.

images.duckduckgo.comDisciples of ‘Linux-do’ such as I typically follow a stepwise progression towards enlightenment – becoming one with the operating system. Beginners usually start with the more user-friendly distributions, for example Ubuntu, OpenSUSE or Mageia/OpenMandriva Lx. The majority of them are content with that level of understanding, however, many want to know Linux better and continue their exploration (‘distro-hopping’). The next step is often Debian – the predecessor of Ubuntu. Many aspects of Ubuntu were already present in its ‘father’, hence the advancement is rather smooth. I believe Debian is so powerful and flexible that it is very much worth to use it for longer. Especially, because it allows for quite minimalistic setups. The almost final destination in ‘Linux-do’ is one of the ‘hardcore’ distributionsGentoo, Slackware, CRUX or Arch Linux. Most of them require half-manual installations (specifically Arch Linux and Gentoo) and rely on or even request compilation of software. I believe Gentoo deserves to be highlighted at this point, due to its immense educational value. As the proverb goes – ‘if you learn Gentoo, you have learned Linux’.

Now, I mentioned the ‘almost final destination’ in the previous paragraph. What is the FINAL destination, then? The answer is of philosophical nature – an educated choice. Simply put, a distribution which we accept to use, fully aware of its advantages (those we utilize to their full potency) and disadvantages (those we accept or amend).