Fedora 24 – a Unix Perspective

As a follow-up on my previous entry, I decided to spend some time with Fedora Linux. Release 24 just got out, making me curious what the most recent offering has to offer (pun intended). Everyone knows Red Hat has a strong presence in the enterprise sector and everyone also knows that it has a somewhat negative reputation. Of course, in the long run this does not matter much, especially when one decides to go all hands on deck to land an IT job. CentOS is an extremely solid workstation/server operating system, rivaling even the notorious Red Hat. Their close cousin Fedora makes for a reasonable development and open-source software (OSS) promotion platform. Alas, because of Red Hat’s stigma, many a GNU/Linux user would rather chew on the logo, than actually use it…

fedora_pug_chewing.jpg

In all fairness, I did use Fedora Linux in the past (version 21 and 22, respectively). Both were solid releases, though I would eventually hit a licensing roadblock. Problems with audio codecs (missing or broken), Adobe’s Flash plugin (why do websites even use this fossil?) and proprietary kernel modules. Fedora 24 is not much different in that regard. RPM Fusion had to be enabled manually as always and kmod-* packages oddly required a different kernel version than the one available from the main Fedora repositories. Thankfully, the akmods management utility aided me in fixing the Broadcom STA driver issue, though I got an extra useless (non-bootable) kernel in GRUB2 and the kernel module would anyhow not load properly on system boot. It would have been so much easier to provide just the kernel module sources and use akmods, dkms or any other such facility to compile the module for the currently used kernel. Who knows, maybe in the future!

Other than the random licensing fuss, which can be easily addressed with a csh shell script, Fedora 24 is a solid release. I was positively surprised to see both mplayer and mplayer-gui (Mplayer with GUI support), and a couple of other small tools and libraries. There is no csh per se, but tcsh can be installed from the main repositories. Coming from a FreeBSD background, I also expect quality documentation. The main wiki pages are well-written, similarly to the FreeBSD wiki. However, some key information is outdated or incomplete. On a positive note, what really surprised me was the Administrator’s Guide for each Fedora release. The way it covers GNU/Linux system management is incredible. It could easily pose as the main GNU/Linux resource, despite being written for the Red Hat line.  Alas, there were some squabbles also. At some point I tried removing GNOME Network Manager to handle my wireless connections via wpa_supplicant only, though it proved futile. systemd integration in the Red Hat line is simply too deep (surprise, duh!). I guess one has to grit one’s teeth a bit and get on with one’s life.

To sum up, I am often amazed by how solid Fedora releases are. Ubuntu suffers from constant regressions, even in the most recent 16.04 LTS version (big letdown). This is somewhat hilarious, because Ubuntu is not bleeding edge at all! Contrary to that, Fedora has a lot of updates daily and just keeps on pumping quality. The focus on GUI applications is strong, though the command-line is still equally relevant to developers. Nevertheless, on servers, where Getting The Job Done is of paramount importance, I would rather see CentOS or Red Hat (or FreeBSD, though that’s quite obvious…).

Into the OSS Development Fray!

I haven’t written a single entry recently as I was very busy polishing my Python and tcsh scripting skills. Many apologies for that! Meanwhile, I am trying to assemble a simple NAS (Network Attached Storage) from the many bits and pieces I have at home. Quite the task, I have to say. Despite my daily job being extremely time-consuming, I try to hone my programming skills as much as possible to join the vast open-source community of developers and finally make a difference. Not to mention all of the badly written code that’s been around for ages.

As such, I decided to focus on Python as my primary language. It’s extremely simple, has a clear and easy to comprehend syntax and currently there is a significant need for it. As my second language I will probably pick C or Java, though I’m leaning heavily towards C. Java is highly portable and will allow me to produce APIs and software also for mobile devices, though it will not get me much more than I already have with Python. On the other hand, C and C++ complement Python wonderfully. That’s the most common combination – Python for program’s logic, C/C++ for algorithms and engines. Many consider Python to be slow, though it matters not if all it does is just link the input to the number-crunching C code or provide a UI for improved easy of use.

Currently, my platform of choice is the FreeBSD operating system. It’s great for servers, especially when data protection is vital, and has a reasonable selection of tools for virtualization. Unfortunately, it’s not really that popular among OSS developers. Much of the enterprise class software seems to be designed for, well, enterprise class GNU/Linux distributions like Ubuntu Server, SLES (SuSE Linux Enterprise), CentOS or RHEL (Red Hat Enterprise Linux). That’s entirely fine, though if I want to get a well-paid job I have to make the switch. systemd bothers me greatly and I feel the GNOME way is merely the flashy, eye-candy way. However, since we all more or less enjoy the boons of capitalism, money comes first.

The good thing about working with FreeBSD is that one learns a great deal about Unix system management and this knowledge can be easily applied to other Unix-like operating systems such as GNU/Linux. In addition, I intend to transfer some of the tools like tcsh and Emacs to my new environment. I will keep the FreeBSD installation on a separate computer of course and still use it when possible. For software development I will switch to Fedora and later on to CentOS as this is also what my current computer lab uses.

Fedora does a really good job at promoting open-source software and it’s definitely geared towards developers. Some of the attention goes to bleeding-edge experimental software like Wayland, though a more conservative approach is still possible, especially with its cousin CentOS. I hope my experience with Fedora works out fine.

FreeBSD – the Place I Belong…

Setting up Gentoo Linux, I was constantly comparing it to the BSDs, specifically FreeBSD. The software feature control via USE flags, the ports tree, etc. I sincerely wanted to capture the Unix spirit in GNU/Linux. It’s definitely there, shining through many a distribution, like Gentoo Linux, CRUX, Arch Linux, Manjaro Linux, Devuan, Debian, etc. However, it’s true someplace else – the BSD world. Strep right up for your bucket of the primordial Unix soup! If not today, then tomorrow. The BSD side of open-source will not perish as it has that critical niche in the world – firewalls, servers, mainframes, workstations, etc. Think Netflix? Think powered by FreeBSD. Companies like the tried and tested, because that turns profit. Also, it’s free (as in freedom) and companies don’t need to interfere. Money is good, though, as long as it drives open-source progress. Without corporate strings attached, of course.

Then, I found this gem. The feels were strong and I just had to go back to FreeBSD. That’s where my heart belongs, it seems. Again, it makes me squeeze out some teardrops (could be the onions, though). Today, my dream can come true once more thanks to Bill Joy, Jordan Hubbard, Ken Thompson, Dennis Ritchie, Brian Kernighan and many others who contributed to Unix and Unix-like operating systems. Great ‘Thank you!’ on my behalf!

Over and out!

Date with the Gentoo Oxen – Part Trois

larry_the_cow1

I told myself this time would be my last. Before, I wavered and bailed, because I lacked commitment. I prayed this time would be different, that I honed myself through the CRUX experience. Knowing Gentoo rather well already, I dedicated a full weekend to its installation. Usually, it doesn’t take that long, though it’s reasonable to expect things to go wrong at some point. I began my courting attempts with the Archbang Linux live image. Though not Gentoo proper, it makes for a comfortable starting point on UEFI systems as X11 is already set up and in case something goes terribly wrong with the Gentoo chroot, problems can be looked up on the Internet swiftly. Moreover, so far Gentoo’s live images did not support UEFI, making GRUB2 installation with EFI support impossible. Some things to keep in mind prior to beginning work with Gentoo Linux:

  • The installation process is quite tedious and requires good understanding of Unix subsystems, OpenRC specifically.
  • Certain applications like Chromium, WebKit or GCC take a really long time to build. It’s highly advisable to install them overnight (or acquire a decent rig).
  • Knowledge of every single USE flag is not mandatory, though an idea of what applications provide which functionalities and how USE flags describe them is. Alternatively, means of a quick lookup to make sure USE flags will not collide.
  • Manual kernel configuration usually entails good understanding of one’s computer.

With above points in mind, I went for another date with Larry the cow. As expected, this time was truly different. Larry felt charming and smart. I could definitely sense the appeal of Gentoo’s tremendous flexibility. Things did go wrong at some point, though in a recoverable fashion. USE flags were tricky as ever, but I did manage to get them right without breaking the system altogether. This made me shed buckets of manly tears. Really!

After a while, I started seeing the limitations, though. Larry doesn’t do Java, at least not the way other GNU/Linux distributions do. He (it?) said I need to cut a deal with Oracle, sign a license, yet still I can only get the binaries. Not quite how I envisioned my Eclipse work. Far from smooth and freedom-friendly. Not to mention the downtime due to long compiles. I should probably get myself a server to do the heavy-lifting for me, though why bother in the first place? No relationship is without thorns, I guess.

To wrap things up, the prognosis looks good. Larry is a cow with gender disabilities, though swims as fast as a Gentoo penguin. The minor inconveniences I can live with as in return I get a flexible, rolling-release distribution that I can tailor perfectly to my own needs. It boots fast and actually runs faster than most GNU/Linux distributions, too. Not to mention the boring lack of those Ubuntu-esque ‘oh, where did my config go’ moments. Most importantly, the BSD feels are there. Loud and clear, echoing through the ports tree down to the Unix-inspired system management practices. I’m lovin’ it!

Beyond Systemd – Part Deux

During the last days I continued to build my GNU/Linux box with CRUX. I managed to get through some of the minor problems I had before, to the point that I fixed larger problems with wireless drivers for the Mediatek mt7630e NIC. I also had to set up a link to additional repositories outside of core, xorg and opt to get the Liberation font set and some shiny, shiny GTK themes. Despite many footprint errors I managed to pull through and now Adwaita powers my new openbox-ish look (not from Maybelline, unfortunately). Following a minimal and modular approach to GNU/Linux is fully viable, and allows for extremely efficient and responsive setups. The Unix way full speed ahead!

Unfortunately, yet more alarming news regarding systemd recently, as I read on DistroWatch.com. Being a rather curious person by design, I followed the bad news with an interview with Lennart Poettering. How appropriate. My favorite paragraph was about how Lennart truly understands Unix and somehow all of the anti-systemd people don’t. It’s actually hilarious, because a quick look at relevant Wikipedia articles and their references clears things up rather quickly. Ken Thompson and Dennis Ritchie would surely not approve. Shame on Lennart, though. He’s definitely a skilled programmer, albeit confused. I guess being young is neither a crime, nor a sin, however…

what to do with the systemd conundrum? How to get over/around/under it? I tested several GNU/Linux and BSD distributions to seek a solution (salvation?) and come clean like Gandalf the White after his duel with the vile Balrog (sort of). There are ways and means, though the general problem is that almost all user-friendly distributions already drank gallons of the systemd Kool-Aid and the average Joe has barely anything to choose from. Fret not, though!  There are options and here they come:

  • FreeBSD/PC-BSD – general-purpose BSD distributions targeted at servers (FreeBSD) and casual/home desktop systems (PC-BSD); FreeBSD is somewhat old-fashioned compared to GNU/Linux distributions, though almost everything works. We can stream music, browse the web, play CDs and DVDs, etc. Flash (for anyone that still cares) works, Skype sort of works, though no luck with Google Hangouts and Chromium/Chrome is still quite unstable. Probably the biggest problem is poor interoperability with GNU/Linux and MacOS X file systems. The standard ext4 has a FUSE module in FreeBSD, though no luck with Apple’s HFS+. Finally, games work on BSDs mostly as GNU/Linux ports or through WINE. Should anyone have questions, issues, etc. the forums and the divine Handbook are always there for reference. Read, and you shall comprehend!
  • Manjaro Linux – general-purpose GNU/Linux distribution, originally based on Arch Linux. The concept was to make Arch more accessible to less computer-savvy users. It worked and an almost-official OpenRC flavor is available now. Any systemd-reliant tools were swapped for non-systemd-dependent and usually more lightweight alternatives. Despite minor issues, Manjaro Linux OpenRC works as advertised and as good as any other user-friendly distro.
  • Devuan – Debian, the father of all and naught went senile. Despite shouts and pleads, the majority vote was cast – ‘yes’ to systemd. Many (a ‘vocal minority’ as some say) were not happy and Devuan was born. The concept was to refresh Debian and return it to its Unix-like origins. ‘Yes’ to init freedom, huge ‘no’ to systemd. Since then, Devuan put systemd animosities aside and focused on making Devuan’s Debian the general-purpose distribution for young and old it once was.
  • AntiX/MX – a Debian-based distribution not many know, though those who know greatly value it. AntiX and the collaboration product between AntiX and Mepis termed MX are targeted at legacy hardware. Thanks to that they run great not only on old computers, but also on low-powered ultrabooks and netbooks. The AntiX magic is strong and one may easily succumb to its glow. It doesn’t ship with systemd, because there is no need to do so, in all honesty. One can have Debian without the additional d tied to a needless system.

Should we feel comfortable with Bash, the Unix command-line and basic methods of Unix system management, there are some GNU/Linux distributions worth looking into:

  • CRUX – I wrote about this little, blue penguin already. Everything is KISS to the point of absolution. The install is quite manual, though not as manual as that of Arch Linux, oddly enough. Probably the only tricky bit is system and software configuration. Never count on the upstream writing the configs for the user. For people seeking ultimate simplicity…This Is It!
  • Gentoo Linux – similar to CRUX, though more full featured and less KISS. Officially powered by OpenRC, Gentoo makes for a developers’ paradise. Default terminal coloring, tight Python integration, flexible software feature selection during build time, easy software version control – you name it. It’s not as light as CRUX, though makes up for it with intrinsic flexibility. The installation may be a huge pain the first time, though per every iteration it gets easier. Not to mention the added bonus of getting to know Tux better!
  • Arch Linux – to avoid systemd, one has to find courage, commitment and perseverance. Unix wisdom would come useful, too. Systemd has to be uprooted and  replaced with the Git-derived OpenRC infrastructure and scripts. Not to worry, everything is well-documented and can be installed from AUR (Arch User Repository). Other than that, one needs to avoid software with strict dependencies on systemd. Keep It Simple Stupid and enjoy the Arch way.
  • OpenBSD – ‘free, functional, and secure’. Enough said. It greatly prides its focus on software hardening, patching and system-level security measures. OpenBSD requires similar skills as FreeBSD, however setting it up might be a tad more tricky. If you value stability over cutting and bleeding edges, it will probably give your Thinkpad that added flair.

For a more complete list of systemd-free Unix-like operating systems refer to this link.

Thus, I close my brief round-up. I hope it’s useful to some at least. My personal choice (flag, medal, etc.) goes to CRUX and Gentoo Linux for being what GNU/Linux is all about. In other words, a Unix-like operating system. Not to forget FreeBSD, of course. This red beastie just rocks my Unix socks!