2016 – The Future of GNU/Linux

fedora-opensuse-logos

For years past Unix-like operating systems (GNU/Linux, the BSDs, etc.) were successfully used as workstations and servers. At some point, however, a community of keen observers noticed the potential for growth in new directions. Although GNU (in a general sense) + Linux (kernel) = chaos, it also means that GNU + Linux is an ever-shifting landscape and that it can be anything. Ranging from a tightly-secured supercomputer mainframe to a lean and mean hacker’s haven or even a desktop operating system for the masses. In modern times access to computers big and small, fast and moderately speedy is so prevalent that the niche for an additional operating system is definitely there! Especially, considering Microsoft’s mishaps in recent years. Therefore, I decided to look at how the GNU/Linux ecosystem has changed and perhaps make some predictions for the future.

Ubuntu was, is and probably will be on top of the GNU/Linux tide for years to come. Canonical (the company behind Ubuntu) knows how to make use of their product and the growing prevalence of GNU/Linux on personal computers. Important to highlight, when people think Linux, they mean Ubuntu. For the majority of everyday computer users Ubuntu defines GNU/Linux. Fortunately, the overall image of GNU/Linux has improved over the past years. I remember how in high school people would consider GNU/Linux to be some sort of niche hackers’ operating system with a pretentiously bizarre name. Nowadays, there is more respect and consideration – partially thanks to Ubuntu.

Apart from Ubuntu, people recognize the names Red Hat and SUSE. They are not as overly popular as Ubuntu, but they have earned quite some esteem in the enterprise sector. SUSE Linux Enterprise Server (SLES) and Red Hat Enterprise Linux (RHEL) were offered as alternative operating systems for the HP Compaq series of office desktop computers. Both distributions gave birth to successful community projects – Fedora (Core) and openSUSE.

With the global changes on the electronics market and the increasing openness of hardware vendors, I believe Unix-like operating systems are the future of computing. Financial backing from Red Hat, Canonical, SUSE and many other companies provides jobs for skilled developers and creates a significant presence on the computing market. In addition, Unix makes for a very flexible, stable and secure all-purpose platform. However, what in my opinion matters the most is community. Much more can be achieved when customers are willing to improve their favorite operating system by providing feedback, filing bug reports, helping each other, etc.

Finally, I recently took a look at the hardware components of various laptops and notebooks offered at a local retailer and most of them have a low-powered Intel or AMD processor coupled with an integrated Intel or Radeon iGPU. Seems the majority of complaints regarding hardware compatibility of GNU/Linux is no longer valid and as long as one ascertains that the piece of hardware does not bear any known quirks, any laptop will do.

Advertisements

FreeBSD – The Tidiness of Unix

One of the principles I follow in computing is order. I like when my documents have date tags in their names and they’re properly arranged in directories. Moreover, I appreciate the power of ‘_’ and ‘-‘ in file naming to allow better sorting. As an extension of that thought, order was one of the major incentives that brought me to FreeBSD.

Oddly enough, order is an intrinsic feature of Unix, which has been passed down to the BSD descendants, but not really to GNU/Linux. In fact, there is an old chaos vs order argument, well elaborated in the FreeBSD Handbook and a blog written by an experienced Unix administrator. Linux was always only the kernel, containing the basic set of tools to let the operating system talk to the hardware, though without utilities for user-defined tasks (the userland). Richard Stallman was one of the first to shape the Linux universe into something resembling an operating system. However, since only the kernel is truly monolithic, we now have hundreds of Linux distributions and loosely connected tool-sets (the GNU project and more).

Due to the fact that Linux and GNU derived applications are common to all of the open-source operating systems, FreeBSD on the outside is no different than Gentoo, Debian or Fedora. Of course, provided that the desktop environment is configured identically. Where the differences finally become noticeable, is system administration.

To start with, GNU/Linux operating systems use ‘sd*’ labels for IDE, SATA and USB hard drives (all located in /dev/, of course). Because the labeling process is dynamic, one can sometimes find their hard drive to have a different label when an external USB drive is attached or isn’t (Schroedinger drives?), or in the instance of performing a fresh install from a USB thumb drive. FreeBSD defines such labels much more clearly and internal IDE/SATA hard drives are always labeled ‘ada*’ or ‘ad*’, while USB drives (dongles or normal external drives) are always labeled ‘da*’. No confusion possible. Going further, FreeBSD employs disk slices as an important feature of hard drive partitioning. That way partitions or whole drives can exist as slices. This added dimension is of immense importance for RAID setups, a hallmark feature of FreeBSD. Also, contrary to GNU/Linux ‘sr*’, a CD-ROM/DVD-ROM is always ‘cd*’. Makes sense, does it not?

Another point is the directory organization. On Unix-like operating systems binaries can be found in /bin, /sbin, /usr/bin, /usr/sbin, etc. For FreeBSD this holds true, but only in respect to integral parts of the operating system. The FreeBSD base system is the monolithic core, unlike the Linux kernel for GNU/Linux distributions. Everything that doesn’t belong to the base exists in /usr/local, naturally following its original organization into /etc, /bin, etc. This is perhaps the most vital feature of FreeBSD. It saves a lot of headaches and allows swift cleanups when matters get out of hand.

Somewhat connected to directory organization we have the central Unix paradigm of do one thing and do it well. What I oftentimes find absolutely annoying in GNU/Linux is the redundancy of key system tools, such as those for network configuration. One would (and should!) be more than sufficient. FreeBSD does exactly that! Networks are configured via ifconfig, period. One tool per job, but connected in such a (Unix) way that an output from one tool can be efficiently piped into a multitude of others.

Last but not least, an intrinsic part of the BSD world is documentation. An undocumented pigeon may as well be a wolf in sheep’s skin, unless we can read its man pigeon manual page or find the appropriate reference in a handbook. The Arch Linux, Fedora and Gentoo projects clearly show how absolutely mandatory it is to have good documentation. Read the manual (RTM) should be treated as a blessing, a promise of comprehension, not as a hex one uses to drive evil spirits and trolls away! OpenBSD (though FreeBSD also) is king in terms of documentation. No patch/update/you-name-it may be released if it is not properly (clearly) documented.

Thus, I conclude my musings. Somewhat naively, thinking that maybe in the future GNU/Linux will learn that order is in fact good and makes both work and leisure more enjoyable.

Smells Like Unix Spirit

Spending a few days with Fedora Linux 23 Workstation (custom setup with the Xfce desktop and basic development tools), I again felt I need to go back to FreeBSD. Fedora is a great GNU/Linux distribution, always pushing forward with new technologies in the open-source community. I especially like how it promotes software for everyday tasks (recent article on Shotwell – a photo browsing app) and proves that GNU/Linux operating systems are completely viable in work and entertainment. The focus on developers is but an added incentive. However, for my everyday tasks I need a perfectly sane, stable platform, absolutely devoid of bells and whistles and user-friendly configurations. Hence, the return to FreeBSD.

I am very picky about operating systems, but somewhat undemanding when it comes to features. I am perfectly fine with only a single browser choice (though FreeBSD lets me use either Chrome/Chromium or Firefox), I don’t use Flash altogether and for most writing/text editing/coding, extremely simple editors like Geany or Emacs. To top it off, an old-school desktop environment, such as Xfce or Mate. All of this is naturally available on FreeBSD, nicely bundled for easy installation into packages or for compilation through the Ports system. Granted, a few things could be less troublesome to handle:

  • support for Linux filesystems, namely ext4 and xfs. ext4 can be read through a fusefs module, though xfs surprisingly only has monitoring and management tools available.
  • support for graphics; I like nVidia for its great support of Unices, but AMD even more for their involvement in open-source software development. Therefore, it pains me that the Radeon drivers are only partially working. Thankfully, for now to a sufficient extent.
  • general recognition; Sometimes I feel extremely alienated when I tell people I’m using an operating system neither them nor 100+ of their Facebook friends ever heard of. Especially, since many of the big software companies like Yahoo, Google and Sony use FreeBSD for mission-critical tasks. I guess the only way to change the situation is to educate.

Nevertheless, I feel FreeBSD is exactly what I should be using. It IS Unix and not merely Unix-like. It follows sane system management principles (device naming, directory structure, etc.), good development practices and sports extremely mature organization. Not to mention how incredibly solid it is!

Food for thought to everyone. If you are looking for a Windows alternative that is solid, virtually virus-free and mature, FreeBSD is a great choice! Be warned however, it is NOT for the faint of heart. Although fainter offshoots like PC-BSD, DesktopBSD and GhostBSD are available.

Fedora – There and Back Again!

fedora_penguin

I have spent the last 2 months with FreeBSD and the true Unix ecosystem. However, bit by bit I felt that its system management practices are simply too archaic for me. I also realized that using heavy components (Eclipse, desktop environments, etc.) can bloat even something as lightweight as FreeBSD. Not to mention the weekend world and kernel re-building sessions (I know, I should have run -RELEASE). Those 2 months made me realize where FreeBSD really shines – on servers and serious workstations (where X11 is somewhat redundant). Sadly, it does not seem I am serious enough for FreeBSD yet. Therefore, I made a 180-degree turn and I am back using Fedora Linux. However, definitely a different human altogether.

I am finally learning to appreciate the improvements and utilities the Fedora community is working on and promoting. Of course my stance on systemd, GNOME3 and the likes is still unwavering, however since I do not use them myself, I have no feelings for them anymore. FreeBSD taught me this different, more focused approach to computing. Hating brings about only negative emotions and nothing more. It is utterly unproductive. Frankly, I DO like some features present in GNOME3, like the gnome-sushi package which allows the user to briefly visit file content without physically opening the file (be it an image, video, document, etc.). MacOS X has a similar feature and it is extremely useful! I am actually planning on testing Fedora on my laptop as well!

There are some things Fedora HAS and other Linux distributions just have:

  • clear NO stance on the use of proprietary software (save for nVidia’s drivers, which cannot be avoided, I am strongly for)
  • lively community with tons of events (I was considering going to the next FOSDEM if time allows)
  • focus on using GNU/Linux in life and work (very much for!)

The goals and policies are noble and honest. I finally understood I cannot blame Fedora for Red Hat’s approach to the Linux ecosystem. Recent outcries in the Fedora community made me realize that. It is quite obvious not one GNU/Linux distribution wants to act as testing grounds for corporate development. Therefore, I will do my best to enjoy GNU/Linux and improve my attitude!

Can Windows 10 Save Microsoft?

As Windows 10 is already out and Microsoft is driving herds of Windows devotees in its powerful campaign, I decided to tackle this question as well. I don’t use Windows for personal computing anymore and though it’s surely a matter of taste, I feel there are good reasons why any Windows version beyond Windows 7 exists merely for profit.

Fast forwarding to modern times (post year 2000), Windows XP was the most successful Windows version thus far. It was stable, visually pleasing and offered all of the essential features one may expect from an operating system. Its successor, Windows Vista, was almost a complete flop, though it did introduce concepts important to further Windows operating systems, like User Account Control (UAC). No wonder computer users considered Windows 7 a return to Windows tradition and a milestone in Microsoft’s history.

However, this sinusoidal pattern of good-bad Windows versions gives the impression that Microsoft has a hard time grasping user expectations. It is the more puzzling that they managed to get them right twice already (Windows XP and Windows 7), yet they still strive for…what exactly? Windows 8 was an absolutely unnecessary catastrophe and anything beyond just emphasizes the bad taste that was left by it. To top it off, Windows as an operating system architecture is so majorly flawed that a whole software industry was born to fix those flaws. This is nicely elaborated on in some rants I found:

rant on Windows and Windows 10

slightly vulgar rant on Windows

I admit neither Mac OS X, nor GNU/Linux is perfect. However, the latter is free open-source software and flexible enough so that existing issues can be gradually solved. On the other hand, Windows 10 is just plain terrible:

  • The Start Menu that Microsoft promised to return was butchered, and filled with Windows 8 tiles and adverts.
  • The file manager directory tree is a mixture of mounted drives/partitions, linked network directories, favorites, etc. in a completely random order.
  • Key system options can be changed in the legacy Control Panel or the new Settings app. No consistency regarding which one to use.
  • The Edge Internet browser is largely unfinished and buggy.
  • The user interface (UI) looks like a school project in GUI design, using qt graphical libraries.
  • There is completely no guarantee that an upgrade from Windows 7/8/8.1 will be successful and Windows 10 has the drivers to support all of the hardware.

Many of the above qualms were experienced by long-time Windows fans also. Sadly, but I feel Windows 10 is a failed product that should be avoided at all costs. My suggestion is either to stick to Windows 7 or forget Windows entirely and move to something else (Mac OS X? GNU/Linux?). Windows 10 cannot and will not save Microsoft.

Beyond Linux – FreeBSD Part 2

The penguin front is growing strong, gaining popularity with each and every day. The very same can be said about the ancestral Unices, the BSDs. Things are changing rapidly and BSDs have improved greatly over the years. Thereby, a lot of former claims drifting across the Internet are no longer valid. More so, they often deter potential users from even trying modern Unices. I decided to do the BSDs, and more specifically FreeBSD, some justice in that regard.

To begin with, the legendary ZFS file system is as strong as ever, with new features and fixes being introduced along the way. Frankly, in terms of safe (and redundant) storage of data, it is still unparalleled. I believe ZFS alone is a strong argument for using FreeBSD to run enterprise servers. DTrace, a tool for system performance auditing, is extensively used by companies as well.

A new feature largely expanded in FreeBSD 10 is bhyve. For many years it was painfully obvious that FreeBSD lacks fully native virtualization technologies. The legendary jails were of course in common use, but provided only system-level virtualization. Currently, bhyve supports BSD, Linux and even Windows 10 guest sessions!

In terms of common software, FreeBSD ports offer over 24,000 packages. Honestly though, only approximately 10% is in everyday use. Hence, below a breakdown of popular OS functionalities that are covered by ported software:

  • Internet browsing – Firefox, Chromium (crashes often, but works)
  • Music and video – mplayer, VLC, Xine, etc. (many more)
  • Image processing – GImageView, Feh, GIMP, etc. (many more)
  • Productivity/Office software – LibreOffice, OpenOffice, AbiWord
  • 3D rendering/animation – Blender, CAD suites and libraries, K-3D (libre 3D modeling)
  • Programming – Geany, Eclipse, etc. (many more + almost all programming languages covered)
  • Gaming – many native games and Linux ports

Unfortunately, there are some areas in which FreeBSD falls short for now:

  • Non-native file system support – full NTFS (Windows) support, but lacking support for Linux file systems (only ext2 and ext3 are supported in the kernel)
  • Graphics support – ATI/AMD cards only via the open-source radeon driver (no Catalyst)
  • Wifi support – only selected wireless chips have kernel-level support, hence mobile hardware has to be chosen carefully (Intel for all is a safe bet)
  • Software – some programs are not available in the repositories or are distributed by upstream projects in binary form; the Linux compatibility layer may help, but is not a fail-safe solution
  • Linux compatibility layer – many Linux binaries can be executed, but the code base is rather old

Despite the many cons, I would still strongly recommend FreeBSD as a Linux or Windows alternative. It is a rock-solid OS with logical and sane system management utilities. Frankly, one can actually get bored with how well it works!