Windows vs. Linux: Kernel Performance

Windows vs. Linux: Kernel Performance

All operating systems revolve around one key component: the kernel. The kernel is the core of an operating system, controlling hardware and software interactions, and preventing conflicts between processes. It is loaded first during startup and handles memory, peripherals, and I/O requests. In other words, it's the mastermind behind the operating system.

Before we talk about performance, let's first take a look at the three most relevant kernels in modern computing. Windows uses Microsoft's Windows NT kernel, while macOS uses Apple's open-source XNU kernel. Linux is a bit different because technically Linux is the kernel. Most people referring to Linux aren't just talking about the Kernel - they're referring to a distribution (or "distro") containing Linux along with a multitude of other components such as a desktop environment. For our testing purposes, we'll be using Fedora Linux, as it contains everything that's needed to be considered a complete operating system like Windows.

Why not test macOS?

Hardware. Unlike Windows and Linux, macOS can only be officially used on Apple's hardware. This makes it impossible to compare kernel performance from systems that don't share the same CPU, memory, and RAM components. While there are virtualization projects like OSX-KVM that allow macOS to be run in a Linux virtual machine, this massively degrades performance, making fair comparisons impossible.

Controlling the Experiment

There are many factors that can influence performance of a computer. While it's impossible to neutralize all of them, we're going to try our best. To start off, the display will be at 4K resolution and running at 60Hz refresh rate. Additionally, all test systems will be at their maximum performance mode and will have bluetooth and telemetry both disabled. And obviously, no other programs will be open in the background.

On Linux systems, this is all pretty easy to do. However, Windows is a much more invasive operating system, and will require some extra tweaks. Instead of using base Windows, I'll be using an optimization tool called AtlasOS. Atlas doesn't change anything related to the kernel, but it disables data collection and a few other unwanted background processes. This should help even the playing field between the two.

Desktop Environments

For the linux side of benchmarks, we're going to be using Fedora 41 with both GNOME and KDE Plasma. This way, we can observe any differences in performance that may appear between the two desktop environments.

The Benchmark

Geekbench 6 is a cross-platform benchmark with support for both CPU and GPU benchmarks. However, the GPU suite isn't supported on Linux, so we'll be sticking with the CPU side. This is probably due to Nvidia's long history of bad Linux driver support.

Geekbench measures a variety of common computing tasks, including:

  • File compression
  • PDF rendering
  • Website rendering
  • Code compilation
  • Background blurring
  • Ray tracing

...And a lot more. To see the full breakdown including performance on individual tasks, you can click on the individual benchmarks further down this page.

The System

All tests are going to be run on the same system. It's a pretty beefy computer, with an Intel® Core™ i9 processor 14900K and 96GiB of DDR5 SDRAM. More information is available on the Geekbench result pages, which will all be linked below.

Results

Geekbench outputs CPU performance results as both "single-core" and "multi-core" scores. You can click on the links below to see a more in-depth result page for each run of the benchmark suite. Single-core scores are a reflection of running tasks on a single physical CPU core. On the other hand, multi-core scores show the performance of running the task across all of the available cores.

Some tasks benefit from multiprocessing, leading to very high multi-core scores. However, some tasks just can't be spread between cores efficiently and don't see any difference from the added parallelization. In fact, certain tasks are less efficient when running in parallel because you have to coordinate and move data between different cores.

Fedora 41 GNOME

  1. 3,249 single-core, 19,465 multi-core
  2. 3,280 single-core, 19,659 multi-core
  3. 3,203 single-core, 19,820 multi-core

Fedora 41 Plasma

  1. 3,280 single-core, 18,631 multi-core
  2. 3,293 single-core, 18,579 multi-core
  3. 3,299 single-core, 18,497 multi-core

Windows 11

  1. 3,155 single-core, 19,458 multi-core
  2. 3,183 single-core, 19,726 multi-core
  3. 3,168 single-core, 19,608 multi-core

Interesting! When using the Plasma desktop environment, multi-core scores are significantly lower than both GNOME and Windows 11. However, we can see that both Linux desktop environments outperform Windows on single-core benchmarks. Plasma seems to score higher than GNOME on single-core benchmarks, but the difference is small enough to be considered within the error margin.

Some Theories

I'm going to try to explain these results. However, it's important to remember that operating systems are some of the most complex programs that exist, and there are a lot of different factors at play that are hard to account for.

Lower Plasma Multi-Core Score

Plasma is a very fragmented system, with many microservices scattered across the desktop experience. This probably contributes to the lower multi-core score, but it's hard to tell for sure. Even Linus Torvalds (the creator of Linux) agrees that a monolithic architecture is superior, as Linux is a monolithic kernel (see the Tanenbaum-Torvalds debate).

Lower Windows 11 Single-Core Score

I can think of two possible reasons for this. First of all, Windows has numerous background processes running by default, such as Windows Defender and search indexing. AtlasOS can disable a few of these, but the rest are required to keep the system stable.

Additionally, Windows has a more complex driver model, involving more layers of abstraction. The most impactful one here is likely the Hardware Abstraction Layer (HAL). The Windows HAL is not as efficient as the Linux HAL due to the proprietary nature of drivers on Windows.

Final Thoughts

While these scores can provide interesting insights into the development, history, and architecture of these kernels, both evidently perform well enough for any tasks that you'll ever need to run on them. So, if you're on Linux, there's no need to switch over to Windows for performance gains.

And if you're still on Windows in the big 2024, it's time to get a Mac.