Originally introduced to the world in 1987, along with the elegant NeXT cube , NEXTSTEP was intended to “create the next insanely great thing,” as only Steve Jobs could say. The driving mantra was to do everything right, and not to repeat the mistakes that Apple had made. Built on top of BSD Unix and the Mach microkernel, NEXTSTEP had the preemptive multitasking and memory-protected core that Mac OS needed. NEXTSTEP also used Display PostScript from Adobe, allowing developers to use the same code to display documents onscreen and print to paper, enabling truly WYSIWYG applications. NEXTSTEP also featured a rich GUI desktop, as shown in Figure 1-3.
For developers, NEXTSTEP came with a set of libraries, called “frameworks,” and tools to enable programmers to build applications using the Objective-C language. Developers loved this mix of technologies. For example, Tim Berners-Lee used NEXTSTEP to write the first few versions of both the client browser and server software that would start the World Wide Web.
NEXTSTEP evolved through many releases and was adopted by many governments and companies as their platform of choice. It made inroads into the military, banking, healthcare, and telecommunications industries and received glowing reviews from the press. Because it was created as a fresh start, avoiding the mistakes of the design of the original Macintosh and yet building on its ideas, it was able to jump far ahead of anything else.
In 1993, NEXTSTEP was ported to the Intel x86 architecture. Subsequently, other ports were performed for the Sun SPARC, Digital Alpha, and Hewlett-Packard PARISC architectures. Later, the development frameworks and tools were revised to run on other operating systems, such as Windows and Solaris. These revised frameworks became known as OpenStep . The NeXT team gained quite a bit of experience in implementing its technology on multiple platforms.
From NEXTSTEP, Mac OS X directly inherits the following:
Descended from a research project at Carnegie Mellon University and first designed by Avi Tevanian (Apple’s current chief software technology officer) in the mid-1980s, the Mach kernel performs the critical functions of abstracting the hardware of the computer from the software that runs on it. It provides symmetric multiprocessing, preemptive multitasking, protected and virtual memory, and support for real-time applications. Because the kernel is the gatekeeper to hardware and controls each application’s view of memory, individual applications can’t crash or corrupt the system.
Derived from FreeBSD , the BSD layer provides the “user visible” part of the Unix layer: the process model, the concept of users, basic security policies, networking, and support for filesystems. This layer allows many Unix applications, such as the Apache web server, to be easily ported and run on Mac OS X.
Now known as Cocoa , NEXTSTEP defined a rich set of object-oriented APIs, a set of libraries, a runtime, and a development environment for building applications. It provides most of the infrastructure needed to build graphical user applications and to insulate those applications from the internal workings of the core system.
You don’t necessarily have to ever see this layer if you don’t open up the Terminal, but it’s there nonetheless, and knowledge of it is de rigueur to becoming a power user. Through the course of this book, you’re going to get quite familiar with this layer; mastery of the BSD Unix core of Mac OS X is essential to gaining complete mastery of your system.