Skip to content

Instantly share code, notes, and snippets.

@zealfire
Created April 16, 2018 19:29
Show Gist options
  • Save zealfire/3d76ab7c943d36495afa392dccb8fd5c to your computer and use it in GitHub Desktop.
Save zealfire/3d76ab7c943d36495afa392dccb8fd5c to your computer and use it in GitHub Desktop.
OS X is the platform, Darwin is the operating system, and XNU is the kernel. Namely, the XNU kernel is the core piece of software that provides resource management, hardware abstraction, and scheduling. Darwin consists of the XNU kernel and basic software run by there kernel to provide a UNIX environment. OS X is built atop Darwin and provides a collection of frameworks and services that implement the user interface and main application libraries. Darwin and XNU are open source software, but the frameworks that make up the OS X platform on top of Darwin, are not.
Ubuntu and other distributions are based on the Linux kernel and GNU software suite. Ubuntu is the platform, Linux + GNU is the operating system, and Linux is the kernel (more or less). Unlike OS X, Ubuntu doesn't have proprietary frameworks - everything is open source. And the distinction between the OS and platform are blurred as a result. That's why it's called a distribution, because what distinguishes Ubuntu from other Linux distributions is more or less just the configuration.
You can pretty much use Darwin as you would any Linux distribution, but the availability of drivers for Darwin is not as good. Darwin is based on the FreeBSD UNIX operating system, which differs slightly from GNU linux, so the syntax of some of the commands is different. Ubuntu uses the Debian package manager to handle software installation and management, whereas Darwin has no default package manager (though there exist versions of the BSD ports system, which is similar).
You can pretty much do anything with Darwin that you can do with Linux. The distinction is that a lot more people work packaging up software nicely for Linux than for Darwin.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment