10 Years on Linux

in #linux10 months ago


A little over a decade ago Windows 8 was entirely unusable for me. I’m not referring to the mobile-style UI and bloat that marked a change in Windows, but I mean unusable in the none dramatic sense of the word: i.e. I couldn’t get more than a day or two before my installation would brick itself. After many, many reinstalls and figuring out it was a particular update to blame, I went about trying to apply the band-aid approach that would at least give me more than a few hours worth of usage per OS installation before my computer bricked: which was trying to disable updates. I belt and suspenders approached it, both deferring updates in settings and set the WiFi network the device was connected to as a metered internet connection (or whatever the terminology was, it’s been a decade so I might have misremembered those terms).

Even if it was far from ideal, I was elated – my teenage self was a computer wiz that found a temporary fix rendering my computer useful again until a long-term fix was found. That sense of accomplishment quickly dissipated though, as shortly after when starting my computer I was greeted by an installing updates screen, followed by my computer bricking itself yet again. Despite disabling updates in two different ways, Microsoft came in and decided that my preferences didn’t apply because they deemed whatever update too important for some lowly peasant such as myself to refuse. After a lot of searching, I finally figured out how to truly remedy the problem by disabling the Windows update service altogether, but immediately decided I needed to find another solution – which brought me to the topic of this post: Linux.

From then on I had the pretty stereotypical Linux journey: i.e. installing Ubuntu and leveraging its ease of use and beginner friendliness, then a few months later pivoting to something that didn’t give me Amazon search results on my desktop. Sometime later Windows 8.1 came out, and while still Windows, at least was functional; and combined with my need for Windows specific software for school I stopped using Linux exclusively. While games and software for school, then college (Uni for you sophisticated Europeans), then work required Windows (often that I couldn’t get to work in Wine) I’ve gotten by using combinations of duel booting and VMs, never willing to switch back to Windows full time.

Today, in this post, I would like to go over why I use Linux, what I use, and some potential plans for future usage. I don’t have any particular goal to convince you of anything, nor do I guarantee this post will be perfectly cohesive and linear, but I want to chronicle my journey here and speak about what I use and why.

Part II: Why

Okay, so I went over why I initially gave Linux a go, but now that Windows is usable I wanted to go over why I still go out of my way to Linux it as opposed to something like Windows. I wanted to give it a fair bit of thought here, and really analyze it. To start I’ll list some things that aren’t truly why I’m going out of my way to run Linux.

First, I’m not on Linux because it’s more secure. Sure, much more malware is made for Windows desktops than Linux desktops, so you’re more likely to stumble upon malware for Windows; however, Windows also takes that into account and runs AV in the background all the time. AV does a good job at detecting old malware, so stumbling into old existing malware isn’t as huge of a risk as one might consider it. It’s the newly written malware by people who at least sort of know what they are doing that is the risk, stuff that won’t be detected by AV, and is well placed and/or targeted towards me. This could be generic targeting, such as malicious software in Google Adwords going after specific operating systems or keywords related to them, or a particular attack against me specifically. In either of those cases, both antivirus and security through obscurity would not provide me with much in terms of tangible benefits. Further, there are also plenty of cross platform programming languages (e.g. Java) that can effect any operating system in a similar way. For these reasons safety from malware comes down to user behavior, and I would not consider myself secure from malware on Linux.

Next, Linux isn’t necessarily more stable than Windows either. Now, sure, I got into Linux because Windows 8 was unstable to the point of being unusable, but that’s sort of an exception. I might expect Debian (and some of its forks) to be more stable than Windows, and a Linux server is expected to be more stable than a Windows server (which is why Microsoft uses Linux servers), but that’s not always the case. For me running Debian I do expect it to be a tad more stable than Windows 10, but after some thought, this isn’t a deciding factor, and depending on the distro in use Windows could actually end up being way more stable than Linux.

Further, I’m not on Linux because it’s a modern, efficient operating system built from the ground up. Sure, Windows might be legacy code, built on legacy code, with a sleek-looking modern bit of code on top. To quote Bill Gates: “if you can’t make it work good, make it look good.” In most FOSS (free and open source software) projects, as opposed to proprietary software, you’ll find less code doing more work; making it less bloated and more functional. While I am stepping a bit out of my depth; Linux, however, isn’t free of this legacy code or inefficiencies either. From the ‘everything is a file’ Unix philosophy, to some desktop environments still being built to act as if they’re connecting to a remote display server, there’s plenty of legacy code to go around in Linux as well.

So, if I just listed off reasons that weren’t quite deciding factors, then what are the reasons? Well, I have a few, but they pretty much boil down to control and licensing. To break them down further, first, there’s the lack of bloat. Sure, occasionally distros ship with what some (including myself) would consider bloat – I’m looking at you Canonical; but there’s no such thing on Linux as being unable to uninstall a manufacturer installed application. Most distros only ship with some basic utilities which can be removed at will, and then it’s up to the user to add or remove whatever they see fit. This is not to mention there’s also a lack of a million Microsoft features, components, and services filling up your hard drive unnecessarily and taking up processing resources.

Speaking of adding or removing anything you see fit, the next aspect is the control over your own operating system aspect of Linux. As I mentioned, you can add or remove components at will, but this goes well beyond what somebody unfamiliar with Linux might think this includes. Even basic system components like your desktop environment can be replaced, giving you way more options than on other systems. Touchscreens are popular now, so plenty of desktops need to cater to those, but what if you don’t want that? Well, if you’re on Windows you’re out of luck, but on Linux you’re a few words in the terminal away from changing that. Of course you can pick and choose way more components than your desktop, but it’s a great example of something customizable.

However, this control goes well beyond just customization. Remember how when I deferred Windows updates, then set my WiFi to metered (which disables installing updates over it) and Windows still updated? Well, that doesn’t happen on Linux. When I tell my computer to do something, it does it, and I don’t have to worry about some company deciding they know better than I do and doing something anyway. Further, adjacent to control - and another big reason I’m on Linux, is privacy. Windows is full of telemetry, and I can never fully know or trust what information they’re collecting, but on Linux when I disable telemetry (if even applicable) I can trust it’s not collecting info.

Yet another reason why I’m on Linux is its efficiency. I’ve heard people say “Linux is free unless you value your time,” but I feel it’s actually quite the opposite. Of course it does take time to familiarize yourself with the system, but in my usage Linux has certainly saved me time in the long run. The biggest one is of course the terminal, which while looking scary at first, can accomplish tasks by typing three or four words instead of a minute or so of navigating GUIs on Windows. Similarly, homemade scripts that took me three minutes to write can save me probably ~15-30 seconds each time I run them (e.g. opening Firefox in a separate profile for homemade web apps, without requiring Firefox to always prompt me to choose a profile at launch or to switch profiles while running). The efficiency at which you can operate Linux once you’ve learned it can make a huge difference once you start thinking of each little bit of time you’ve saved each day.

Last, there’s the ideological component as well. And yeah, I know that ideologies and the internet don’t go hand and hand all too well (or really well, depending on what you consider well), but this one’s luckily not too controversial. Basically, the ideology here is that everybody should be able to access the software freely, review its code, and do with it what they please with their systems running said code answering to them and not some developer or company. Call it communism or call it libertarianism, regardless, it’s something I feel strongly about and a driving factor in why I’m writing this on Linux.

Part III: What I use

Now, as much as I joked about ideology being the controversial part of this post, here’s the real controversial part: my favorite setup, and how everybody who does something slightly different is entirely wrong. At a certain point I came to an understanding about how distros and forks worked, and realized Ubuntu was just Debian + pissware; so I migrated over to Debian and have continued to use it since. Maybe deep down I’m still traumatized by Windows 8, but stability is a high priority for me and it’s worked well. I have experimented with Slackware, Arch, and everything in between; but if you exclude Gallium which ran for a bit on my Chromebook the only bare metal installation I’ve had in the last eight or so years has been Debian.

The biggest complaint about Debian people often have is that software can get outdated in terms of features on a stable release, but for me it hasn’t really been an issue. Browser updates and security updates come through, so there’s no fear there, and most of the time for me it doesn’t matter if the version of a tool installed via the native repository has lagging feature updates or not (e.g. I’ve been using Libre Office forever now, and at no point have I really noticed any changes that I couldn’t have lived without). Even in the event that you really need features not in the repo yet, however, Appimages, Flatpaks, and Snaps can fix that.

As a recent example, Prism Launcher (a FOSS 3rd party Minecraft launcher) doesn’t come with the latest version of Java bundled as the official Minecraft launcher does, and the then latest version of Java wasn’t added in the Bullseye repo so it couldn’t be installed natively… except I was already intending to install it as a Flatpak (which auto installs the Java dependency as a Flatpak). The only reason I even realized it could have been a potential issue is because it was pointed out on the installation page. In general, with the exception of desktop environments (and I use XFCE which never changes), it’s super easy to get all the latest and greatest when desired while also getting the stability not possible else ware. Otherwise, in the super rare circumstances where I need something newer like while compiling an app image I can just spin up an Arch VM.

The other major issue would be hardware compatibility – which of course can’t be resolved with Flatpaks. Since the Linux Kernel in Debian lags behind other distros you can’t run Debian on the first day of release for the latest hardware. At least for me anyway, that’s not usually an issue. Heck, my laptop is seven years old, and my other computer is a used Chromebook I picked up a couple of years ago that was released 8 years ago.

The Big Distros I don’t Use
And I get it, as hard as it is to believe, some people make the wrong choice and do different things than I do. Lol, but seriously, there are a few other options as well. I’ve heard some people say that Fedora is a great mix between Debian and a rolling release like Arch; which I’ve toyed around with a bit and it seems to be good. Maybe not quite as much compiled for it or documented about it as Debian and Debian-based distros, but given Red Hat got Flatpaks going that kinda makes the former a moot criticism. I still prefer Debian for the reasons mentioned above, but I can understand why somebody might come to a different conclusion.

There’s also Arch, likely the best and most popular rolling release. I’ve heard Arch described as a hobbyist’s distro, and I don’t think that’s the best way to put it. I’d describe it as a tinkerer’s distro since it mandates somebody has at least a cursory understanding of their system and enjoys maintaining it. Or, of course, they like to have the latest hardware from day one and like to tinker with those sorts of things and are stuck with the software side of maintenance.

I do love to tinker on my computer, but not with my computer. I enjoy firing up a VM with something new on it or toying with some newish protocol or something to see how it all works. What I don’t like to do though is tinker in such a way that I risk breaking my computer. The last thing I want to do is be on or just getting off a twelve-hour shift of fixing a bunch of systems that aren’t doing what they’re supposed to do, only to find that some update had a manual intervention I didn’t read up on and end up bricking my computer, or end up with dependency requirements that mess up my software; or something similar to that.

That said, you could presumably glean that if I’m on Debian over Fedora, then I’m certainly not looking for a rolling release. Though there is a bit of irony in how opposite releases can end up in the same place, and I could end up with almost the exact same software on Debian as someone running Arch. So first is the desktop, right? You can’t use that through a Flatpak so it has to be older on Debian, except one of the things I’ve heard is that stability wise it’s best to use XFCE or a tiling window manager on Arch that stays roughly the same since being on the cutting edge of something like GNOME or Plasma might end up breaking stuff – so our desktops could be the same in either distro. Oh, and from what I’ve heard if you install too many packages natively on Arch (especially through the AUR) you run the risk of dependency conflicts and the like, so some people might run a good portion of their software through self-contained packages like Flatpaks – which would be the same regardless of the distro.

And the last thing is that, for stability, some Arch users use an LTS Kernal. At that point, if they did everything I just mentioned, sure Arch would be pretty stable; but at that point they constructed a stable release of Linux with extra steps. If not though, I guess each time someone on less stable releases bricks their system it’s one less bug to risk bricking mine. Ooh, and I just thought of a second funny jab. Everybody says Arch is the endgame of Linux, but the endgame-endgame is when you run out of hair to pull out after each time your system bricks and you switch to something more stable. Alright, I’ll stop bugging Arch users now, otherwise they’ll insult me using big words and technical terms I don’t know.

Forks and Other Distros
Further, beyond the three distros mentioned above there are plenty of other ones as well. There’s a few like Slackware that are unique and built from scratch, and a few like Puppy Linux which are based on other distros but heavily modified to fit a particular purpose. Otherwise, however, when it comes to personal desktop Linux distros most of them are forks of the aforementioned three (or forks of those forks) that don’t bring much to the table aside from a different default desktop environment and system utilities. In most cases I prefer going with the project that the fork was based on and installing any software or desktop environments that were sought out, and I would recommend anybody do the same. While installing the software manually might seem slightly more inconvenient, usually you’d be trading off slower adoption of security patches, potential instability, and more bloat for a few less sentences in the terminal.

I would make an exception for something like Linux Mint (and maybe Pop-OS or the newer trendy distros that I’m not too familiar with), even if I wouldn’t use them myself. For somebody just trying out Linux, something like Mint comes pre-configured with a nice desktop, graphical software store, and proprietary driver options out of the box. While it’s only a few commands in Debian to get a similar setup (Mint is based on Ubuntu, which is based on Debian), for a new user who’s learning the system having everything setup in such a way brings a lot of value.

Desktop Environments
Last, beyond the distro, the next biggest choice in Linux would be the desktop environment (or tiling window manager if you want to go old school). As mentioned before, I’ve used XFCE for a while, and it’s definitely kind of a modernized XP feel (or any Windows versions before they got into the touchscreen market). I always remove the bottom bar with the shortcuts, then move the top bar to the bottom, and I think that’s what’s best for me. I can hit the Applications button then power off/sleep/hibernate/log off in two clicks, or hover over an application category and click on one in it. I got running applications to the right of that, and on the right-hand side of the task bar I have the time and other utilities, plus the option to switch between desktops for multitasking.

Sure, something like GNOME seems nice and flashy, but overall it feels more like tablet or phone software. You got the power options on the top right, the shortcuts on the left sidebar, then a button to pull up all applications in a grid view and it just seems something not as efficient for a mouse. Though again, as much as I’ve been joking about there being only my choice or the wrong choice, it all really just comes down to personal preferences.

Part IV: Future Plans, Schemes, and Other Mischievous Plots

Finally, closing this post up, I wanted to talk about what I’m planning in the future here. As of the first draft of this post I’m currently duel booting Windows 10 and Debian, but that might change here soon. Unlike in the past while in school, when it comes to work I’ve got a separate company provided computer so there are no outside factors forcing me to use Windows for personal use. The only real thing keeping me on Windows alongside Linux until now has always been games. With that, if I think I might play some games I might as well be running Windows, and since I’m running Windows I might as well do other stuff while on it, and since I’m doing all this stuff here I need to allocate more space of my hard drive (or relegate a Linux install to external media for a bit when my hard drive dies and I pick up a 380 GB replacement), etc.

A few months ago though I found out about Steam Proton, which if you’re unaware is Steam’s solution for running Windows games on Linux (similar to Wine). While it makes sense given I’ve been aware Steam OS and the Steam Deck are both Linux based and it wouldn’t make sense to buy a portable console only compatible with a fraction of the games on the market; I wasn’t aware of it and got a happy surprise to see it existed. I’ve got a few games I cycle in and out of playing and having successfully booted them all into Proton (minus Minecraft, which is Java-based and cross-platform) I can say that they all run well, and in the case of games for older versions of Windows like Fallout 3, works out of the box even when it won’t on Windows 10.

I’m not a huge gamer, so as long as my favorites run I’m not too picky otherwise. I have no qualms with using a game streaming service or just not playing games that I can’t get to run through Proton, and maybe in the future if I buy a device powerful enough I might toy with pass-through virtualization if I really want to play something I otherwise can’t. Beyond that, I’ve pretty much migrated all of my functionality over, from ISO burning to MTP file transfers; the kind of things I’ve done out of habit on Windows but are only one alternative piece of software away from having the same functionality.

It’s been probably a month or so since I booted up Windows except to migrate stuff over whenever I need something I can't just grab by mounting the main Windows partition. It’s taken me about a decade, but at some point soon I plan to overwrite the Windows partitions once and for all, possibly also upgrading to a larger SSD while I’m at it. It only took me a decade to do so, but hey, maybe I can tell myself it’s got some sort of significance being around the ten-year mark.

I can’t say for certain that right after doing this I won’t run into an issue flashing a device or doing something else that requires very specific software; then find myself needing to spin up a temporary Windows installation again. Regardless, though, that’s future me’s problem. I hope you enjoyed this somewhat long read, even if it was kinda opinionated and all over the place.

"What UNIX Cost Us" - Benno Rice (LCA 2020)





Congratulations @natebowie! You have completed the following achievement on the Hive blockchain And have been rewarded with New badge(s)

You distributed more than 200 upvotes.
Your next target is to reach 300 upvotes.

You can view your badges on your board and compare yourself to others in the Ranking
If you no longer want to receive notifications, reply to this comment with the word STOP

Check out our last posts:

LEO Power Up Day - May 15, 2023
The Hive Gamification Proposal
Support the HiveBuzz project. Vote for our proposal!