Moving my daily driver to Linux
I have been a continuous Windows user since I got my first computer. My dad gave it to me; it was a little Lenovo ThinkPad that ran Windows 10. But that changed recently.
I decided to switch to Linux. Why, you may ask? Well, to be blunt, I really didn't like Windows at all. It just started to feel like a buggy and overloaded mess. It had absurd amounts of bloatware, the battery on my laptop ran out heaps fast, and I was doing all of my programming on WSL↗ anyway. The things that were holding me back from switching were me thinking that Linux would be more of a buggy mess and that Linux would not support most of my games that I sparsely play and the applications I need.
But recently, I decided to pull the plug and make the switch. To switch to Linux, you need to choose a distro to install. Linux has tons of distributions, which are like the "flavors" of Linux (Here↗ is a small test that you can take to determine which distro you should install). I decided to go with Ubuntu, because it seemed the most stable for a desktop environment, plus I already knew how to use Debian, from me setting up a server previously (Read more Here↗).
The next step is actually installing it. The Ubuntu installer is really minimalistic, honestly a 10/10 installer. Simple to use and efficient. This part did not take more than 1 hour. Essentially, you have to download an ISO, flash it to a sacrificial USB stick, and then boot up with it plugged in. I won't go into more details here, but there are lots of guides online on how to install Linux. That's it! After that, you can log in into Ubuntu, and you are at the home screen!
Initially, I was blown away by Ubuntu. It felt so smooth, but at the same time so optimized, I loved it. Windows does not do well with animations, purely because it hoards all the performance running the bloatware. It was unexpected. But, there were some issues.
The first issue I faced on Linux was getting my GPU to work. Ubuntu, by default pre-installs compatible drivers for your hardware, and for me, I have an NVIDIA RTX 3050, which needs drivers, and Ubuntu installed them automatically, but they were the wrong ones, so that was causing some glitching of windows when dragging them. One more thing to mention, most games did not run on the GPU by default (will expand on games further in this blog), so they have to be configured using environment variables. For this, I found a useful script: Prime-Run, which is basically a script that sets environment variables for you automatically. Surprisingly, it was not installed by default. To install prime-run, you can use these commands below:
wget https://gist.githubusercontent.com/abenson/a5264836c4e6bf22c8c8415bb616204a/raw/5f65679690075547938ed808d1e665f93eb9f2fd/prime-run
sudo cp prime-run /usr/local/bin/prime-run
sudo chmod +x /usr/local/bin/prime-run
This will automatically get prime-run from GitHub Gists and place it in your applications directory. Now, to run any application on your GPU, run this command in your terminal:
prime-run
This brings me on to the next downside of Linux: its Terminal nature. For Windows, MacOS, everything is primarily done through the GUI, but not in Linux. To actually use Linux in your daily life, you will need to learn the basic commands that Linux uses, and you will be using the terminal quite frequently. However, this was an upside for me because I already knew how to use Debian from my servers, which run on Ubuntu Server.
Some more downsides include, in my testing, Ubuntu was a lot more unresponsive when under load. It would constantly freeze up, but this was quite rare.
Now, for the upsides. Linux is amazing for performance. I would say, from what I feel, it has a 60% performance increase from Windows on the same hardware. I can't really vouch for other distros, but Ubuntu is fantastic for performance. I would again blame the bloatware on Windows that prevents it from giving its fullest. Linux is also amazing with animations so far; it is reaching Mac level animations, while on Windows, the default animations would stutter and lag.
One downside I was expecting Linux to have was no support for the occasional games that I play. I went into this thinking, "Okay, I guess I will have to give up that occasional gaming I do, or I will have to dual boot or something," but that was not the case at all. I found this really amazing app: PortProton↗, which allows you to run Windows games on Linux using Proton (which is what Steam and many other apps use to virtualize a Windows distribution, allowing Linux to run Windows games/apps), and the performance was amazing. While playing Hollow Knight, I was getting the same, if not better performance than Windows, with Proton. It's crazy how optimized Linux actually is. One more app you would want to consider is Bottles, which is essentially the same, but it allows for more general apps as well as games.
Linux also has really good package managers. For example, Debian has APT (Advanced Package Tool), but different distros have different package managers. I also really like that you can update everything on the system with a single command:
sudo apt-get update && sudo apt-get full-upgrade -y
This fetches the updates and actually installs them. There are also third-party package managers like Flatpak, which are also awesome alternatives. Linux is also really optimized for penetration testing, which is something I have been meaning to learn.
In conclusion, switching to Linux has been a game-changer for me. Despite some initial hurdles, the performance improvements, smooth animations, and the ability to run Windows games seamlessly have made it a worthwhile transition. The terminal-based nature of Linux might be a learning curve for some, but it offers unmatched control and efficiency. Plus, the robust package management systems and optimization for various tasks make it a powerful tool for both daily use and specialized applications like penetration testing.
If you're considering making the switch to Linux, I highly recommend giving it a try. The community support is fantastic, and there are plenty of resources available to help you get started. Whether you're looking to improve performance, reduce bloatware, or just explore a new operating system, Linux has a lot to offer. So, go ahead and take the plunge – you might just find that Linux is the perfect fit for you too!