Académique Documents
Professionnel Documents
Culture Documents
INTRODUCTION:
Jobs became the interim CEO of Apple on September 16, 1997.
Mac OS X was first mentioned in Apple's OS strategy announcement at the 1998 WWD
C. Jobs said that OS X would ship in the fall of 1999, and would inherit from bo
th Mac OS and Rhapsody. Moreover, backward compatibility would be maintained to
ease customers into the transition.
Mac OS X did come out in 1999, as Mac OS X Server 1.0 (March 16, 1999), a develo
per preview of the desktop version, and as Darwin 0.1. Mac OS X beta was release
d on September 13, 2000.
Mac OS X is the culmination of Apple Inc.'s decade-long search for an operating
system to replace the original Mac OS. After the failures of their previous atte
mpts; Pink, which started as an Apple project but evolved into a joint venture w
ith IBM called Taligent, and Copland, which started in 1994 and was cancelled tw
o years later, Apple began development of their most recent operating system (Ma
c OS X) with the acquisition of NeXT's NEXTSTEP.
DARWIN:
The first version of Darwin, 0.1, was released on March 16, 1999 as a fork of a
developer release of Rhapsody. Although Darwin is an operating system in itself,
it can be best understood as a collection of technologies that have been integr
ated by Apple to form a major, central part of Mac OS X. Critical application en
vironments of Mac OS X, such as Cocoa and Carbon, are not part of Darwin. So isn
't Aqua, the overall GUI of Mac OS X (including the Windowing System), and sever
al other components.
LAYERS:
The pieces of software that constitute Mac OS X can be grouped into logical laye
rs as shown below:(Refer figure 1)
A. FIRMWARE:
Open Firmware (IEEE-1275 Standard for Boot Firmware: Core Requirements and Pract
ices) is a non-proprietary, platform (CPU and system) independent boot firmware.
Similar to a PC's BIOS, Open Firmware is stored in ROM and is the first stored
program to be executed upon power-up.
An Open Firmware implementation is based on the Forth programming language, in p
articular, the FCode dialect (FCode is an ANS Forth compliant dialect that suppo
rts compilation of FCode source to bytecode). Apple and Sun are two prominent co
mputer system makers that use implementations of Open Firmware in their systems
(Sun's trademark is called OpenBoot).
B. BOOTLOADER:
BootX (/System/Library/CoreServices/BootX) is the default bootloader on Mac OS X
.
BootX can load kernels from various filesystems: HFS+, HFS, UFS, ext2, and TFTP
(network, abstracted to look like a filesystem). In addition to Mach-O, BootX ca
n also load ELF kernels, although Mac OS X does not use this feature. To reitera
te, BootX can load ELF kernels from an ext2 partition!
C. SYSTEM START-UP:
Mac OS X user level startup is neither pure BSD style, nor SYSV style, although
the presence of /etc/rc indicates a BSD heritage. In fact, various things are un
surprisingly similar to NEXTSTEP.
D. BOOT CACHE:
Mac OS X uses a boot-time optimization (effectively a smart readahead) called "B
ootCache" that monitors the pattern of incoming read requests to a block device
(the boot disk), and sorts the pattern into a "playlist" (it also measures the c
ache hit rate and stores the request pattern into a "history list" for being ada
ptive in future).
The loadable (sorted) read pattern is stored in /var/db/BootCache.playlist. Once
this is loaded, the cache comes into effect.
Note that this feature requires at least 128 MB of physical RAM before it is ena
bled (automatically).
F. CORE SERVICES:
The Core Services layer can be visualized as sitting atop the kernel. This layer
's most important sub-components are CoreFoundation.framework and CoreServices.f
ramework. It contains various critical non-GUI system services (including APIs f
or managing threads and processes, resource, virtual memory and filesystem inter
action):
1.CarbonCore: Core parts of Carbon, such as various Carbon managers. Carbon has
traditionally been a very critical Mac OS API family, and is so in Mac OS X as w
ell.
2.CFNetwork: An API for user-level networking that includes several protocols su
ch as FTP, HTTP, LDAP, SMTP, ...
3.OSServices: A framework that includes various system APIs (accessing disk part
itions, the system keychain, Open Transport, sound, power, etc.)
4.SearchKit: A framework for indexing and searching text in multiple languages.
5.WebServicesCore: APIs for using Web Services via SOAP and XML-RPC.
CoreFoundation also includes a large number of other services. For example, it p
rovides ways so that applications can access URLs, parse XML, maintain property
lists, etc. In the directory /System/Library/Frameworks/, refer to the directory
CoreFoundation.framework/Headers/ for headers belonging to CoreFoundation.
G. APPLICATION SERVICES:
This layer can be visualized as being on top of Core Services. It includes servi
ces that make up the graphics and windowing environment of Mac OS X.
The core of the windowing environment is called Quartz. Quartz consists of broad
ly two entities:
1.Quartz Compositor: consists of the window server (the WindowServer program) an
d some private libraries. Quartz implements a layered compositing engine, in whi
ch every pixel on a screen can be shared between different windows in real time.
2.Quartz 2D: a 2D graphics rendering library.
The Application Services layer also includes various other component frameworks: