The macOS Lineage: From NeXTSTEP to Darwin
Abstract
macOS is not the operating system Apple built but the one it bought. Through the first half of the 1990s Apple tried and failed to replace the classic Mac OS, which had no protected memory and no preemptive multitasking; its last attempt, Copland, was cancelled in August 1996. Four months later Apple announced that it would buy Steve Jobs’s company NeXT, whose NeXTSTEP combined the Mach kernel from Carnegie Mellon, a BSD Unix layer and an object-oriented application framework. The deal, worth $429 million, closed in February 1997 and brought Jobs back. It took Apple four years and two strategies, Rhapsody and Carbon, to turn NeXTSTEP into Mac OS X, released in March 2001. Its open-source core, Darwin, became the base of the iPhone’s operating system in 2007 and of every Apple operating system since. Since 2007 macOS has also been a certified UNIX, and the system has moved its processor architecture twice, from PowerPC to Intel in 2006 and from Intel to Apple’s own chips from 2020.
The Classic Mac OS and Its Limits
Apple’s original operating system ran from the first Macintosh in 1984 through Mac OS 9 in 1999, and its architecture reflected the 1984 machine: 128 KB of RAM, one program at a time and no hardware memory protection. Cooperative multitasking was added later, with MultiFinder in 1987 and as standard in System 7 (1991).
By the mid-1990s these limits had become serious. With no protected memory, any program could write to any address, including the operating system’s own data, so a crashing application could take down the whole machine; the bomb icon and the forced restart were part of Mac life. With no preemptive multitasking, the system relied on applications voluntarily handing back the processor, and a program stuck in a loop froze the computer. Extensions loaded at start-up patched the system directly, and conflicts between them were a common source of crashes.
⚠️ Dead End: Pink, Copland and Gershwin
Apple knew all this and spent a decade trying to fix it. Pink, started around 1988, was to be an object-oriented successor; it became Taligent (see Dead End: Taligent), a joint venture with IBM, which Apple left in December 1995 without a product for the Mac.
Copland started officially in March 1994 and was announced in May. It was to run on a new microkernel, NuKernel, with networking and file services as separate servers, protected memory for new applications and a compatibility box for old ones. At Macworld in August 1995 Apple promised it for mid-1996. It missed every date. Teams kept adding features (“Anytime they saw something sexy it had to go into the OS,” said Jeffrey Tarter, publisher of the newsletter Softletter), engineers left their own projects to join it, and chief executive Gil Amelio later described the result as separate pieces expected to “magically come together.” Demonstrations at the 1996 developer conference crashed or lacked important features. In August 1996 a “Developer Release 0” reached a small group of partners, and the same month Apple’s new chief technology officer, Ellen Hancock, concluded that Copland would never ship, and Apple cancelled it. Gershwin, its announced successor, was never started.
Some Copland components went into Mac OS 8 (1997). Apple was left without a modern operating system and went shopping. It talked to Jean-Louis Gassée’s Be, whose BeOS ran on PowerPC Macs; accounts differ on how much Gassée asked, and Gassée has said price was not what decided it. On 20 December 1996 Apple announced that it would buy NeXT instead.
NeXT
Steve Jobs founded NeXT in 1985, after he had been forced out of Apple, to build workstations for universities. The NeXT Computer, a black magnesium cube with a high-resolution display and a magneto-optical disk drive, was unveiled at a gala in San Francisco on 12 October 1988 and shipped to universities in 1989 at a base price of $6,500. Jobs said he wanted “some kid at Stanford to be able to cure cancer in his dorm room.” NeXT sold about 50,000 computers in all, and in 1993 NeXT left the hardware business and became NeXT Software. NeXTSTEP was ported to Intel 486 PCs in 1993, and with Sun NeXT defined OpenStep, a version of its programming interfaces that also ran on other operating systems.
NeXTSTEP was built in layers:
Mach, a microkernel developed at Carnegie Mellon University by Richard Rashid and Avie Tevanian, provided tasks, threads, virtual memory and message passing between processes. NeXT used Mach 2.5 together with much of the 4.3BSD kernel adapted to run on it.
BSD Unix provided the rest: the command line, the file system semantics, the tools (ls, grep, vi, cc) and the network stack. A Unix programmer found a familiar environment under the graphical surface.
Display PostScript, licensed from Adobe, drew the screen with the same imaging model that printers used.
AppKit and the Objective-C runtime sat on top. With Interface Builder a programmer drew the user interface and connected its buttons and fields to code; AppKit supplied text editing, file dialogs, printing and undo. Writing an application took far less code than on other platforms of the time.
Tim Berners-Lee wrote the first web browser and the first web server on a NeXT computer at CERN in 1990, and id Software developed Doom on NeXT machines.
Objective-C on NeXT
Objective-C, which NeXT adopted for NeXTSTEP development, was designed by Brad Cox and Tom Love in the early 1980s at their company Productivity Products International, later renamed Stepstone. It added Smalltalk-style message passing to C: instead of calling a function, a program sent a message to an object, [button addTarget:self action:@selector(buttonPressed:)], and the method to run was chosen at run time. Apple’s developers used Objective-C for all macOS, iOS and watchOS development until Swift appeared in 2014.
Rhapsody and Carbon
The NeXT acquisition was completed on 7 February 1997. Jobs returned as an adviser, became interim chief executive in September 1997 after Amelio was ousted, and permanent chief executive in 2000.
Amelio had already announced the first plan, Rhapsody, at Macworld in January 1997. It was essentially OpenStep with a Mac-like appearance. New applications would use the Yellow Box, NeXT’s frameworks, which would also run on Windows NT; old Mac programs would run in the Blue Box, an emulation of the classic system. The first developer release went to about 10,000 developers on 13 October 1997. The developers did not follow. After Copland, many doubted Apple’s plans, and none of the major software companies was willing to rewrite its applications for the Yellow Box. At the developer conference of May 1998 Apple admitted that “not a single” major third-party developer had committed to doing so.
Apple changed course. Carbon, announced at that conference, was a cleaned-up version of the classic Mac programming interfaces that would run both on Mac OS 9 and on the new system, so existing applications could be adapted rather than rewritten. The Yellow Box became Cocoa, the Blue Box became the Classic environment. Rhapsody itself shipped only as Mac OS X Server 1.0 on 16 March 1999.
Mac OS X
Apple sold a Public Beta of Mac OS X from 13 September 2000 for $29.95. Mac OS X 10.0 (“Cheetah”) followed on 24 March 2001. Its Aqua interface, designed by Apple’s human-interface team under Cordell Ratzlaff and Jobs’s direction, used translucent, water-like buttons and pinstripes; Jobs said at its introduction in January 2000 that “one of the design goals was when you saw it you wanted to lick it.” Early reviewers liked the look and complained about speed: John Siracusa called the first releases “dog-slow, feature poor.” From January 2002 Apple preinstalled Mac OS X on every Mac.
Releases were named after big cats up to Mountain Lion (2012) and after places in California from Mavericks (2013). Apple shortened the name to OS X in 2012 and changed it to macOS in 2016. macOS Big Sur (2020) was the first version numbered 11 after nearly twenty years of 10.x. Since Mac OS X 10.5 Leopard, certified on 26 October 2007, every release except Lion has carried The Open Group’s UNIX 03 certification, so macOS is officially a UNIX, which the major Linux distributions are not (see Commercial Unix and the Unix Wars).
Darwin
Under Aqua lies Darwin, the Unix core that Apple published as open source: version 0.1 appeared together with Mac OS X Server in March 1999, version 1.0 in April 2000. Darwin’s kernel, XNU (“X is Not Unix”), descends from the NeXTSTEP kernel: Mach combined with BSD code, extended after 1997 with code from FreeBSD and with IOKit, a driver framework written in a restricted C++. The process model, the network stack and the virtual file system come from FreeBSD, and so does most of the command-line environment, which is why Unix software usually compiles on a Mac without changes.
Apple made no secret that macOS was a Unix. The Terminal application gave direct access to the shell, and the Homebrew package manager (2009) built an ecosystem of open-source tools installable on a Mac. Darwin was published under the Apple Public Source License, from July 2003 in version 2.0, which the Free Software Foundation regards as a free licence incompatible with the GPL. OpenDarwin, a community project founded by Apple and the Internet Systems Consortium in April 2002 to build a standalone Darwin system, shut down on 25 July 2006, saying it had become “a mere hosting facility for Mac OS X related projects.” Darwin today exists only as source code, and many parts of the system around it are closed.
The compiler moved too. The LLVM infrastructure, begun by Chris Lattner as a research project at the University of Illinois, was adopted and sponsored by Apple, and its C front end Clang replaced GCC in Apple’s tools. LLVM’s split into a shared intermediate representation, separate front ends for languages and separate back ends for processors later made it the compiler base for Rust, Julia and Swift.
iOS
Apple introduced the iPhone in January 2007 as a phone that ran OS X. Its system shared the Darwin kernel, the BSD layer, the Objective-C runtime and much of Cocoa with the Mac, and replaced AppKit with UIKit, a new framework for touchscreens. It was named iPhone OS with the release of the software development kit in 2008 and iOS in 2010.
The App Store (2008) built a closed ecosystem on this partly open base. Every iPhone application runs on Darwin code that Apple publishes; the applications, the frameworks above Darwin and the store itself are proprietary. The same kernel lineage runs iPadOS, watchOS, tvOS and visionOS.
Two Processor Transitions
The separation between Darwin and the hardware paid off twice. At the developer conference of 6 June 2005 Jobs revealed that Mac OS X had been compiled for Intel processors in secret throughout its life, and announced that Macs would switch from PowerPC to Intel. The first Intel Macs shipped in January 2006, and Rosetta translated PowerPC programs on the fly; by August 2006, when the Mac Pro replaced the Power Mac, the line had changed over. Snow Leopard (2009) was the first version that ran only on Intel.
In June 2020 Apple announced the move from Intel to its own ARM-based processors. The first Macs with the M1 chip came out in November 2020, with Rosetta 2 translating Intel programs, and the Mac Pro with the M2 Ultra completed the change in June 2023. macOS Tahoe (version 26, 2025) is the last release to support Intel Macs.
📚 Sources
- Stross, Randall: Steve Jobs and the NeXT Big Thing (1993), Atheneum, the NeXT era in detail
- Kahney, Leander: Inside Steve’s Brain (2008), Portfolio, Jobs’s role in macOS design
- Singh, Amit: Mac OS X Internals: A Systems Approach (2006), Addison-Wesley, comprehensive technical reference
- Tevanian, Avie & Young, Richard: “Mach: The Model for Future Unix”, Proceedings of USENIX (1986)
- Copland (operating system), Wikipedia (Pink and Taligent, start March 1994, NuKernel, missed dates, Softletter quote, Amelio quote, Developer Release 0 and cancellation August 1996, Gershwin, Mac OS 8)
- 512 Pixels, “NeXT: The Apple Purchase” (2012) and Jean-Louis Gassée, Wikipedia (Be negotiations, Gassée’s account)
- NeXT, Wikipedia (about 50,000 computers sold, founding 1985, unveiling 12 October 1988, $6,500, the Stanford quote, exit from hardware 1993, NeXTSTEP on 486, OpenStep, announcement 20 December 1996, closing 7 February 1997, Berners-Lee, Doom)
- Rhapsody (operating system), Wikipedia (Macworld January 1997, Yellow Box and Blue Box, DR1 on 13 October 1997, “not a single” developer, Carbon, Mac OS X Server 1.0 on 16 March 1999)
- Apple press release, “Apple Releases Mac OS X Public Beta” (13 September 2000) ($29.95)
- Aqua (user interface), Wikipedia (Macworld January 2000, the “lick it” remark)
- macOS, Wikipedia (10.0 on 24 March 2001, Siracusa quote, preinstallation 2002, naming, OS X and macOS renames, Big Sur as version 11, UNIX 03, 6 June 2005 Intel announcement, Snow Leopard, Tahoe as last Intel release)
- Single UNIX Specification, Wikipedia (Leopard certified 26 October 2007)
- Darwin (operating system), Wikipedia (0.1 March 1999, 1.0 April 2000, FreeBSD components, APSL 2.0 July 2003, OpenDarwin 2002 to 2006, source-only today)
- Objective-C, Wikipedia (Cox and Love, Productivity Products International, later Stepstone)
- XNU, Wikipedia (name, Mach 2.5 and 4.3BSD, FreeBSD code, IOKit)
- Apple Open Source
- LLVM project history at llvm.org
- MobileSyrup, “Apple completes its transition to in-house chips with M2 Ultra Mac Pro” (5 June 2023)
- Image: NeXTcube computer (1990) - Computer History Museum.jpg by Michael Hicks (CC BY 2.0), via Wikimedia Commons
- Image: Mac OS X Public Beta install CD.jpg by Blake Patterson (CC BY 2.0), via Wikimedia Commons