What Linux distribution do you use and why? Here's 3 I recently stumbled and read upon a little bit that am considering switchin

Do repost and rate:

Throughout the years I've mostly stuck with Arch Linux (a very minimalist, build-it-yourself KISS type of distro), but lately have moved over to Manjaro - an Arch-derived distro that spares you the 3 days of editing .conf files and customizing your everything to your needs (hardware, drivers, aesthetics, software suites, shells, wrappers, text editors, keybindings, whatever have you....) - mostly cos the older I get, the less time I have (tho Linux is probably the best way you can waste your time, really).

 

OpenSUSE: Universal, Stable, Highly Flexible, Yet a Breeze to Use

Anyway, these days stumbled upon a few interesting ones too that deserve more attention and I am considering trying them out and maybe migrate to either one of the three. First one is rather well-known, OpenSUSE (SUSE was the first Linux I ever installed and used back when I was 14, and the first enterprise-level Linux distro to be released back in those days) - turns out in its current state of development, it is quite fast, stable, highly flexible, customizable and at the same time easy to use (user-friendly even), shipping with a good set of options to choose from (far as GUI and other stuff, using its unique YaST installer and system manager).

And it also comes in two flavors - either rolling release (where you install just once and then just update/upgrade with the latest bleeding edge stuff, taking the risk that something may screw up sometimes) or release-based (the more conservative approach of re-installing the latest stable and well-tested, beaten out release in place of the old one, where all package software repositories have been carefully scrutinized, audited and configured to adjust to the specifics of OpenSUSE and its current latest release).

Installation is easy, straightforward and fast and one can choose between any of the user-friendly desktop environments, such as KDE or GNOME, as well as opt for the Generic option (which later allows you to choose from Enlightenment, LXDE, MATE, Xfce, LXQT). Additionally, OpenSUSE is an excellent option to run servers on (there is an option "Server" install upon booting the installer, along with the default choices of Gnome, KDE and DIY it later Generic one).

Uses its own Zypper package manager that uses the libzypp library and also comes with a front-end for those that feel more comfortable clicking on things, rather than (learning to) make use of what the command-line shell has to offer.

 

Void Linux: A More BSD-Like Linux for Advanced Troublemakers

Now that one I first stumbled upon being mentioned somewhere on 4chan, but didn't pay much further attention at the time. Turns out Void is a small, modest, independent Linux distro (as in, not derivative one, based on anything else, like Ubuntu is on Debian, etc.), which also went to score 6th in popularity for awhile on distrowatch last year. Developed by former NetBSD developer as a test-bed for his xbps package manager, Void is basically something of a hybrid between Linux and BSD (and in many ways similar to / in the category of minimalist DIY spit-you-out-into-clean-shell and whatever's in /usr/bin type of distro, in the spirit of Arch, Gentoo and Slackware). It uses an ncurses-based installation interface in the process of, well, installation and setup (ncurses, the GUI-like library for the command-line that makes things a bit easier, using keyboard arrows and ENTER, rather than executing series of commands with tons of byzantine arguments, parameters and options).

Now, the other main thing about Void is that unlike most other Linux-based distros which use systemd for initializing the system and bootstrapping userspace, Void uses the more UNIX-like runit init system (that BSD systems use) and also incorporates LibreSSL by default in place of OpenSSL. Oh, and also supports both glibc (the more common Linux C/C++ library) and musl - a more recent (2011) libc implementation meant to provide cleaner, more efficient and standards compliant implementation (which also happens to be greatly suited for machines running servers, where glibc is just fine for desktops).

Now, personally, I am not as intimately familiar with how runit init works in detail, nor had even heard of musl before or used any BSD-type OS since my early nerdy days of my late teens, spending my time learning, reading and pursuing heroin and drugs. So, if you want to learn more about runit, visit the official site. Otherwise, as many of us know, systemd runs as PID 1 (process ID 1), spawning the system and managing services, using sockets and using D-Bus for managing some of those services, while also offering on-demand control of daemons (processes running in the background), etc.

The xbps ("X Binary Package System") is interesting however, because it offers both repos for pre-built binaries, as well as source code repositories for building and compiling locally via xbps-src (similar to Gentoo a little bit in that way). Xbps-src makes sure it uses isolated containers to build packages locally (without requiring root privileges) and can build both natively or cross compile for target machines suppoirting both the glibc and musl C libraries.

And as of 2017, Void Linux also introduced support for the Flatpak package management system, which allows the installation of the latest packages from upstream repositories.

Default GUI user interfaces you can choose from are: Dash, Enlightenment, Cinnamon, LXDE, LXQt, MATE and Xfce.

 

Gentoo: Bare Metal Optimization of Build-it-Yourself Compilation, From Kernel to Vim (As Hardcore As it Gets)

Now, Gentoo is perhaps best known as the hardest, most radically low-level and insanely difficult to set up Linux distribution where you have to compile and customize everything yourself - sometimes for days on end - with the purpose of maximizing your system's performance on the machinery of your bare metal as much as practically or even realistically possible. Also like Void above, Gentoo was a project launched by an BSD developer who wanted to create an autobuild system for locally compiling packages from their source code (whose original design was based on BSD's ports system collection) - which he named portage (and uses the command 'emerge'). Just like other such similar distros, Gentoo doesn't impose its own look or feel (interface or otherwise), since neither is that its purpose.

Invoking the emerge command would update local copy of Gentoo's repo and search for a package, download its source code, and compile and install it along with any dependencies included, according to the configuration and compile instructions given.There are, mercifully, a handful of packages coming as pre-compiled binaries due to the excessively long time it takes to build/compile them, such as for example the Libre/OpenOffice suites, Mozilla Firefox and other such applications that take really long time to compile.

 

A cautionary tale. Source: XKCD

But what gets even more interesting with Gentoo is how it allows for the reduction of compile times by allowing for such things parallel compilation or using UNIX pipes (a form of dataflow programming from the shell where you pour the output of one program as the input of another or chain commands and programs together in various ways) for direct dataflow in place of using temporary files. Furthermore, package compilation may also be distributed over multiple machines at the same time, dedicating them to the same process simultaneously. To just name a few of the options you can tweak Gentoo to perform.

One other advantage to being a source-based distribution with repository that describes and gives instructions on how to proceed with building packages makes it particularly flexible and portable, easy to adapt to any machine architecture by changing or adding the necessary instructions before proceeding with the compilation process of a package.

Now, with all this in mind - particularly the optimization part where you spare as much free computational and processing resource as possible on your machine - just think for a moment about all the people out there trying to mine PoW currencies on Windows 10, using overpriced GPUs or China-built ASICS sold to them at 10 times the production cost. Or worse yet, millions of people seem to be searching for "Android mining" in Google - as if your mobile phone wasn't itself a can of worms already. And not just mining currencies, there are plenty of other examples where this is a reasonable, if not highly recommended solution - the financial sector, where processing power to execute complex algorithms with functional accuracy, reliability and speed is crucial (an arms race for the nano-second of scalping the fraction of the cent, etc.) Or more altruistically noble causes of distributed computing such as drug discovery, etc.

 

Conclusion

All three Linux distributions above described tend to more closely follow the tenets of the original UNIX philosophy and KISS principles of programming and design. Those are actually worth mentioning:

The Unix philosophy is documented by Doug McIlroy[1] in the Bell System Technical Journal from 1978:[2]

  1. Make each program do one thing well. To do a new job, build afresh rather than complicate old programs by adding new "features".
  2. Expect the output of every program to become the input to another, as yet unknown, program. Don't clutter output with extraneous information. Avoid stringently columnar or binary input formats. Don't insist on interactive input.
  3. Design and build software, even operating systems, to be tried early, ideally within weeks. Don't hesitate to throw away the clumsy parts and rebuild them.
  4. Use tools in preference to unskilled help to lighten a programming task, even if you have to detour to build the tools and expect to throw some of them out after you've finished using them.

It was later summarized by Peter H. Salus in A Quarter-Century of Unix (1994):[1]

  • Write programs that do one thing and do it well.
  • Write programs to work together.
  • Write programs to handle text streams, because that is a universal interface.

In their award-winning Unix paper of 1974, Ritchie and Thompson quote the following design considerations:[3]

  • Make it easy to write, test, and run programs.
  • Interactive use instead of batch processing.
  • Economy and elegance of design due to size constraints ("salvation through suffering").
  • Self-supporting system: all Unix software is maintained under Unix.

The whole philosophy of UNIX seems to stay out of assembler.

The so-called KISS ("Keep It Simple, Stupid") principle originally comes from the US navy (Occam's razor for military operations, complexity is the enemy, if something is stupid, but works, then it isn't stupid, etc.), but was later on adopted as capturing the design principle(s) of the UNIX philosophy. And, of course, by simplicity here we do not mean clicking a "Start" menu to Shut down your computer from or having your screen tell you that "it is now safe to turn off your computer" (Windows 95, remember? Where UNIX-like systems stick to KISS principles, Windows tends to treat their users like idiots that should be protected from themselves, while at the same time used and squeezed for every penny they are willing to cough up) - but simplicity as in non-complexity, compartmentalization, order, minimalism, comprehensibility and auditability.

Anyway, one reason I actually decided to post this is I had this gig I was offered from Upwork, the guy hadn't a clue - just SEO and pay somebody a little to spew whatever crap so long as it has 1% density of main keyword (i.e., 20 times "Android mining Bitcoin" in a 2000 word piece, regardless of anything else - validity or factual truth of the matter, quality of content, etc.) - and it seems A LOT of bullshit is being searched for, so apparently the mass demand for bullshit finds its supply via bottom feeder freelancing marauder platforms (take 20% from whatever you make, Upwork that, for the valuable service they provide you with by being total assholes and disappearing you as deep as possible to find if you don't pay them - even for the so-called "connects", points you need to even apply for anything... buuut - alas, cos of reasons, I am currently and hopefully for not much longer stuck with it...)

And, lastly, as the question of the actual title of this post: what is it that YOU use and why?

(Oh, and sorry for not providing more links across the article, a little too lazy for that now - perhaps as lazy as you are to click on stuff like reading package manager documentations of highly technical nature...)

Regulation and Society adoption

Ждем новостей

Нет новых страниц

Следующая новость