Apple Mac OS X
Apple went through a difficult period in the 1990s. Its operating system Mac OS, created in 1984 with the first Macintosh, lagged technically behind the competition. Originally designed for a computer with 128 KB of memory, it lacked preemptive multitasking and memory protection. MultiFinder, introduced in 1988, only provided a rudimentary form of cooperative multitasking. The architecture was aging poorly. By the mid-1990s, Apple relied on decade-old code, initially written for Motorola 68000 processors and adapted to PowerPC with varying degrees of success. Part of the kernel even ran in a 68K emulator, which only made performance worse.
Apple then launched the Copland project in 1994, with the ambition to create a modern system that would retain the Mac OS interface and compatibility. The company held numerous presentations for developers and published documentation, but Copland never achieved acceptable stability. The project was cancelled in 1996. Apple found itself in an urgent situation.
The solution came from elsewhere, through the acquisition of NeXT, the company Steve Jobs had founded after leaving Apple in 1985. NeXT had built NEXTSTEP, a remarkable system based on the Mach microkernel from Carnegie Mellon University. NEXTSTEP combined this modern kernel with a BSD layer and offered preemptive multitasking, memory protection, support for multiple processor architectures, and an object-oriented development environment in Objective-C as early as 1989.
Transforming NEXTSTEP into Mac OS X required considerable work. Apple updated the Mach 2.5 code to version 3.0, updated the BSD portion with code from 4.4BSD and FreeBSD, added support for HFS file systems and Apple network protocols. The team developed I/O Kit, a new driver system that replaced the old DriverKit. This layer, written in a subset of C++, enabled an object-oriented approach for managing peripherals.
The Mac OS X architecture was based on modularity. The XNU kernel (X is not UNIX) combined three components: Mach managed system resources, BSD provided UNIX compatibility and network services, and I/O Kit handled drivers. This organization facilitated maintenance and evolution. Drivers loaded dynamically as KEXTs (Kernel Extensions), modules that could be added without recompiling the kernel.
For application transition, Mac OS X offered several environments. Cocoa, heir to NeXT’s OpenStep libraries, created native applications. Carbon offered a modernized version of classic Mac OS APIs and facilitated porting existing software. A Classic environment ran legacy Mac OS applications without modification.
The innovations went beyond the kernel. The system introduced Mach-O, a universal binary format capable of containing code for different architectures in a single file. This feature simplified software distribution and prepared for future hardware transitions. The boot process relied on OpenFirmware for PowerPC, then on EFI for Intel processors, providing extended capabilities compared to traditional BIOS.
Memory management demonstrated the care given to performance. On x86 systems, Mac OS X adopted a 4/4 approach where user space and the kernel were not mapped simultaneously, unlike the classic 3/1 or 2/2 GB split. This design made better use of available memory.
The transition to Intel processors in 2005-2006 demonstrated the architecture’s flexibility. Rosetta technology, based on Transitive’s QuickTransit, executed PowerPC applications on the new x86 processors through dynamic recompilation. The 32-bit kernel continued to function on 64-bit machines in compatibility mode, preserving compatibility with existing extensions while providing access to 64-bit features.
Mac OS X’s influence extended beyond desktop computers. The system served as the foundation for iOS for the iPhone and iPod touch, adapting the XNU kernel and certain components to the ARM architecture. This code reuse gave Apple technological consistency across its platforms.
The release of Darwin’s source code, the core of Mac OS X, under the Apple Public Source License in 1999 marked a turning point in Apple’s strategy. This openness allowed developers to study the system’s implementation and contribute to it. Projects like PureDarwin demonstrated that derivative systems could be created.
Mac OS X achieved a synthesis between UNIX heritage, NeXT innovations, and Apple’s expertise in interfaces. The system enabled Apple to modernize its platform while preserving compatibility with existing applications. This solid technical foundation supported Apple’s expansion into new markets and continues to evolve with user needs and technological advances.