The Silent Heroes of Unix

Since FreeBSD 11-RELEASE is almost out, I decided to try the ALPHA and BETA versions to see whether my Intel Haswell bearing ASUS ultrabook is finally supported in the graphics department. As always, I was refreshed by the quality and smoothness of the ncurses CLI installer. Certain positive surprises happened to me, too. Apparently the urtwn kernel module for Realtek wireless adapters no longer requires signing a license agreement with Realtek. Hence, for the first time in Unix history I could do a CLI install of an operating system with a wireless USB dongle out-of-the-box. How amazing is that, eh? GNU/Linux can suck it with its myriad of hackish and confusing networking tools that need additional configuration.

That in turn brought to my attention the fact that in terms of manpower, the BSDs are almost unmanned when compared to GNU/Linux operating systems. The disproportions are simply huge! Sometimes, I think of BSDs as this antiquated Soviet submarine with a crew full of diehard veterans. What they lack in numbers, they compensate with experience and cunning. Projects such as OpenSSH or LibreSSL don’t have as many programmers as leading GNU/Linux projects, yet they received Microsoft’s recognition. Surprisingly enough, the BSD world is largely a community of doers not talkers. We don’t hear or read about any of the BSDs even in magazines devoted to building server infrastructures or GNU/Linux. The word is not there…

…hence, I think we should seriously start spreading it. We should show the world that BSDs are worth investing (time, effort, money, etc.) in. Do you like FreeBSD, NetBSD or OpenBSD? Do you see opportunities where a BSD operating system would be more suited than other offerings? Do you see resources going to waste? Get the word out!

Advertisements

openSUSE Leap/Tumbleweed – A New Look

gecko_combined.png

I ran Fedora Workstation on one of my legacy MacBooks for several days. I was quite satisfied with it, however some things proved troublesome, like the GRUB2 config. At the end of the day, one realizes Fedora is best suited for Fedora developers and GNU/Linux novelty enthusiasts. Should one require a stable development platform, Fedora is probably not the top pick. On the other side of the Red Hat spectrum is CentOS, though its conservative approach to software updates makes it more suited to hardened enterprise
environments…What else do we have then?

In the realm of the Red Hat Package Manager (RPM), the European equivalent of Fedora is openSUSE. Few people now know that its predecessor, SUSE Linux was born slightly earlier than Red Hat proper and gained considerable acclaim in the enterprise sector. Along Red Hat, it was one of the options available for HP/CompaQ business desktop workstations. Quite obviously then, the openSUSE daughter project instantly garnered appeal. With its recent changes and closer ties to SUSE Linux Enterprise (SLE), it’s an interesting competitor to Fedora Linux.

openSUSE is available in two flavors – Leap 42.x (currently at point release 42.1) and Tumbleweed. The former is built from SLE packages, hence enterprise-level stability is a given. However, neither the kernel, nor the applications are as stale as in the case of CentOS. This is a great choice for people who want to Get Their Job Done and get on with their lives. The other flavor, Tumbleweed is a rolling-release spin with more bleeding-edge packages, geared rather towards software developers. It lacks some of the features of Leap 42.x and is surely not as ‘hardened’, though I consider it stable enough for day-to-day use. I am currently using it on my almost-OSS-friendly ASUS S301A ultrabook. Apart from the slightly too long boot process, everything is just swell.

Due to the fact that openSUSE relies heavily on GUI applications and systemd, I had strong negative feelings towards it in the past. It used to feel like a less locked-in alternative to MS Windows. However, openSUSE has gone a long way since the dusk of the 13.x line and improved in many regards. Also, I am no longer interested in init wars, since it’s quite clear what the enterprise standard is. I can either live with that or return to my batcave and resume my endeavors to save Linux City. In a moral sense it actually IS a dilemma, mind you!

I tested both Leap 42.1 and Tumbleweed on vastly different hardware and my impression is highly positive thus far. A single word to describe it would be ‘polished’. Something that was not so apparent in the 13.x line, but is all too obvious in Leap 42.1. Of course, one  cannot escape the impression that openSUSE resembles MS Windows. On second thought though, I consider this an advantage. The YaST2 Control Panel does a much better job than the well-known Windows Control Panel. Microsoft should take note of how minor incremental improvements, built on a graphically consistent foundation, can produce a more lasting effect, than a ‘Because 7 ate/8 9’ PR stunt. On the other hand, with the Ubuntu 16.04 LTS compat layer and virtual workspaces/desktops in Windows 10 it seems Microsoft is slowly catching up.

War on Inconsistency II

In my former study of Gentoo Linux I encountered certain problems with GNU/Linux that are the more apparent as one strays from mainstream distributions, such as Ubuntu, Fedora/Red Hat and OpenSUSE/SUSE. Those problems do not exist in the BSD world, where the core operating system is an intrinsically functional platform for add-on applications. As laid out in the FreeBSD Handbook, it’s a chaos vs order issue. Chaos, unfortunately, gives rise to inconsistency. Dedoimedo has a great comparison of Ubuntu flavors illustrating that.

A typical user expects their operating system of choice to just work. Would that be the case for GNU/Linux, selecting a favorite distribution would rely primarily on visuals. While slightly undermining flexibility, it would mean every end-user would be allowed to enjoy the GNU/Linux ecosystem fully and not worry about driver issues, being vastly different on each distribution. One such quite ridiculous case was when the proprietary Broadcom driver failed to work on Debian, but worked perfectly fine on Ubuntu. Theoretically, the same driver. Practically, different everything else.

For now a lot of companies support only the top 3-5 GNU/Linux distributions. They cannot and will not extend that support to the whole GNU/Linux ecosystem, because they actually care that their products work well, even if only on a small number of most popular platforms. The issue could be partially addressed by releasing the source code of the product, so that patches and adjustments can be applied. Then, revenue may still be generated via technical support and various other forms of counseling. It is perfectly viable and companies do so. Another way would be to work on some level of consistency within the Linux kernel and the basic userland (compilers, command-line monitoring and diagnostic tools, partitioners, etc). Frankly, it’s quite ridiculous that the very base of the operating system (the kernel) can differ so much between distributions that troubleshooting driver issues is but a lesson in futility.

To be perfectly clear, no flexibility has to be sacrificed. It would be enough to agree on the basic modules, features and tools, still making the setup perfectly viable to build upon. In addition, nothing new needs to be created, because all of the components are already present. Not such a bad idea, right?

Can Tux Go Mobile?

tuxontuxonlaptop

As some people sardonically claim, the year of the Linux desktop is drawing near. However, when analyzing the current ecosystem I noticed that the near is an asymptote, not a fixed destination. I tried to draft a few priorities I think GNU/Linux needs to cover before becoming truly popular on mobile devices (laptops, notebooks, etc.).

1. Hardware support:

More and more hardware vendors openly support GNU/Linux as a platform and offer compatible drivers. However:

  • The only efficient solution for nVidia graphics is the closed-source driver, which is not fully open-source and does not support kernel mode-setting and other Unix-specific features
  • AMD and Intel GPUs have compatible drivers, but their performance is not on par with Windows and Mac OS X drivers
  • Intel, Atheros, Realtek and some other companies provide drivers for wireless network chips, though the coverage is far from complete
  • Features like brightness adjustment, suspend/wake up, fingerprint readers, etc. depend on so many interlaced components that their functionality is mostly down to sheer luck

Granted, most of the above works to a certain degree, though simply not to the same extent as with Windows or Mac OS X. It would really help if computer producers and vendors were to list the hardware components shipped inside their devices. Usually, that’s a tiny piece of information, though for us open-source people makes choosing well-supported hardware substantially easier.

2. Common software standards:

As it stands now, there are too many GNU/Linux distributions (Ubuntu flavor-of-the-week anyone?) with too many applications fulfilling common tasks. The variation in command-line network management tools comes to mind, though by no means is it the only such case. Don’t get me wrong, I adore choice. However, for vendors and third-party software developers too much variety makes understanding GNU/Linux the more confusing. A good idea would be to collaboratively decide on a set of low-level tools common to all distributions to unify at least the Linux base system more.

3. Emphasis on uniqueness:
GNU/Linux is viable as long as it’s an alternative to MacOS X and Windows. The more it mimics, the more it becomes a mere copy. However, mimicry may in many cases prove successful. For instance, KDE managed to expand on Windows’ standard desktop look, emphasizing functionality and ease of use. GNOME3, shunned by many for its bugs (now mostly resolved) and feature obfuscation is in fact a more approachable adaptation of Apple’s Aqua GUI. Many of us are so-called Unix veterans and we don’t care for user-friendliness much. However, end-users and vendors do and we die-hards should at least respect that. I think GNU/Linux, but also other Unices, has enough unique features to be considered an alternative to Windows or Mac OS X for many computing tasks.

To recapitulate, I think the year of the Linux desktop is not so far ahead anymore. In fact, it’s almost here! However, for the world to fully embrace it, open-source developers and hardware vendors should collaborate more. Both sides will surely profit from greater openness and trust.

The Lands Beyond Systemd…

As my last entry had been outright pessimistic, I tried with a more positive tone in this one. In recent months Debian was debating whether to make systemd the default init system in their new release Debian 8 Jessie. It turns out that the debate wasn’t completely one-sided in favor of systemd and many reasonable points were raised in respect to all available init systems (sysvinit, systemd, upstart, openRC, etc.):

https://wiki.debian.org/Debate/initsystem/sysvinit

Although systemd has become the new default, nothing and no one is stopping Debian users from installing and using a different init system, for instance sysvinit, the previous default in Debian 7 Wheezy. Many people running Debian or its derivatives made the switch. It’s fairly doable and doesn’t require extensive programming knowledge. Some BunsenLabs Linux users (descendant of Crunchbang Linux) even suggested that BL should be init agnostic due to its minimal approach and reliance on portable components, such as Openbox. The obvious irony in this was that it is systemd which should be agnostic and portable, not individual distributions! As the saying goes, if you let a stray cat into your apartment, it will soil your carpet. The concluding remark among BL users was that people who are aware of alternative init systems, are more than capable of handling them themselves. Fair enough.

Moving on, a multitude of Debian developers and users made an important observation on systemd: The problem is not its init functionality, but the fact that it wants to be everything and everywhere in the operating system. Hence, the only way around that without severe limitations is to entirely eliminate systemd as the core system component. Debian’s fork Devuan was born with such a premise. The job is hard and it is not going to happen without blood, sweat and tears (and balls, of course). Without a doubt, people behind Devuan have the needed qualities to make their noble goal reality.

On the less user-friendly side of the Linux spectrum, a new distribution was born over a year ago – Void Linux. Many people criticized it for not being unique enough. Perhaps on the day of its inception that was the case. Not anymore, though! Currently, Void Linux pioneers a novel init system called runit (http://smarden.org/runit/). It is modular, compliant with UNIX principles and extremely snappy. Void Linux also offers a new package manager – xbps. It does its job, handles configurations, etc. For instance, I have a dual GPU Geforce GTX 295 graphics card. xbps downloaded dkms, the nVidia driver sources and prepared the kernel module without a hitch. Installed fonts also get added to the required config files automatically. The most enjoyable experience to me was that Void Linux feels like Arch Linux before it went crazy over systemd. It’s simple, sane and very much KISS!

To sum up, there are non-systemd Linux alternatives in sufficient abundance. One just needs to use them and show others that systemd is not mandatory and never should be. After all, Linux is defined by choice!

The Sickness Called ‘User-friendliness’

Originally, the Linux kernel was forged single-handedly by Linus Torvalds, because he didn’t like MS-DOS (yes, that long ago!). Later, operating systems based on the Linux kernel began to appear and their main targets were servers, workstations and mainframes. The point of pride was stability, transparency (lacking then in MS-DOS) and code-correctness. After all, Linux was raised on the UNIX philosophy of sane programming and system design.

Then, something happened. A number of Linux developers and distribution maintainers noticed that MacOS and Windows are popular on the consumer market, because they’re user-friendly. This was the same degree of observation that Adam and Eve made in the biblical Paradise when they tasted a fruit from the Tree of Knowledge of Good and Evil and discovered they are absolutely naked. Then, Linux was not user-friendly at all! They [developers and maintainers] got together and said Hey, we want Linux to be popular among average Joes as well! It deserves it!. Thus, the long trip down the rabbit hole began. Unfortunately, it didn’t lead to Wonderland…

Distributions began to swap tried and tested solutions for design atrocities. Gnome Network Manager (GUI) on top of wpa_supplicant (which has its own GUI!) on top of dhpcd. Pulseaudio on top of ALSA. GRUB2 with its ‘modern’ syntax, ridiculous to the point that it was easier to just auto-configure and forget what the bootloader even does (honestly, a very bad attitude). There are tons of examples. Sadly, user-friendliness is merely a bait. Linux will never in all eternity be as user-friendly as MacOS X…without sacrificing traits valuable to many: flexibility, freedom of choice, PC usage footprint, etc. Is that path really worth going down?

The sickness is spreading. For the proponents of user-friendliness it’s not enough to take the Linux kernel and build user-friendly operating systems on it (that’s how it’s done in the BSD world, more or less). In order to matter, one has to change the upstream. Instead of creating, they want to alter, to mold the whole Linux ecosystem to their vision.

I sincerely hope this will never happen. We have what we value most in Linux as long people don’t try to butcher it with their MacOS X/Windows standards. If we sack the UNIX philosophy, Linux as we remember it will be no more….

The GNU/Linux Revolution…

linux_revolution

Beginning of 2016. A major storm is brewing over the GNU/Linux landscape. Winter is coming and things are starting to change. For the much worse. Thanks to this article: http://slated.org/the_poetterisation_of_gnu_linux it became very clear to me what Red Hat is all about. For years I have respected Red Hat as a major player in the GNU/Linux ecosystem and a supporter of open-source software. I believed they genuinely cared and wanted to prove the world that the open-source development model IS the model of the future. I was wrong.

Red Hat never cared. That’s quite apparent when looking at some of the developer comments on the bug tracker: https://bugzilla.redhat.com/show_bug.cgi?id=534047#c9. They simply wanted a new operating system to sell their software products. Furthermore, the way they organized the coup on GNU/Linux was quite devious. First, through Fedora they allowed the development of modern, streamlined apps. That produced a lot of hype and cheering for open-source software. Alas, steadily, tried and tested UNIX solutions, which worked for years, started to become obsolete, because they were too old and not modern enough. udev and a couple of other projects were created to address this. Next, came systemd, which took over the init process and gradually started to absorb all of the mentioned minor projects. You want to boot your system – you need systemd. You want to run X11 – you need udev which is now part of systemd. You want to mount devices – you need dbus, which is also part of systemd. To be specific, you don’t actually need systemd for all of this to work, but that has become the new default. Somewhere in-between came the GNOME3 project, which massacred the positive vibe left after GNOME2 and quickly linked itself to systemd. It was simple and easy to use, as the proponents claimed. Frankly, it was oversimplified, obfuscated and completely useless, much like the Metro UI of Windows 8, which appeared later.

The overall fuss over Red Hat’s agenda was and still is enormous. However, it really boils down to a single statement – GNU/Linux operating systems are not Windows, nor Mac OS X. The moment this is forgotten and/or forsaken, the GNU/Linux ecosystem will become yet another streamlined, commercial product.

Fortunately, there are options! FreeBSD has set itself apart from the mainstream long ago and will not participate in Red Hat’s machinations. Moreover, it follows the original, true UNIX philosophy. In the Linuxverse there is the OpenRC based version of Manjaro and a relatively new, but greatly promising project – Devuan.