Have you ever heard of Windows or MacOS? Most people have a pretty good idea of what you’re talking about if you mention either of these. These are considered the “mainstream” Operating Systems for PCs today.
An Operating System (OS), simply put, is the core set of software on a computer that allows you to interact with the hardware. It handles tasks such as memory management, graphical interface, input/output devices, and other core system functions.
For the desktop PC, this is usually Windows or MacOS, accounting for ~97% of the market share, according to NetMarketShare [https://www.netmarketshare.com/operating-system-market-share.aspx]. For Linux, that leaves about 2% of the market, and it hasn’t fluctuated much over the years.
So what is Linux? Does it have any chance of making an impact in the current market?
Linux is an OS that was originally developed by Linus Torvalds and released in 1991. He started this project because he was not happy with the state of MINIX, which was licensed to prevent modification and distribution. So Linus went on his way and went to work on an OS of his own to distribute.
The kernel has been released under the GNU GPL license, currently GPLv2. In a condensed version this means that everyone is permitted to copy, distribute, and modify the software but is distributed without warranty. This gives both the developers and the users of Linux a lot of freedom in how they use it.
Linus did not release what you might think of as a full OS today. Linux was released as just the kernel (no, not that colonel), which means it was the bare minimum to run a computer. Over time more features were added. As it gained adoption, graphical interfaces were developed and further features added.
To some in the industry at the time, the idea that a single person started development of a monolithic kernel, released it in a free manner (free as in freedom), and welcomed others contributing to the code base was old-fashioned and lacked the necessary strict control over the project. This would prove to be wrong as other projects would come and go, but Linux remains to this day.
I mentioned an idea that you might not be familiar with. What is a monolithic kernel? I’ll attempt to simplify the concept here to avoid going too deep into the weeds. A monolithic kernel contains all components for interacting with hardware and can dynamically load modules to adjust it’s feature-set with minimal overhead. This means that the idea of installing a driver on Linux doesn’t really exist and the kernel overhead is kept to a minimum. In some cases you might need to load a new module, but it’s often unnecessary in most desktop distributions today.
These design concepts have helped Linux secure a reputation as a high performance and lightweight system that can run on nearly any hardware.
Now that we’ve talked a little bit about the technical aspect, where is Linux today?
Linux is still actively being developed and has become heavily entrenched in the server market. When you connect to a web server, there is a high likelihood that server is running Linux. Many of the top super-computers in the world run Linux-based systems.
The desktop market has not been strong for Linux. This in part is due to it’s focus historically being the performance on servers and the vast number of distributions (or versions) available with various different desktop environments can be confusing to some users. At the very least it can be a daunting task to sort through and find something you like.
Today there are over 300 distributions tracked by DistroWatch [https://distrowatch.com] with more than 30 desktop environments available across the distributions. The actual numbers can be hard to track down since there are no official authoritative sources for all Linux distributions and desktop environments, but that’s a lot of choice and can be overwhelming.
Others, like myself, look at this and see freedom. Freedom to choose what I want my desktop to look like. Freedom to switch to a completely different distribution if I want. Freedom to run a distribution and change my desktop environment on the fly.
Now that we’ve talked about what Linux is and it’s current state in the desktop market, why do I choose to use it? Freedom and opportunity.
Before I get too deep into an explanation of these simplified points, a little bit about what I use a computer for in various scenarios.
Firstly, I have been involved in technology my entire life. Growing up with white box computers from the company my dad worked at, rebuilding computers, tinkering with game consoles and calculators. When I was in high school I was introduced to Linux and it was like falling in love with computers again.
Secondly, I work in the tech industry. Most of my time has been working on hardware and software support for Windows server and client systems and some of it has been in programming/scripting roles.
Taking these two aspects into account, I really like to tinker and build things at home. Linux enables me to do that at minimal cost and a wide range of customization options while providing some of the best performance possible.
For example, I have a Raspberry Pi 4 sitting in the corner of my office chugging along running several media servers with a total cost to me of $150 for the hardware and storage. Building the same thing on a Windows system would likely cost closer to $400 with a large portion of this price going to Windows pricing, not the hardware
I made the choice about a year ago to switch fully to Linux for my daily use computer. At the time I was running Windows 10 and streaming a few days a week. Linux was a passion project for me up until this point and I kept it in virtual machines or secondary and tertiary laptops that were not used frequently because they were inconvenient. Gaming performance was one of the biggest reasons I continually avoided installing it on my main system.
Then I took the plunge. Pulled out a spare drive I had laying around, threw Kubuntu 19.04 on it, and off to the races. Tinkering with some of the necessary changes to enable all of the OBS functions I needed and trying not to kill my GTX 960 4GB by pushing it too hard were my only issues. All of the software, or acceptable alternatives, were available or easily scripted for everything I used on a regular basis.
From a performance stand point, it’s on-par with, if not better than, the Windows 10 experience. I was even a little surprised at how well gaming on Linux had come since I last attempted it, thanks to the improvements in Proton by Valve. I was so happy with this turn of events that I haven’t booted into my Windows partition since.
The more time I spend using Linux, the more I appreciate its design philosophies, down to the package management and monolithic kernel. My system running Kubuntu has been more stable than any Windows or MacOS system I have ever used, including Windows 10 on the exact same hardware.
Need to install some software? Do a quick search in the package manager and install it instead of searching the internet. Not all software may be available there, but for most distributions it will cover your normal needs. The argument can be made that this is also more secure.
Speaking of the package manager, you are not locked into any one repository either. You can add others if you feel they would work better for you. A distribution at its core is a starting point to get you to the configuration you want. Something you can not say that about iOS today and lock down is a growing practice.
Want a PC on a budget? Not as easy with MacOS or Windows today since a portion of the cost is going toward the OS and\or proprietary hardware configurations. And that’s not a dig at either of them. They still have their place in the market.
Now into the nitty gritty of why the change, other than the usual “Microsoft, bad” that some may give. As I mentioned above, Linux is about freedom. Because Linux is open source it is constantly developed and improved, tracking is non-existent at the core, and anyone can verify claims about the kernel. Because there are so many options, there are an endless number of ways to configure my environment to work best for how I use it, even down to no graphical interface for a simple server environment.
To go with this, I choose to do a lot of work in the terminal because I am comfortable working there and it gives me a lot more power and control over configuration. This is absolutely not a necessity for users, but it can be a very powerful tool if you learn how to use it. This does apply to Windows and MacOS as well though.
As for opportunity, this is certainly a bit more on the selfish side. Since I started in the tech industry I have been trying to get into jobs working with Linux. To a small degree I’ve been successful, but it’s been a very small portion of my responsibilities. I’m continuing to work down this path and started my Linux+ certification study to get a foot in the door for better positions.
By switching to Linux as my primary OS, I’m now fully immersed in the environment. It has been much easier to keep my skills honed and learn further nuances of the systems because I am using it on a daily basis. I have found some pain points with 3rd party software that I’ve been able to help resolve by writing some code to share with others and the project, and I hope to keep that trend going.
Linux is a community. Sometimes you are out there just doing your own thing, as most desktop users might be, but sometimes you see a need you have the skill to help resolve. Not only do I want to use Linux because I prefer its freedom and potential opportunity for me in the job market, but to also contribute to the overall community with what skills I have.
I hope I haven’t bored you too much with the brief history and long-winded explanation. I tried to stay out of some of the technical weeds, but I have some ideas for more that might go into the weeds.