Work in progress -- this page is far from being finished.

How to Choose an Operating System

When you buy a brand new computer, it usually comes with an operating system pre-installed. Depending on the computer brand, it usually comes pre-installed with either Windows, macOS, or Chrome OS. Some companies even sell products with some kind of Linux operating system. It is rare, but it may be possible to come across a device sold without any operating system at all. But the user does not have to keep it that way and may decide to use some other operating system instead.

The factory pre-installed operating system is not the only option the computer user has. The user can choose and install operating system of his choice on most personal computers sold today. This can be done on most laptops and desktop PCs, unless they have some vendor lock-in or proprietary hardware supported by only one specific operating system.


What to Take Into Consideration

Before jumping in and installing the first operating system that a friend recommends, there are some considerations to make sure the OS really fits the computer and the user's needs.

Which OS came pre-installed
The computer manufacturer probably had a reason to put a specific OS on the device. Unless there is a solid reason to change it, I recommend keeping the default OS which is guaranteed to work with the device.
Processor architecture
What kind of CPU is in the computer? Most desktop operating systems target 64-bit x86 processors, which are mostly manufactured by Intel or AMD. If the computer has an older 32-bit processor, chances are that it is no longer supported by the operating system. Even if the OS still supports old 32-bit processors, it may lack some features and contain bugs due to much smaller user base and the lack of testing. In case of ARM processors, the choice of fully working operating system on such device is much smaller.
Support duration
Operating system updates are important to keep the OS with the latest features and all known defects fixed. How long do I need the operating system to be kept fixed and updated without having to upgrade to the next major version?
Stability/new features (frequency of updates)
Do I prefer having only small updates from time to time and keep the software mostly outdated? Or do I want to run the latest software, but with much more frequent updates?
Rolling release vs. periodical releases
Rolling release OS keeps the software always up-to-date, there is only one version of the OS (the latest) with no need to perform any OS upgrades. The other option is that the OS may be released periodically in newer and newer versions (e.g. version 10 this year, version 11 next year, etc.) and upgrades need to performed in order to jump to the next version. In this case, multiple versions of the OS may be supported with updates and it is up to the user to decide whether they want to upgrade to the next version or keep the older one.
Software support
This is one of the biggest decision factors. Does the software I need to use work on this particular operating system?
Hardware support
Another important decision factor. Does the hardware manufacturer provide drivers and software needed to make the piece of hardware fully functional on the particular operating system? Are there any 3rd party drivers available in case the hardware manufacturer does not support this operating system?
What do I expect from the operating system? Is it going to be used on my grandma's PC? Or do I plan to use it for a mission-critical deployment in a data center?

Things to Pay Attention to

The following list contains some of the most important features to watch out for when choosing an operating system. Some of these items are only a recap of the previous list.

CPU architecture
Which CPU architectures does the operating system support? Does it support x86, ARM, RISC, or something else? How good is the support (primary architecture vs. experimental)?
This one depends on the CPU architecture. Does the OS support UEFI, or does it require the legacy BIOS for boot? Does my computer support it?
Secure Boot
This is one of the features of modern UEFI implementations. It allows only signed code to be executed during the boot up. Even though it can be disabled on most computers, it may be a good idea to keep it enabled and use operating system that has its boot code digitally signed.
Storage TRIM
Although not mandatory, this feature is very useful if the computer uses solid-state drives or if the computer is a virtual machine. It can send TRIM or DISCARD commands to the supported underlying storage devices to let them know how much space is actually occupied by the data. It allows the SSDs to perform faster. On virtual machines it can shrink the virtual hard drive size on the host.
SW support
Can the operating system run the software I need? Does it offer any alternatives instead?
HW driver support
Will all my hardware devices work correctly with the OS? Is there an official support by the HW manufacturer? Are there any 3rd party drivers available instead?
Update support duration
How long will the OS be updated without having to upgrade to a new version? Can I afford upgrading it every few months or do I want it to last for many years mostly untouched?


Software is usually developed by someone. Usually it's either a company, an individual, or a community of developers.

Individual developer
If the whole operating system is created/put together by a single person, I don't usually trust it. These minor systems or home-made distros are lagging in terms of security and new features. These systems also have a short life because the developer can stop working on it any time (especially if he doesn't get paid for his work) and nobody will want to continue his work.
Community of volunteering developers
Very similar to an Individual developer specified above.
A community sponsored by some company
When a company is involved, it is usually in its interest to keep things going and as bug-free as possible. Although sometimes the company can force the developers to go in a bad direction (ex. Ubuntu).
A company
Similar to above. If the success of the system is critical to the company, the quality of the software is on a different, higher, level. It's not always the case though, remember the first buggy release of Windows 10 or the current state of Windows 10 for phones - Windows on phones is not a priority for Microsoft now.

OS Family

It can't be said that every operating system is completely different from the others. In fact, some systems might be very similar because they share the same roots or philosophy. These are the most common groups (families) of operating systems.

A short for Disk Operating System.
From 1980's to mid 90's, Microsoft's MS-DOS or its alternatives were very popular. It provided only a basic (and very primitive) command prompt. First versions of Microsoft Windows (Windows 1.0 through Windows ME, including Windows 95 and 98) were running on top of MS-DOS. DOS systems usually lack support of new technologies introduced in late 90's, such as networking, multi-core processing, 32-bit memory addressing and all of security features.
Windows NT
Based on OS/2, Windows NT 3.1 was the first version. It was released in 1993 as an enterprise alternative to always-crashing MS-DOS-based Windows 3.1. Since 2000's, all Windows versions are built on Windows NT kernel.
Note: All letters are upper-case. A family of network-based operating systems developed since 1970's. UNIX systems were popular for networking and supercomputing until late 90's when they were replaced by Linux systems. UNIX systems are usually proprietary and expensive.
These systems share the same roots with UNIX but they usually don't contain any proprietary UNIX code. They also don't have UNIX certification.
Systems with functionality very similar to UNIX but which were created independently of UNIX. The most known example would be GNU, which is free software (open source). Developers behind GNU have been unable to create a working OS kernel to-day, so Linux is used as the kernel instead.
Linux is not a one single operating system. In fact, Linux is only an OS kernel. There are many (hundreds) operating systems using Linux kernel together with GNU userland - which are called Linux distributions, or distros for short.

Release Model

How often and how much the software is updated.

Standard release (Point release)
There's a new version once in a while. Once a new version is released, the currently installed version of software must be upgraded or, in some case, the new version must be installed from scratch. The regular system updates apply for a specific version of the software. There might be multiple supported versions at a given time.
For example there's Windows 7 receiving its updates and Windows 10 also receiving its own updates. To move from Windows 7 to Windows 10 and experience new features, the system must be upgraded or re-installed.
Rolling release
There are no system release versions, in fact, there is only one version of the system, the current one. So installing all updates is enough to keep the system with the latest features, no upgrade is required. In this model, you can't rely on a specific version of software. Once a new version of the particular software is released, it gets automatically updated. Because the system is changing so much, things are more likely to break.
A good example would be Arch Linux. Once you install it and regularly install all updates, it stays with the latest software packages. No need to upgrade to a new version of Arch, there is not any Arch 1 or Arch 2. It's simply Arch, always up-to-date.