The Linus Tech Tips YouTube channel has been putting out a series of videos called the Switching to Linux Challenge that has been causing a bit of a stir in the Linux community. I’ve been keeping an eye on these developments, and thought it was a good time to weigh in with my thoughts. This article focuses on how new Linux users can increase their odds for success — I have also written a companion article, “What desktop Linux needs to succeed in the mainstream”, which looks at the other side of the problem.
Linux is, strictly speaking, an operating system kernel, which is a small component of a larger system. However, in the common usage, Linux refers to a family of operating systems which are based on this kernel, such as Ubuntu, Fedora, Arch Linux, Alpine Linux, and so on, which are referred to as distributions. Linux is used in other contexts, such as Android, but the common usage is generally limited to this family of Linux “distros”. Several of these distros have positioned themselves for various types of users, such as office workers or gamers. However, the most common Linux user is much different. What do they look like?
The key distinction which sets Linux apart from more common operating systems like Windows and macOS is that Linux is open source. This means that the general public has access to the source code which makes it tick, and that anyone can modify it or improve it to suit their needs. However, to make meaningful modifications to Linux requires programming skills, so, consequentially, the needs which Linux best suits are the needs of programmers. Linux is the preeminent operating system for programmers and other highly technical computer users, for whom it can be suitably molded to purpose in a manner which is not possible using other operating systems. As such, it has been a resounding success on programmer’s workstations, on servers in the cloud, for data analysis and science, in embedded workloads like internet-of-things, and other highly technical domains where engineering talent is available and a profound level of customization is required.
The Linux community has also developed Linux as a solution for desktop users, such as the mainstream audience of Windows and macOS. However, this work is mostly done by enthusiasts, rather than commercial entities, so it can vary in quality and generally any support which is available is offered on a community-run, best-effort basis. Even so, there have always been a lot of volunteers interested in this work — programmers want a working desktop, too. Programmers also want to play games, so there has been interest in getting a good gaming setup working on Linux. In the past several years, there has also been a commercial interest with the budget to move things forward: Valve Software. Valve has been instrumental in developing more sophisticated gaming support on Linux, and uses Linux as the basis of a commercial product, the Steam Deck.1
Even so, I must emphasize the following point:
The best operating system for gaming is Windows.
Trying to make Linux do all of the things you’re used to from Windows or macOS is not going to be a successful approach. It is possible to run games on Linux, and it is possible to run some Windows software on Linux, but it is not designed to do these things, and you will likely encounter some papercuts on the way. Many advanced Linux users with a deep understanding of the platform and years of experience under their belt can struggle for days to get a specific game running. However, thanks to Valve, and the community at large, many games — but not all games — run out-of-the-box with much less effort than was once required of Linux gamers.
Linux users are excited about improved gaming support because it brings gaming to a platform that they already want to use for other reasons. Linux is not Windows, and offers an inferior gaming experience to Windows, but it does offer a superior experience in many other regards! If you are trying out Linux, you should approach it with an open mind, prepared to learn about what makes Linux special and different from Windows. You’ll learn about new software, new usability paradigms, and new ways of using your computer. If you just want to do all of the same things on Linux that you’re already doing on Windows, why switch in the first place? The value of Linux comes from what it can do differently. Given time, you will find that there are many things that Linux can do that Windows cannot. Leave your preconceptions at the door and seek to learn what makes Linux special.
I think that so-called “power users” are especially vulnerable to this trap, and I’ve seen it happen many times. A power user is someone who deeply understands the system that they’re using, knows about every little feature, knows all of the keyboard shortcuts, and integrates all of these details into their daily workflow. Naturally, it will take you some time to get used to a new system. You can be a power user on Linux — I am one such user myself — but you’re essentially starting from zero, and you will learn about different features, different nuances, and different shortcuts, all of which ultimately sums to an entirely different power user.
The latest LTT video in the Linux series shows the team going through a set of common computer tasks on Linux. However, these tasks do little to nothing to show off what makes Linux special. Watching a 4K video is nice, sure, and you can do it on Linux, but how does that teach you anything interesting about Linux?
Let me offer a different list of challenges for a new Linux user to attempt, hand-picked to show off the things which set Linux apart in my opinion.
- Learn how to use the shell. A lot of new Linux users are intimidated by the terminal, and a lot of old Linux users are understandably frustrated about this. The terminal is one of the best things about Linux! We praise it for a reason, intimidating as it may be. Here’s a nice tutorial to start with.
- Find and install packages from the command line. On Linux, you install software by using a “package manager”, a repository of software controlled by the Linux distribution. Think of it kind of like an app store, but non-commercial and without malware, adware, or spyware. If you are downloading Linux software from a random website, it’s probably the wrong thing to do. See if you can figure out the package manager instead!
- Try out a tiling window manager, especially if you consider yourself a power user. I would recommend sway, though I’m biased because I started this project. Tiling window managers change the desktop usability paradigm by organizing windows for you and letting you navigate and manipulate them using keyboard shortcuts alone. These are big productivity boosters.
- Compile a program from source. This generally is not how you will usually find and use software, but it is an interesting experience that you cannot do on Windows or Mac. Pick something out and figure out where the source code is and how to compile it yourself. Maybe you can make a little change to it, too!
- Help someone else out online. Linux is a community of volunteers supporting each other. Take what you’ve learned to /r/linuxquestions or your distro’s chat rooms, forums, wikis, or mailing lists, and make them a better place for everyone else. The real magic of Linux comes from the collaborative, grassroots nature of the project, which is something you really cannot get from Windows or Mac.
Bonus challenge: complete all of the challenges from the LTT video, but only using the command line.
All of these tasks might take a lot longer than 15 minutes to do, but remember: embrace the unfamiliar. You don’t learn anything by doing the things you already know how to do. If you want to know why Linux is special, you’ll have to step outside of your comfort zone. Linux is free, so there’s no risk in trying 🙂 Good luck, and do not be afraid to ask for help if you get stuck!
Full disclosure: I represent a company which has a financial relationship with Valve and is involved in the development of software used by the Steam Deck. ↩︎
Have a comment on one of my posts? Start a discussion in my public inbox by sending an email to ~firstname.lastname@example.org [mailing list etiquette]