A summary of my 18 month long Linux journey, remembering past milestones and setting future goals.

The first computer I ever used was a Windows XP machine at school. While some friends had computers at home, I had to rely on cyber cafes for a few years before I forced my parents to buy me my first laptop right after school. I used this Windows 7 machine for a decade through college and during my first job, before it finally gave up a few months into my post-graduation. I was too busy to get it repaired right away so I just bought a new Windows 10 machine, and finally got to it only a couple of years later. It took me no time to realise that the laptop was not able to handle Windows 10 and even the original Windows 7, and that is where my journey with Linux began.

#1: My first Linux installation

I got the idea of installing Linux from a friend who had bought this very laptop around the same time as I had. I hadn't even burnt a Windows CD or bootable USB so I was a complete noob when it came to installing any operating system on my own. After discussing with this friend who used to work with Red Hat at the time, I looked up Linux Mint and ended up on their website.

I found a YouTube video and followed all the steps to download the ISO image, create the bootable USB and choose the right options in the installer, and to my surprise I got it installed successfully in the first attempt itself!

#2: Distro-hopping and landing on Lubuntu

The user interface provided by the Cinnamon desktop environment seemed pretty similar to Windows, so I was able to start doing basic stuff in no time. However, Cinnamon is on the higher end in terms of resource usage, and that would quickly become evident when I opened multiple applications simultaneously. Thankfully, I soon discovered that Linux Mint has another version with the lightweight XFCE desktop. I switched immediately and the improvement in the experience was evident right away, as the RAM usage got halved with XFCE.

In simple terms, a desktop environment (DE) is a set of programs which enable the use of a graphical user interface (GUI) on a Linux distribution. Google helped me understand that Cinnamon, the default DE offered by Linux Mint, is one of the more resource-heavy ones. A few more searches later, I found out that XFCE is a lightweight DE and consumes much less resources than Cinnamon. Fortunately, Linux Mint also offers a XFCE edition, which I installed immediately.

I was able to reduce the footprint further by uninstalling the apps I didn't use, but I wanted to check out if there was anything lighter. That is when I found Lubuntu, which used the minimal LXQt desktop environment. Switching to Lubuntu was also quite easy because it is an official flavour of Ubuntu, which is the most popular Linux distribution and is also the base for Linux Mint and many other distributions. The switch from LXQt to XFCE helped me reduce RAM usage by another 40%, with a measly 259 MB RAM usage on a fresh boot!

#3: I use Arch btw!

Lubuntu was working perfectly for my workflow so it stuck with it for more than 5 months. During this period, I discovered multiple Linux sub-Reddits, YouTube channels and podcasts and that helped me learn about various Linux distributions, their similarities and differences. One Linux distribution which piqued my curiosity was Arch Linux. Unlike Linux Mint, Arch is an advanced distribution which allows the user to install a base system using a text-based command line and then customise the experience by adding components of their choice. The Arch wiki which contains information about installing and maintaining Arch Linux is considered the best documentation source for a Linux distribution, so much so that it can help you debug issues with other distributions too!

My first attempt at installing Arch Linux was unsuccessful as expected, so I thought of choosing an easy-to-install Arch-based distribution like EndeavourOS or using an automated installation script like ArchTitus. This is when Arch Linux announced the inclusion of archinstall, their own automated installation script written in Python. As with Linux Mint, my first attempt at Arch Linux using archinstall was successful, and I got a fully functional desktop running in less than an hour!

#4: Installing Linux inside Windows with WSL2

The direction taken by Microsoft after Satya Nadella took over meant that there were a lot of positive yet unexpected products getting introduced. One of them was the Windows Subsystem for Linux, which allowed users to install a Linux distribution within their Windows installation. While WSL utilised a translation layer between both operating systems, WSL2 utilised a virtual machine with a Linux kernel as the base, and therefore you could just install core utilities provided by the distribution of your choice and start working.

I started by installing Ubuntu on WSL, but I was unable to upgrade to WSL2 so I had to uninstall a couple of months later. I decided not to use WSL at all and tried to uninstall it as well, but ended up getting WSL2 (Microsoft doesn't seem to like it when you uninstall some programs). The improvement from WSL to WSL2 was pretty confidence inspiring for me, so I decided to stick with it. Thanks to WSL2, I am currently running three Linux distributions within Windows - Gentoo, Void Linux and Fedora.

#5: Trying out advanced Linux distributions

While popular Linux distributions make a lot of choices in terms of the components used to build on the base that is the Linux kernel, there are many advanced distributions which allow users to choose less common but more optimised replacements for these components.

Users installing Gentoo have to compile packages instead of using pre-compiled binaries, and therefore can optimise them to the specifications of their own system. Void Linux provides an alternative init system (which controls background and foreground processes running on an operating system) and an alternative standard library used for the compiler toolchain. Alpine Linux, takes it deeper by providing alternative core utilities and bootloader (used to identify the install operating system) along with the aforementioned components.

I was able to get Gentoo and Void running on WSL2 immediately, and replaced Arch Linux with Alpine Linux on my second laptop for some time before I went back to Arch.

What Next?

I just got two 4 GB RAM sticks delivered for my old laptop as I write this post. With the RAM upgrade, I hope to try out more Linux distributions, desktop environments and applications. The ultimate objective is to move completely to Linux, which might not happen until I find a convincing replacement for Microsoft Office. Hope I can inspire you to try it out!