Story
About three months ago, had to deal with one of the issues that plagues everyone who does a lot of programming and playing a game every once in a while: The disk space started to fill up to the point where only a few gigabytes were still free and most of the data was not something you’d be willing to just throw away. My usual solution is to take a day to move all of my projects onto a backup drive and reinstall Windows completely to get a fresh start. In my case though, I have noticed that I’ve been spending more time on coding projects and server stuff and less time on gaming. In addition my computer is already a few years old and I’ve been told that there have been some performance issues with Windows 11. So at that point, I decided to bite the bullet and do the switch to Linux as my workstation OS that I’ve been wanting to do for almost a year, and I couldn’t be happier.
Distro choice
Since some of my friends had already used Linux as their daily drivers, I decided it would be a good idea to ask them which distribution of Linux they chose. I’ve talked to some people who use the current LTS release of Ubuntu and users of Fedora. And while Fedora uses the new GNOME 40 desktop which I find very pleasent, I still decided to go for Ubuntu since I’m very familiar with the apt package manager. The only mistake a made was choosing Ubuntu 22.10.
My WIFI issue
When I bought my current computer, I had completely missed the fact that there was no built-in WiFi module, forcing me to purchase a USB wifi adapter. The adapter has never been a problem on Windows, since it ships with a lot more drivers and downloads necessary drivers automatically, but Ubuntu 22.10 did not have a clue what to do with my WiFi adapter. After connecting my computer to the internet using USB tethering from my phone, I tried to download drivers from the website of manufacturer of my WiFi adapter, only to find the Linux driver to be incredibly outdated and broken on recent kernel versions. So I did some digging and found that my WiFi adapter uses a Realtek RTL8812 chipset, for which I found a well-maintained driver on GitHub. After compiling the driver and doing a reboot, it worked flawlessly. The only nuicance is that I need to recompile it for every kernel update. And I get a lot of kernel updates.
Kernel updates
One of my most annoying experiences have been the kernel updates on Ubuntu 22.10. On Ubuntu 22.04, the current LTS release, I’ve been told that kernel updates are comparitively rare, which makes sense for a stability distribution. But on Ubuntu 22.10, I get every minor kernel update and sometimes start my computer only to find the WiFi to be broken again and having to reinstall my WiFi driver. I’ve written a bash script to automate this by now, but for the first few times, I was pretty annoyed.
Software Updates
Another issue is that both GNOME’s Software and Ubuntu Software are installed, but I just simply decided to use GNOME’s Software to install packages over GUI. Both applications still sometimes appear to not load correctly, meaning that I have to install packages using apt.
Docker
Docker on Linux is a great experience. Docker Desktop for Windows is still quite clunky and the WSL is pretty slow compared to native Linux. Some containers didn’t even run properly on Docker for Windows at all. On Ubuntu, all containers obviously work just as they would on a server.
Games
A lot of my Steam library is natively compatible with Linux, and most other titles run perfectly well using Proton and other compatibility layers.
Bash scripting
One of my biggest advantages has been bash scripting. Being able to write a script that automatically builds a docker image, pushes it to the registry and restarts the containers on the remote server is something that would have probably required external programs on Windows and would have never been as easy as it is on Ubuntu.
Conclusion
Ubuntu is a great operating system for programming and system administration. It’s fast and well-intergrated. If it’s not well-intergrated, you can easily intergrate it yourself. For software developers, I’d recommend giving Linux a try, although I’d probably go for Fedora instead.