One Windows Kernel

Windows is one of the most versatile and flexible operating systems out there, running on a variety of machine architectures and available in multiple SKUs. It currently supports x86, x64, ARM and ARM64 architectures. Windows used to support Itanium, PowerPC, DEC Alpha, and MIPS. In addition, Windows supports a variety of SKUs that run in a multitude of environments; from data centers, laptops, Xbox, phones to embedded IOT devices such as ATM machines.

The most amazing aspect of all this is that the core of Windows, its kernel, remains virtually unchanged on all these architectures and SKUs. The Windows kernel scales dynamically depending on the architecture and the processor that it’s run on to exploit the full power of the hardware. There is of course some architecture specific code in the Windows kernel, however this is kept to a minimum to allow Windows to run on a variety of architectures.

In this blog post, I will talk about the evolution of the core pieces of the Windows kernel that allows it to transparently scale across a low power NVidia Tegra chip on the Surface RT from 2012, to the giant behemoths that power Azure data centers today.

This is a fun article to read, written by Hari Pulapaka, member of the Windows Kernel Team at Microsoft. I feel like in our focus on Microsoft as a company and Windows a whole – either the good or the bad parts of both – we tend to forget that there’s also a lot of interesting and fascinating technology happening underneath it all. The Linux kernel obviously gets a lot of well-deserved attention, but you rarely read about the NT kernel, mostly because it isn’t open source so nobody can really look at the nitty-gritty.

I hope we’ll be getting more up-to-date articles like this.

34 Comments

  1. 2018-10-26 10:42 pm
    • 2018-10-26 11:11 pm
    • 2018-10-28 10:25 am
      • 2018-10-28 7:25 pm
      • 2018-10-29 11:33 am
    • 2018-10-28 12:58 pm
      • 2018-10-29 5:17 pm
        • 2018-10-31 5:07 pm
  2. 2018-10-26 11:43 pm
  3. 2018-10-27 6:37 am
    • 2018-10-27 9:17 am
      • 2018-10-28 10:40 am
      • 2018-10-29 10:23 am
    • 2018-10-27 9:28 am
      • 2018-10-27 12:10 pm
        • 2018-10-27 6:05 pm
    • 2018-10-29 11:48 am
      • 2018-10-29 1:38 pm
        • 2018-10-29 1:54 pm
          • 2018-10-29 5:33 pm
          • 2018-10-31 5:11 pm
          • 2018-10-31 5:08 pm
          • 2018-10-31 5:12 pm
  4. 2018-10-27 5:45 pm
  5. 2018-10-27 6:48 pm