16.12.2012 Views

A Technical History of Apple's Operating Systems - Mac OS X Internals

A Technical History of Apple's Operating Systems - Mac OS X Internals

A Technical History of Apple's Operating Systems - Mac OS X Internals

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

102 Chapter 1 A <strong>Technical</strong> <strong>History</strong> <strong>of</strong> Apple’s <strong>Operating</strong> <strong>Systems</strong><br />

1.8.3. <strong>Mac</strong>h<br />

The sequel to Accent was called <strong>Mac</strong>h, which was conceived as a UNIX-compatible<br />

Accent-inspired system. In retrospect, with respect to the first version (1.0) <strong>of</strong><br />

<strong>Mac</strong>h, one could consider Accent and RIG to be <strong>Mac</strong>h versions 0.9 and 0.8 respec-<br />

tively.<br />

When <strong>Mac</strong>h was developed, UNIX had been around for over fifteen years.<br />

Although the designers <strong>of</strong> <strong>Mac</strong>h subscribed to the importance and usefulness <strong>of</strong><br />

UNIX, they noted that UNIX was no longer as simple or as easy to modify as it<br />

once had been. Richard Rashid called the UNIX kernel a “dumping ground for vir-<br />

tually every new feature or facility.” <strong>Mac</strong>h’s design goals were partially a response<br />

to the inexorably increasing complexity <strong>of</strong> UNIX.<br />

The <strong>Mac</strong>h project started in 1984 with an overall goal <strong>of</strong> creating a microker-<br />

nel that would be the operating system foundation for other operating systems. The<br />

project’s specific goals included the following.<br />

• Provide full support for multiprocessing.<br />

• Exploit other features <strong>of</strong> modern hardware architectures that were emerging<br />

at that time. <strong>Mac</strong>h aimed to support diverse architectures, including<br />

shared memory access schemes such as Non-Uniform Memory Access<br />

(NUMA) and No-Remote Memory Access (NORMA).<br />

• Support transparent and seamless distributed operation.<br />

• Reduce the number <strong>of</strong> features in the kernel to make it less complex,<br />

while giving the programmer a very small number <strong>of</strong> abstractions to<br />

work with. Nevertheless, the abstractions would be general enough to<br />

allow several operating systems to be implemented on top <strong>of</strong> <strong>Mac</strong>h.<br />

• Provide compatibility with UNIX.<br />

• Address shortcomings <strong>of</strong> previous systems such as Accent.<br />

<strong>Mac</strong>h was intended to primarily implement processor and memory manage-<br />

ment, but no file system, networking, or I/O. The “real” operating system was to run

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!