Category Archives: ITM 11

The difference between Windows Linux and Mac


GNU/Linux uses the Linux kernel originally written by Finnish computer science student Linux Torvalds while still in college, the rest came from thousands of volunteers and now thousands of companies that contribute.

MacOS is using the XNU kernel, a combination of the Mach kernel and parts of the BSD kernel. Though the amount of Mach code is very small compared to when they began.

Windows is using the NT or New Technology kernel that was originally only for professional/workstation version of Windows starting with Windows 3.1 NT.

2. Licensing

GNU/Linux is an open-source operating system, meaning the source code that it’s written in is available for modification/distribution entirely free of cost to anyone because of the GNU Public License version 2(GPL-v2). Windows and much of its software is proprietary or closed source, meaning you are only using it under a purchased license, by way of the End User License Agreement(EULA), but Microsoft has been releasing many components of Windows as open source lately. Interestingly MacOS is a mixture of closed AND open source. The XNU Kernel and much of basic functions are part of Darwin OS, which Apple releases for free as open-source under the Apple Public Source License(APSL). Separately, the user interface and most of the Mac branded software is closed source and only available as part of MacOS/OSX by purchase and EULA.

3. Design/Architecture

GNU/Linux and Mac are both Unix-like operating systems, meaning they are modelled and designed based on the Unix philosophy. They also share many low-level utilities and programs, such as the GNU C compiler. They have very similar command-line interfaces or “terminals/shells”. Windows on the other hand were originally built on top of MS-DOS, and its kernel was designed specifically for modern computers with graphical displays. All three of these operating OS’s are using the Transmission-Control and Internet Protocols(TCP/IP) Networking Stack ported from BSD.