User Tools

Site Tools


information-technology:2019-linux-setup

I am a linux noob, so don't expect this to be a top notch article. What you have here is me trying to wade through some chatter about linux, picking out what might be important to someone starting off that likes to customize their system.

2019: Linux Setup

Systemd

Desktop Environment versus Window Manager:
https://www.ghacks.net/2008/12/09/get-to-know-linux-desktop-environment-vs-window-manager

Linux purists, are saying that Systemd is causing bloat. The issue is that because Systemd is becoming a standard among many distros, some programs are being written that are dependent on it. These programs won't run on distros without Systemd.

Tomas, the guy over at Slax, is able to articulate the situation, but says he doesn't really care, that he's happy that someone else takes care of that layer of linux, while he works on modularity along the surface.

I've seen Windows become bloated, and I already know that I'm in the camp of KISS simplicity, especially under the hood. The complexity will increase until one person is not able to grasp it all to be able to organize it. Then there is chaos. It won't matter that Linux is open source. Then the wrong people will take advantage of the chaos for their own ends.

“ Because after systemd, no one will be able to work on their own system any more. They will just pull down systemd, and accept whatever it is - because it is a massive, deeply interconnected rat's nest, and no one but its very small group of creators will ever be able to extend or maintain it. ” source

Perhaps the main issue is that software is being made that is not modular/portable, with dependencies on systemd. MX Linux, uses a systemd shim, in order to be more compatible with software, while retaining an independent init system.

I searched for “systemd modularity” and came up with this page, which is by a developer of systemd, stating the myths surrounding the controversy surrounding systemd. Despite all of what he may say, which I am not necessarily disagreeing with, the KISS philosophy is usually the safe bet.

Looking for Additional Controversies

Trying to make sure I'm not missing any other controversial aspects of Linux, I found in the Wikipedia article:
“ Some security professionals say that the rise in prominence of operating system-level virtualization using Linux has raised the profile of attacks against the kernel, and that Linus Torvalds is reticent to add mitigations against kernel-level attacks in official releases. “
I read this as: The establishment wants to complicate something simple, so that it can later use the complexity to leverage power. History repeats itself over and over. They want to add complexity to the kernel in the name of “security”.

https://www.vice.com/en_us/article/3km9qb/linus-torvalds-is-back-with-linux
Article about news sources criticizing Linus Torvalds, and Linus Torvalds being influenced by the criticism. This could be good, and this could be bad. Good if the meritocracy continues; good if people treat each other well. Bad if this is an underhanded way of controlling the developers.

Honestly, I don't know what's going on, but isn't it always the same? I do admit that I'm having a lot of conclusions without facts. I'm going by my own real world experience.

Rolling vs Stable Release

https://mxlinux.org/forum/viewtopic.php?t=43778&start=20

quote

MX Pros:

1. stable, quick and reliable Debian Stable distro with great tools; 2. One-click updates from MX-Updater that you don't really need to worry about. No need to check on any update announcements or advisories before installing updates for fear that an update might break something. 3. Packaging Team really does a great job giving us packages that are not found in standard Debian repos or which are updated beyond the versions found in Debian.

MX Cons:

1. there does come a point at which updates of certain packages can no longer be repackaged for MX as they depend on a higher version of certain key platforms on which that Debian Stable branch is based. 2. Eventual need for reinstallation. Fixed releases like Debian/Ubuntu based distros have a base of key platforms/packages that don't change, and everything else for that version is built on these platforms. Every 2+ years, a new release with the latest base is released. Eventually you have to reinstall to get the latest base, because at some point in time, newer versions of some of your applications may no longer be installable on the older base since they will be built to depend on the newer base. Even if you don't care or need newer versions of programs, you should upgrade once they no longer provide security updates for your version of Debian.

I will state that I don't find the reinstallation every 2+ years that difficult. You can preserve the /home partition of your current MX install when installing the new version of MX over the /root partition. And besides, backing up your data isn't so hard if you already store most of your data and media in a separate partition or drive rather than in /home of your distro. That way, the installation process doesn't affect the main place that you store your data.

Rolling Distro Pros:

1. rolling distros upgrade everything, even the key platforms the rest of the distro gets built on, all the time. If your favourite package has some new feature coming that you really want, you'll get it soon enough.

In Debian, you may have a scenario where you are looking forward to a long awaited feature or a bugfix for an annoying (but not serious/dangerous) bug in an application, then you find that the new version of the app with the new feature or fix can't be built to work on your version of Debian.

2. no need to reinstall the distro as it just keeps rolling on.

Rolling Distro Cons:

1. in return for the above benefits, you will generally need to give the distro more care and reading up before installing updates/upgrades. Since everything is being upgraded, even foundations, updates can sometimes be a little tumultuous. Some rolling distros are easier to manage than others, because the developers try to control and moderate some changes before releasing the updates to the users. Some just throw all updates into the repos and the user has to do all the work.

The one you mention is not difficult as long as you don't jump straight into updating when you are notified of any. Wait two days then read the update announcement forum thread to see if some known issues have cropped up and what the solution is. Then update, incorporating the solutions if needed. Most of the time nothing's going to go wrong even if you don't read the announcements first. But once a while an update will come along that bites you in the butt, and knowing Murphy's Law, it'll be the one for which you didn't do your homework.

2. you may also need to carry out some regular maintenance on certain config files.

During updating, some config files may have updates but your existing .conf file will not be written over. Instead, the new version is saved with a different suffix. I ignore most of these changes, but there are one or two config files where I do take notice of new versions. Some changes might need to be merged into the current config file. But I do it at my leisure, maybe once every few months.

end quote

I like to customize, and I need things under the hood to be stable. The only person making changes needs to be me, otherwise when things go wrong there will be too many variables to deal with. A rolling distro placates creativity and drives complacency. You end up accepting what's given to you, because it's too hard to do otherwise.

Repositories

Ubuntu and Debian combined have the largest repository base.

“You may want to know whether the software repo is compatible or not in between Debian and Ubuntu. The answer is both yes and no. Most of the time the software repositories works well in both systems with little changes or no changes at all. But many times you may need to edit the deb packages for satisfying the dependencies.

Moreover, Ubuntu has its packaging system called PPA through Launchpad that indeed doesn’t work on Debian. Canonical has developed a universal package management system called Snap and it also available in Debian repo. ” source

However, Ubuntu is not Debian, and MX Linux is further away. Using PPA in MX Linux is not as easy: https://mxlinux.org/wiki/system/add-ppa-repository

Just because you don't have access to all the software in the two largest repositories, isn't the end of the world. Usually, the stuff that may not be compatible, is that way because it's a bloated piece of junk. Good software is integrated to have fewer dependencies.

Dependency Hell

When software is written, developers will often use existing libraries for certain functions. Existing functions and API's make programming easier because the developer doesn't have to reinvent the wheel.

“In an ideal world, libraries would be fully backward compatible, so that a program that depends on one version of a library, would work with any newer version of that library. But library developers don't do that, and I don't know why. Linux wants to be ideal, and take up less hard drive space and resources (like RAM), and therefore use only one version of each library. So sometimes you want to install two programs that both use the same library, but different versions, and this makes for dependency hell. The portable theology, says “lets bundle the library into the program itself, so that it doesn't use the one that comes with the system”. This is contrary to the Linux ideal, but makes things much easier for the end user.” 2018: Portable Software

Since the amount of RAM available in current hardware is usually more than sufficient, one solution would be that each program load its own library versions.

Needing additional libraries means that the developer didn't take the time to extract the parts used within a library and add those to the main program, reducing the overall footprint. This requires more work: software developers are usually not interested in taking this step.

Portable Software

Modular software is easier to take with you when you move from one system to another. There are groups like https://appimage.org, that package program dependencies and make a singular module. There is also Flatpak and Snap packages. These articles covers all three:
https://ostechnix.com/linux-package-managers-compared-appimage-vs-snap-vs-flatpak
https://linuxhint.com/snap_vs_flatpak_vs_appimage

Choosing a Distro

The most popular distro at distrowatch, currently, is MX Linux. It has a coalition with Antix, which is Systemd free. Doing a search at distrowatch with the filters “Not Systemd” and “Beginner” leaves me two choices: 1. PCLinuxOS (20) and 2. Toutou Linux (199). Not what I had in mind.

Thread about MX Linux and Devuan Linux: http://forums.debian.net/viewtopic.php?f=3&t=136062&start=15

It occurred to me, to look up what it would take to connect a bluetooth mouse with a distro like Slitaz, which is even smaller than Antix.
http://doc.slitaz.org/en:guides:bluetooth
It's complicated. Computers are supposed to automate human processes. That's why we have them. So perhaps the smallest, leanest distro is not for me? I can spend hours trying to figure out which distro is right for me. It is a rabbit hole.

Fully Supported Hardware

Everything hardware is supposed to be supported by the linux kernel. As the kernel gets updated, more hardware is supported out of the box. However, too often there is a lot of “patches” that need to be applied specifically to get the most from your computer's hardware. Devices prepackaged with an operating system, such as Windows, Macos, or Android, have all this taken care of for you. Such is an advantage of buying from System76 or Purism: see 12 Places Where You Can Buy Linux Computers.

Linux has advanced in the ability to fully support a laptop or desktop without the need for hunting for additional drivers, etc. Chances are, whatever distro you try out won't need additional drivers. However, having support for hardware doesn't mean the driver is optimized for a particular device.

Something like power management can be very device specific. Linux isn't necessarily optimized for your particular hardware. Although the same can be said about Windows OS, manufacturers provide custom drivers as addons. This page gives lengthy details on configuring linux power management: https://wiki.archlinux.org/index.php/Power_management

I would like to find some benchmarks, showing battery life of linux vs manufacturer OS.

Linux on Macbooks

Something as ubiquitous as a Macbook, should have plenty of support, right? See that the 2016 and 2017 models are not 100% supported, and battery life is poor:
State of Linux on the MacBook Pro 2016 & 2017

There are instructions on tweaking the Macbooks on the following distros:

User's experience with both MacOS and Linux on a Macbook Air:
https://medium.com/@alex_nekrasov/installing-linux-on-macbook-air-838f9b087338

User's experience switching to Linux on a 2015 Macbook Pro:
https://medium.com/swlh/running-linux-on-my-macbook-9738b3b4f84d

This article compares power consumption between MacOS and Linux. However, he used Linux with no power optimizations (like from PowerTop):
https://www.phoronix.com/scan.php?page=news_item&px=MTE2Njk

Breaking news July 2019: Linux 5.3 Will Surprisingly Support The Newest Keyboard/Trackpads Of Apple MacBooks, phoronix.com. The drivers had to be reverse engineered, because Apple purposely tries to avoid Linux progress.

Why Has Linux Not Become Mainstream?

Android is linux with Google on top.

People use whatever they are given. If they were given computers with linux (laptop, desktop, phones), they would use linux. They can't be bothered to install something else unless it's super easy, such as installing a web browser like Chrome.

Perhaps if linux was given out as a usb drive and just worked right out of the box with the option to dual boot the original operating system, then more people would try it out.

However, sometimes it doesn't fully work, requiring additional drivers one must go out and look for. This isn't the fault of Linux, but of industry with no incentive to make Linux work on their devices. Industry actually works against linux becoming mainstream, because they make money by having proprietary operating systems.

In the case of Google and Android, Google took the free and added a proprietary layer on top which makes them money.


Discussion

Enter your comment:
K᠎ U M U B
 
information-technology/2019-linux-setup.txt · Last modified: 2022/04/30 11:39 by marcos