What is Linux?
Linux is the operating system of choice for millions of developers for its security and customizability. It was created by Linus Torwald in 1991 for personal computers, but has since spawned hundreds of different versions and has been ported to more platforms than any other OS, from cheap $250 laptops to the fastest supercomputers in the world. Its umbrella also includes Android, which is by far the most-used mobile operating system.
I personally use MacOS (Unix) because I have a Mac, plus I work on iOS apps and I doubt that Xcode would behave nicely with Linux. I wrote this because I wasn’t very familiar with the Linux OS and its benefits, despite the fact that it's used by 47% of professional developers and 96.3% of the top one million web servers. [1] So I did some research to find out why, and I wrote this for the next person like me.
Here are five reasons why linux is a popular operating system:
1. It’s open-source
Linux is open-source, meaning the code is available online for anyone to read which makes it more secure than other operating systems. While this may seem counterintuitive, it being open-source means that potential vulnerabilities are discovered and patched quickly by the community. Because engineers use the software themselves, they have a strong incentive to fix problems that would leave their computer vulnerable.
While bad actors can read the source code to find exploits, for every black-hat hacker there are a million users who rely on the operating system for everyday use and therefore have a strong incentive to snuff out vulnerable code. With Linux, you can trust that the system is secure, even without installing security software.
Another reason to like the open-source nature of Linux is that the contributors are the
users.
This leads to thoughtful design choices that are tailored to the distro’s user base, like
better error messaging.
On Linux, features are added as often as users come up with them, and if the majority of the community prefers the status quo, the community can always create a new distribution. Speaking of which..
2. Customization (Distros!)
When you install “Linux”, you’re installing a version of Linux, known as a distribution or distro. I won’t go into detail on the Linux distros - there are over 600 total and another 500 in active development. But in sum, distros are flavors of the operating system that emerged from the open-source community for different use cases, whether you’re using it for your home computer, using an enterprise environment or a server to communicate with devices.
If you’re used to Mac or Windows you might use Ubuntu or Mint, which are forked from the grandaddy of distros Debian, and are built for user-friendliness and come with useful default apps. If you’re a Linux wizard or network admin you might use Arch Linix or Gentoo, which are designed for advanced users who really know the ins and outs of Linux.
You can also customize just about every part of the operating system. If you’re using an older machine with 2GB of RAM, on Windows or a Mac you would probably have trouble running applications without third-party software for limiting memory usage, which itself adds to memory. With Linux you can select more lightweight options for your distro and even choose a graphical desktop environment like LXQt, which is so lightweight that it was forked to create the Raspberry Pi OS. This is why older computers tend to perform much better using Linux than with Windows, which forces you to run default processes no matter the machine.
Credit: Eric Adams
3. Package Manager / workflow
Linux’s package manager is smooth af. For whatever software you need to download, this is how you get it (on most Linux distros):
sudo apt-get install [your-package-here]
bash
And you’re good to go.
On Linux, it’s assumed that you’re not afraid of the command line. When you realize you need to download something, you’re 0.2 seconds away from your cursor being in the terminal and seconds away from the software being downloaded.
On Mac or Windows, installing software often means installing/updating a separate package manager like Homebrew. If the software can’t be downloaded via the CLI you’ll need to find it online (trusting that the website is the correct one), downloading an executable that installs the app, dragging the app to your Applications folder, and sometimes restarting your machine (especially on Windows) for the changes to take effect.
Note that Windows released winget, a.k.a. the Windows Package Manager CLI in 2022 which behaves similarly to Linux's package manager
4. No Reboot
This is a big one for servers, specifically ones that run tasks 24/7 without human intervention.
On Windows, you need to restart your computer a lot. On Linux, almost every package can be upgraded in place without a restart. Linux doesn’t need to reboot unless there are very low level changes like an update to the Kernel, which isn’t even the case on certain distributions.
That’s why it’s the OS of choice for servers; in fact, many Linux servers on the internet have been running for years without failure or even being restarted. For desktop machines, this means your computer won’t randomly reboot in the middle of a workday before a meeting like it infamously does on Windows.
A big reason for this is that due to the way the OS is designed - Linux can access files that are in use while Windows cannot. But more importantly, Linux lets you mess with the configuration depending on which distribution you choose, which lets you limit downtime even more, assuming that’s important for your use case.
5. Task Automation
In Linux, tasks can be configured to run automatically given a time period, a specified time/date, or when a certain system measurement is hit. Certain distros come with automation out of the box, like Red Hat Enterprise Linux which is pre-configured to run important system tasks to keep the everything fully up-to-date. Maybe you want to systematically save data about your system at the same time every day. Maybe every morning you open up Spotify, Notion and want to check your email. Tasks like these are simple to setup in Linux, and ironically you can waste tons of time looking at tasks you can automate, and the different commands that are possible.
Conclusion
If you enjoy using the command line and/or customizing your workflow, then you should try Linux. This is especially true if you're familiar with MacOS, which uses a Unix-based core. Linux won’t 10x your productivity and there isn’t any one particular feature that can’t be achieved using other operating systems, but Linux has options and tools that make it hard to go back to MacOS or Windows once you’re acquainted with it.
It's also the operating system of choice for servers around the world because you don't need specific hardware to run it. And if you're running a small server or one with a specific automated task, a Linux distro will serve your needs without useless features weighing it down.
That's it! How about one more meme for good measure: