Mac OS X Is Not a Linux Distribution but ...

Both operating systems share the same roots

Tree with roots

Gary Waters/Getty Images

Both Mac OS X, the operating system used on Apple's desktop and notebook computers, and Linux are based on the Unix operating system, which was developed at Bell Labs in 1969 by Dennis Ritchie and Ken Thompson. The operating system used on Apple's iPhones, now called iOS, is derived from Mac OS X and therefore also a Unix variant.

Like all major Linux distributions, such as Ubuntu, Red Hat, and SuSE Linux, Mac OS X has a "desktop environment", which provides a graphical user interface to application programs and system settings. This desktop environment is built on top of a Unix type OS just as the desktop environments of Linux distros are built on top of the core Linux OS. However, Linux distros usually offer alternative desktop environments besides the one installed by default. Mac OS X and Microsoft Windows don't give users the option to switch desktop environments, other than minor look-and-feel adjustments such as color schemes and font size.

The Common Roots of Linux and OS X

The practical aspect of the common roots of Linux and Mac OS X is that both follow the POSIX standard. POSIX stands for Portable Operating System Interface for Unix-like Operating Systems. This compatibility makes it possible to compile applications developed on Linux on Mac OS X systems. Linux even provides options to compile applications on Linux for Mac OS X.

Like Linux distros, Mac OS X includes a Terminal application, which provides a text window in which you can run Linux/Unix commands. This terminal is also often referred to as command line or shell or shell window. It's the text-based environment that people used to operate computers before graphical user interface became available. It is still widely used for system administration and scripting automated processes.

The popular Bash shell is available in Mac OS X, including Mountain Lion, as it is in pretty much all Linux distributions. The Bash shell enables you to quickly traverse the file system and start text-based or graphical applications.

In a shell/command line, you can use all your basic Linux/Unix and shell commands such as ls, cd, cat, and more. The file system is structured as in Linux, with partitions/directories such as usr, var, etc, dev, and home at the top, although there are some additional folders in OS X.

The basic programming languages of Unix-type operating systems such as Linux and Mac OS X are C and C++. Much of the operating system is implemented in these languages, and many basic applications are implemented in C and C++ as well. Higher level programming languages such as Perl and Java are also implemented in C/C++.

Apple provides the Objective C programming language including the IDE (Integrated Development Environment) Xcode to support the development of applications for OS X and iOS.

Like Linux, OS X includes strong Java support and actually provides a custom Java installation to ensure seamless integration of Java applications in OS X. It also includes terminal based versions of the text editors Emacs and VI, which are popular on Linux systems. Versions with more GUI support can be downloaded from Apple's AppStore.

Major Differences

One of the differences between Linux and Mac OS X is the so-called kernel. As the name indicates, the kernel is the core of a Unix-type OS and implements functions such as process and memory management as well as file, device, and network management. When Linus Torvalds designed the Linux kernel he opted for what is referred to as a monolithic kernel for performance reasons, as opposed the microkernel, which is designed for more flexibility. Mac OS X uses a kernel design that compromises between these two architectures.

While Max OS X is mostly known as desktop/notebook operating system, recent versions of OS X can also be used as a server operating system, although the add-on package Server App needs to be acquired to get access to all the server-specific applications. Linux, however, remains the dominant server operating system.