Mac OS X
Overview
& Glossary
Updated: 6-22-01
Information provided by: Andrea Barr
X Overview
- The central characteristic of the Mac OS
X architecture is the layering of system software.
- The four distinct, interdependent layers
of system software are application environments, application services, core services,
and Darwin.
Application Environments
- The application environments layer includes
Classic, Carbon, Cocoa, Java, and BSD Commands.
- Mac OS 9.1 is the basis for the Classic environment,
allowing previous versions of most Macintosh software to work just as they do in
Mac OS 9.1.
- Classic provides a single seamless environment
in which users can run Mac OS 9.1 applications on a Mac OS X system.
- Carbon is a Mac OS X application environment
that features a set of programming interfaces derived from earlier versions of the
Mac OS.
- Optimizing applications for the Carbon environment
means converting them to modern Mac OS X applications and involves recompiling them
with a new set of Carbon APIs. Macintosh applications that have been recompiled with
these APIs can run as stand-alone applications in Mac OS X, and do not need the Classic
environment to run.
- Cocoa is a powerful object-oriented software
development environment--included with Mac OS X--that features graphical tools, rich
frameworks, and a predefined application infrastructure that supports rapid development
of sophisticated applications.
- Whereas Carbon simplifies the Toolbox layer,
Cocoa simplifies the development layer. As does Carbon, Cocoa allows developers to
create applications that are optimized for Mac OS X. Cocoa includes a set of frameworks
with programming interfaces in both Java and Objective-C. It is based on the integration
of OpenStep, Apple technologies, and Java.
- Java 2 support is built into Mac OS X. The
Java 2 implementation in Mac OS X is designed to allow maximum Java application portability
and cross-platform functionality.
- Java developers can migrate quickly to Cocoa.
The Cocoa API is accessible from Java. The advantage is that there are millions of
Java programmers in the world-- increasing the pool of talent who can write software
for Mac OS X without having to learn a new language.
- The BSD Commands environment is a special
optional environment for developers that allows them to use standard BSD tools, utilities,
and scripts.
- The full BSD command set is accessible from
the Terminal application, and its support for POSIX APIs makes it easy to port existing
UNIX applications to Mac OS X.
Application Services
- The application services layer incorporates
the system services available to all application environments that have some impact
on applications' graphical user interfaces. It includes Quartz, QuickDraw, OpenGL,
Apple Type Solution (ATS), and QuickTime.
- Quartz is designed for the display of two-dimensional
text and graphics, delivering on-the-fly rendering, anti-aliasing, and compositing
of PostScript graphics with pristine quality.
- OpenGL is an industry-wide graphics standard
for developing portable 3D graphics applications. OpenGL is specifically designed
for games, animation, CAD/CAM, medical imaging, and other applications that need
a rich, robust framework for visualizing shapes in two and three dimensions.
- Apple Type Solution (ATS) provides support
for a wide variety of font formats including OpenType, TrueType, and Type 1.
- QuickTime 5 includes a new user interface,
media skins, an enhanced DVD codec, and provides enhanced support for AppleScript,
Macromedia Flash, and MPEG-1.
Core Services
- The core services layer incorporates those
system services that have no effect on applications' graphical user interfaces, and
comprises Carbon Core, Core Foundation, Apple events, and Open Transport.
- Carbon Core includes Carbon managers, which
offer low-level services (advanced memory management, protected memory, symmetric
multiprocessing, and preemptive multitasking) to all application environments.
- Core Foundation is a framework that provides
fundamental software services useful to application services, the application environments,
and to applications themselves; and also enables easy internationalization through
Unicode strings.
- An Apple event is a high-level event that
applications can send to other applications on the same computer, on a remote computer,
or even to themselves. Apple events are the primary mechanism for interapplication
communication in Mac OS X.
- Open Transport is the primary user-level
networking and communications software for applications optimized for the Carbon
environment.
Darwin
- Darwin is the core operating system of Mac
OS X.
- Mach and BSD are the primary components of
Darwin.
- With protected memory, Mach ensures that
an application cannot write to another application's memory or to the operating system's
memory.
- With preemptive multitasking, Mach watches
over the computer's processor, prioritizing tasks, making sure activity levels are
at their maximum, and ensuring that every task gets the resources it needs.
- With advanced memory management, like other
virtual memory systems, Mach maintains address maps that control the translation
of a task's virtual addresses into physical memory.
- Symmetric multiprocessing (SMP), which enables
the system to automatically use both of the computer's processors to complete tasks
faster and save customers time. The two processors share the same memory, have equal
access to I/O devices, and any task can run on any processor.
- Application multithreading allows applications
to distribute a processing load among separate threads, and manage them so that no
one application can monopolize the processor.
- Darwin includes networking protocol stacks
and services, file systems, and device drivers.
- Darwin supports many different file systems
and volume formats, including Mac OS Extended (HFS+), Universal File System (UFS),
Universal Disk Format (UDF), Network File System (NFS), and ISO 9660.
- A device driver is a component of an operating
system that moves data to and from a device, as well as controls that device. For
development of device drivers, Darwin offers an object-oriented framework called
the I/O Kit.
- Mac OS X supports Point-to-Point Protocol
over Ethernet (PPPoE), a networking protocol for connecting multiple computer users
via Ethernet to a remote site through a cable modem or similar device. PPPoE allows
users to share a common digital subscriber line (DSL), cable modem, or wireless connection
to the Internet.
Glossary
- application environment
- Consists of the frameworks, libraries, and
services (along with associated APIs) necessary for the runtime execution of programs
developed with those APIs. The application environments have dependencies on all
underlying layers of system software. Mac OS X currently has five application environments:
Classic, Carbon, Cocoa, Java, and BSD Commands.
application programming interface (API)
- A set of routines used by an application
to direct the performance of procedures by the computer's operating system.
Aqua
- A term used to describe the Mac OS X user
interface, chosen because it means "water" in many languages and the characteristics
of water infuse the user experience of Mac OS X.
Berkeley Software Distribution (BSD)
- Formerly known as "the Berkeley version"
of UNIX, BSD is now simply called the BSD operating system. The BSD portion of Mac
OS X is based on 4.4BSD Lite 2 and FreeBSD, a "flavor" of 4.4BSD.
Carbon
- An application environment that provides
Mac OS 9 applications with all the features of Darwin, including protected memory
for crash-resistant computing and preemptive multitasking for a more responsive system,
as well as the new Aqua look and feel.
Carbon features a set of programming interfaces derived from earlier versions of
the Mac OS. The Carbon APIs have been modified to work properly with Mac OS X, especially
with the foundation of the operating system, the kernel environment.
Carbon applications can run on Mac OS X, Mac OS 9, and all versions of Mac OS 8 later
than Mac OS 8.1.
Classic
- An application environment that allows users
to continue to use their systems for everything they already do. Classic applications
don't appear in the new Aqua interface.
Classic supports programs built for both PowerPC and 68K chip architectures and is
fully integrated with the Finder and the other application environments in Mac OS
X.
Cocoa
- An advanced object-oriented programming environment
for building new next-generation applications.
Cocoa is a set of frameworks with programming interfaces in both Java and Objective-C.
It is based on the integration of OpenStep, Apple technologies, and Java.
Darwin
- Another name for the Mac OS X core operating
system, which includes some, but not all, of the components of Mac OS X.
The Darwin kernel is equivalent to the Mac OS X kernel plus the BSD libraries and
commands essential to the BSD Commands environment. Darwin is open source technology.
Domain Name Services (DNS)
- The standard Internet service for mapping
host names to IP addresses.
Dynamic Host Configuration (DHCP)
- Automates the assignment of IP addresses
in a particular network.
file system
- Refers to the way in which files are named
and where they are placed logically for storage and retrieval. In Mac OS X, files
are placed in a hierarchical tree structure, either in directories or subdirectories.
File Transfer Protocol (FTP)
- A standard means of moving files between
computers on TCP/IP networks.
Hypertext Transport Protocol (HTTP)
- The standard protocol for transferring web
pages between a web server and browser.
internationalization
- The design or modification of a software
product, including online help and documentation, to facilitate localization. Internationalization
of software typically involves writing or modifying code to make use of locale-aware
operating-system services for appropriate localized text input, display, formatting,
and manipulation. See also localization.
kernel
- The complete Mac OS X core operating-system
environment, which includes Mach, BSD, the I/O Kit, file systems, and networking
components. Also called the kernel environment.
Lightweight Directory Access Protocol (LDAP)
- Lets users locate organizations, individuals,
and resources such as files and devices in a network, whether on the Internet or
on a corporate intranet.
localization
- The adaptation of a software product, including
online help and documentation, for use in one or more regions of the world, in addition
to the region for which the original product was created. Localization of software
can include translation of user-interface text, resizing of text-related graphical
elements, and replacement or modification of user-interface images and sound. See
also internationalization.
Mach
- The lowest level of the Mac OS X kernel.
Mach provides such basic services and abstractions as threads, tasks, ports, interprocess
communication (IPC) scheduling, physical and virtual address space management, virtual
memory, and timers.
memory protection
- A system of memory management in which programs
are prevented from being able to modify or corrupt the memory partition of another
program. Mac OS 8 and Mac OS 9 do not have memory protection; Mac OS X does.
multitasking
- The concurrent execution of multiple programs.
Mac OS X uses preemptive multitasking. Mac OS 8 and Mac OS 9 use cooperative multitasking.
Network
- A pane in System Preferences used to enter
settings to connect to a network, and an icon users see when they click the Computer
button in a Finder window.
Also, a group of hosts that can directly communicate with each other.
Network File System (NFS)
- An NFS file server allows users on the network
to share files on other hosts as if they were on their own local disks.
Network Time Protocol (NTP)
- Used for synchronizing client clocks.
open source
- A definition of software that includes freely
available access to source code, redistribution, modification, and derived works.
The full definition is available at www.opensource.org.
Point-to-Point Protocol (PPP)
- A protocol for dialup (modem) access. PPP
support includes TCP/IP as well as the PAP and CHAP authentication protocols.
Portable Operating System Interface (POSIX)
- An operating-system interface standardization
effort supported by ISO/IEC, IEEE, and The Open Group.
preemption
- The act of interrupting a currently running
task in order to give time to another task.
preemptive multitasking
- A type of multitasking in which the operating
system can interrupt a currently running task in order to run another task, as needed.
Printer Access Protocol (PAP)
- Printer Access Protocol. Used for spooling
print jobs and printing to network printers.
serial transmission
- Supports modem, DSL, and ISDN capabilities.
Service Location Protocol (SLP)
- A protocol designed for the automatic discovery
of resources (printers, servers, fax machines, and so on) on an IP network.
symmetric multiprocessing (SMP)
- A feature of an operating system in which
two or more processors are managed by one kernel, sharing the same memory, having
equal access to I/O devices, and in which any task, including kernel tasks, can run
on any processor.
10/100BASE-T Ethernet
- The network connection type built into every
new Macintosh. An IEEE standard for data transmission over fiber-optic cable and
standardized copper wiring.
10/100/1000BASE-T Ethernet
- The IEEE standard for data transmission over
an Ethernet network at rates over 1,000 megabits (Mbps) per second. Also known as
Gigabit Ethernet.
Transmission Control Protocol (TCP/IP)
- A transmission-layer protocol designed to
work with the network-layer Internet Protocol (IP).
User Datagram Protocol (UDP/IP)
- A transmission-layer protocol designed to
work with the network-layer Internet Protocol (IP).
virtual memory (VM)
- The use of a disk partition or a file on
disk to provide the same facilities usually provided by RAM. The virtual-memory manger
in Mac OS X provides 32-bit (minimum) protected address space for each task and facilitates
efficient sharing of that address space.
Unicode
- A 16-bit character encoding standard developed
by the Unicode Consortium between 1988 and 1991. By representing two bytes to represent
each character, Unicode enables almost of the written languages of the world to be
represented using a single character set.