Windows and macOS could move to Linux


move to Linux

For those in the tech world, the title of this post may seem both radical and pretentious.

However, in the following four parts of this blog post, I hope to shed light on why this is a real possibility in the not-so-distant future and why.

PART 1: OS overview

First of all, an operating system (OS) is essentially the core software that allows your computer to run - it provides a core component (called a kernel) that understands how to use the hardware in your computer, a user interface (e.g. your Desktop), as well as a rich set of software libraries and frameworks that allow apps to run. These software libraries and frameworks are specific to your OS and are often called a platform. For example, you can develop an app for the Windows platform, or you can develop and app for the macOS or Linux platforms. When it comes to mobile devices, iOS is just a mobile version of macOS, and Android is just Linux with an Android framework on top - as a result, we can really say that the three main OS platforms available today are Windows, macOS and Linux.

PART 2: What is Linux?

To learn what Linux is, simply read my recent blog post:

If you are want the short version of this, just know that Linux is an open source (freely-developed) UNIX OS that is widely used today.

PART 3: How could macOS benefit from Linux?

macOS is the operating system that you find on Apple Macintosh computers today. What most people don’t know is that macOS is essentially:

  • 80% open source NeXTSTEP UNIX (called Darwin)
  • 20% closed source Apple components (mostly graphical/desktop-related)

Apple bought NeXT back in 1997 and rebranded the NeXTSTEP UNIX OS as Mac OS X in 2001 before renaming it to macOS a few years ago. And the 80% of macOS that is Darwin can be freely downloaded from Apple.

So why did Apple choose to open source 80% of their OS 20 years ago? The answer is quite simple: Apple was close to bankruptcy at the time and didn’t have the money to fund the continued development of NeXTSTEP to replace their aging OS called Mac OS 9. To solve this dilemma, they open sourced 80% of the NeXTSTEP code and courted FreeBSD UNIX open source developers who had a desire to maintain and improve it over time. This allowed Apple to focus what little money they had on developing the last 20%. While it wasn’t widely publicized, it was definitely a smart move on the part of Apple.

Now let’s examine the structure of macOS. Recall that the core component of an OS is called a kernel - the macOS kernel is called XNU. One third of XNU is the MACH 3.0 microkernel from NeXTSTEP UNIX. Another third of XNU is the FreeBSD UNIX kernel (mostly the networking and filesystem components). And the final third of XNU is a bulky, inefficient part called I/O kit that ties the other two components together and provides device driver support. If you take the XNU kernel and add all of the other open source operating system components, you’ve got the Darwin OS. And if you take the Darwin OS and add the Apple-proprietary graphical components, you’ve got macOS.

So basically:

XNU (MACH 3.0 + FreeBSD UNIX kernel + I/O kit)
+ OS components (open source)
= Darwin OS
+ Apple-proprietary components (closed source)
= macOS

Unfortunately, Apple’s relationship with open source developers has been rocky at times, and the relatively small size of the open source FreeBSD UNIX developer community that Apple has relied upon has resulted in slow development of many OS features. For example, the XNU kernel wasn’t 64-bit until 2009, even though Apple was selling computers with 64-bit CPUs since 2003. Worse yet, it took until 2014 before macOS had full (TRIM) support for SSDs - back in 2012, when MacBook Air users complained that their SSDs weren’t nearly as fast as what Apple promised in their promotional materials, it was because of macOS and not the hardware itself.

Today, if you install Windows 10 on your Mac, you’ll notice a massive speed improvement because macOS has gotten very bulky these past 3 years. As hardware and software features have been added to macOS, the XNU kernel has become heavier and heavier (especially I/O kit). Moreover, these new features haven’t been added in a very efficient way (impeding the performance of several OS components) because it would require additional development time that the small open source community working on Darwin doesn’t have. After all, nearly all of the open source momentum in the OS space today revolves around Linux, not macOS. If Apple were to replace Darwin with Linux, they’d have the benefit of the largest open source developer community, and still be able to run their own proprietary frameworks on top. And since there is a great deal of similarity between UNIX and Linux operating systems (Linux is an open source derivative of UNIX), the switch from Darwin to Linux would be quite easy from a development point-of-view.

So, by switching from Darwin to Linux, Apple could easily breathe life back in to macOS under the hood without having to change the look, feel or app development frameworks, as well as bullet-proof future development of their OS.

PART 4: Could Windows leverage Linux?

In PART 3, we saw how Apple leveraged open source developers 20 years ago to offload 80% of the development of their OS. This, in turn, allowed them to stop charging for their OS a decade later (which put pressure on Microsoft to do the same) - they simply absorbed the small development costs of the remaining 20% of their OS using their hardware revenue (which was quite abundant by that time).

One of the biggest problems plaguing Microsoft today is the high cost of creating and updating their Windows OS (both clients and servers). To Microsoft, the Windows platform was never a profitable venture on its own, as the cost of OS updates negates any revenue from OS sales. In other words, Microsoft’s bread and butter has always been their app and service ecosystem that runs on the Windows platform: Microsoft Office, SQL Server, Exchange Server, and so on.

So, could Microsoft take a page out of Apple’s book from 20 years ago and decide to use Linux for 80% of the Windows OS and focus on developing the remaining 20% the provides the Windows Desktop and software platform? Bearing the burden that is 100% of Windows OS development could become incredibly costly as technology advances.

On a related note, Microsoft recently released an update that allows you to run a full Linux system within the Windows 10 kernel space. To learn more about it, simply read my blog post:

Could this mean that Microsoft is already thinking about moving in that direction?

I hope so. And I hope Apple follows suit for the benefit of all OSes today!