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!

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.

The Journey’s End?

tux_sucks_windows

Many months passed, tenths of Linux distributions tested. I have gone through all of the major players (Debian, Ubuntu, openSUSE, Fedora, etc.) and touched upon some of the smaller ones also. That was highly taxing and I had to let go at some point. At the end of the day one realizes that there is a life to spend and the operating system should be a tool to carry out one’s duties, fulfill dreams and aid in learning. In the long run, the key aspect that mattered to me the most was reliability. Frankly, not so many GNU/Linux distributions offer true reliability. Sometimes there is not enough manpower, while other times there are too many helper scripts and apps that add unnecessary levels of complexity and make troubleshooting a pain (I’m looking at you,, dracut!). Thereby, to me there are only three GNU/Linux distributions that I could honestly call reliable:

Ubuntu – many bad things are said about Ubuntu: ‘It’s corporate’, ‘It tries to be flashy’, ‘It wants to be Windows, but fails’, etc. However, if one looks for a general purpose operating system that is free, stable and doesn’t suffer from Windows-related problems (Registry mess, drive fragmentation, stacking updates, etc.), Ubuntu is the way to go. Thanks to the huge support from Canonical and various gifted programmers around the globe, Ubuntu has superb hardware and software compatibility. For powerful computers there is Ubuntu, Kubuntu, while for the slightly less so Xubuntu and Lubuntu. I myself use Lubuntu and I am very happy with it!

Debian – one could think of Debian as a less company-oriented version of Ubuntu, though of course Ubuntu stems from Debian and many packages first pass through Debian to end up in Ubuntu. Stock Debian doesn’t require desktop environment installation and can be quite minimal if necessary. Hence, it is a fantastic base for a server OS, especially if one chooses the rock-solid Debian Stable line.

Arch Linux – this one is quite unique (as in, not striving to be user-friendly like most other Linux distributions), though in reality being the least unique (as in, using stock configurations). Arch Linux is the very core and essence of GNU/Linux (stock Linux + package manager). Default package installation is as generic as possible (save for minor tweaks and performance optimization for i686 and x86_64 processors), allowing high reproducibility and interoperability with other GNU/Linux operating systems. Many people claim that it is not very reliable due to its ‘cutting-edge’ nature. In reality, the opposite is true. Firstly, the minimalist approach of Arch Linux reduces the complexity of the operating system. Programs are added one-by-one, therefore if something breaks, we’ll quickly know what. Secondly, its rolling-release model allows updates to be handled individually. Thereby, if one updates frequently enough, the risk of instability is in fact minor. Finally, there is a fantastic wiki to follow and a very helpful community.

Some distributions didn’t make the cut, why? Well, to me they’re not reliable enough. Fedora is in general a very good Linux OS, however a short development cycle and misalignment with proprietary code (for instance, nVidia drivers) due to personal policies cause a lot of minor bugs to be unresolved. Not to mention the idea of a serious ‘workstation’ with GNOME3, which is a tablet lookalike desktop environment (also, possibly the worst desktop environment to troubleshoot). openSUSE claims to be good. Alas, its goals overlap with those of Ubuntu, while its quality not necessarily so. Emphasis on PR makes users flock to it, though it surely doesn’t contribute to system reliability. Manjaro would be a fantastic Arch Linux alternative, however it packs far too many helper scripts and the community dilutes into too many 2-3-man desktop environment projects.

Married to the Mainstream

images.duckduckgo.comAfter months of struggling and solving simple problems with ‘heavy duty’ programming tools I finally decided to go mainstream. One doesn’t need to set up a minimal system each and every single time a new computer is bought/fixed/brought back to life. It’s demanding. It’s highly educating. It’s definitely FUN, but…there is a time in the life of every citizen of Linux-ville to switch from maintaining a system to finally using it. For me, this time has finally come.

Currently, I am using several of the so-called ‘mainstream’ Linux distributions on and off. Each I appreciate for specific features and depending on how fast I get annoyed with the features I don’t appreciate so much, I make a switch. I decided to put down my thoughts on the aforementioned ‘main-streamers’.

Ubuntu and its many derivatives are possibly the most widely known. Though most people don’t know what Linux or Unix are, I’m perfectly sure they have heard of Ubuntu before. Not only as an African word meaning ‘humanity towards others’, but also as a fringe Windows competitor for geeks. Ubuntu sports possibly the best hardware support and is the default choice of multimedia and game developers. Lastly, it has the largest repositories with some unique and useful software packages like nvidia-prime for Intel + Nvidia Optimus laptops.

Fedora is a very interesting alternative to Ubuntu. While Ubuntu offers appealing out-of-the-box experience for newbies, Fedora is more geared towards experienced users, developers and engineers. It also emphasizes the use of open-source and free software whenever possible. Fedora may seem slightly less flexible than Ubuntu in terms of initial desktop choice, but its netinstall liveCD more than makes up for that. I found the possibility to select software categories during installation extremely useful.

OpenSUSE is a curious mix of a community-driven distribution for developers and users alike with a strong enterprise focus. The online Build Service lets programmers easily produce software packages for openSUSE and many other popular distributions, while openSUSE Studio offers an online manager for building custom liveCD images. Much like the somewhat loathed Windows, openSUSE is governed through a Control Panel manager called YaST. With its central management and fast ‘1-click installs’ it will definitely win the hearts of Windows escapees. I much enjoyed working with the green lizard, except for some minor kinks.

At this point you may ask – Why only those 3? Where is Debian, it’s also very ‘mainstream’? In principle, Debian is a ‘mainstream’ distribution, however its general purpose is a stable development environment or a server. Desktop environments and a certain degree of user-friendliness are offered, but they’re not the focus of Debian. In all honesty, there are many more distributions which though not ‘mainstream’, could be considered at least easy to use. More on those in my next entry!

Dem Bells ‘n’ Whistles

cowbellFor quite a while I’ve been busy with my life and happy with Arch Linux on all of my computers. However, recently I came to a somewhat regretful realization that I hardly have time to tinker with my computer(s) and set everything from the ground up every single time I decide to do a full system re-install. I do like to know what’s under the hood of my operating system and I like extremely minimal setups (bare window manager + most basic tools), but lately I do not have the luxury of time and, to be completely frank, my artistic skills are insufficient to make my desktop look anything, but generic. Hence, I decided to explore various GUI-heavy, user-friendly distributions with their rich offering of pre-installed software.

My first choice was an old love Lubuntu with a possible alternate of Peppermint OS (a new installment was released recently). No surprises here. Contrary to Linux Mint, which I also tested by-the-by, Lubuntu was highly responsive and as always very light on resources. I find the selection of pre-installed software it offers to be just perfect. Firefox has never failed me and I use Pidgin on a daily basis as a multi-protocol messenger tool. As Lubuntu is a lightweight flavor of Ubuntu proper, one has immediate access to the vast repositories hosted by Canonical and its partners. Peppermint OS is equally interesting, because it follows Lubuntu, though with a more cloud-centric twist. The art is eye-catching and some applications have been relocated as browser plugins to reduce system load. The latter is especially valuable due to the current ever-growing reliance on small computers and cloud storage.

My second choice was also unsurprisingly Manjaro Linux. It was my first lightweight Linux distribution with great hardware support and a strong, reliable base in Arch Linux. In fact, Manjaro encouraged me to try Archbang and finally Arch proper. Seeing Arch’s popularity in decline and the multitude of Manjaro’s flavors, I decided to give it a spin. I started with my old-time favorite Openbox edition (previously, the only available edition), but also gave the i3 and minimal Xfce editions a try. I was honestly awestruck by the minimal Xfce edition! For a very long time (save for AntiX) I have not seen such a light and efficient adaptation of Xfce. I liked that desktop environment for its resemblance to old Windows, but always felt it’s heavier on resources than it should be based on its looks. Though here I am, mesmerized by Xfce once more!

To conclude, I greatly appreciate the time I have spent with Arch Linux and the insurmountable amount of experience I have gained from using it. While I regret I no longer harbor the time to utilize it to its full capacity, I look forward to using various established user-friendly Linux distributions with a smile of anticipation…