abstract type Defines, in information property lists, general characteristics of a family of documents. Each abstract type has corresponding concrete types. See also concrete type.

Accessibility The technology for ensuring that disabled users can use Mac OS X. Accessibility provides support for disabled users in the form of screen readers, speech recognition, text-to-speech converters, and mouse and keyboard alternatives.

ACLs Access Control Lists. A technology used to give fine-grained access to file-system objects. Compare with permissions.n

action In the Automator application and framework, a modular unit that performs a discrete task, such as opening a file, cropping an image, or sending a message.

active window The frontmost modal or document window. Only the contents of the active window are affected by user actions. The active window has distinctive details that aren’t visible for inactive windows.

Address Book A technology for managing names, addresses, phone numbers, and other contact-related information. Mac OS X provides the Address Book application for managing contact data. It also provides the Address Book framework so that applications can programmatically manage the data.

address space Describes the range of memory (both physical and virtual) that a process uses while running. In Mac OS X, processes do not share address space.

alias A lightweight reference to files and folders in Mac OS Standard (HFS) and Mac OS Extended (HFS+) file systems. An alias allows multiple references to files and folders without requiring multiple copies of these items. Aliases are not as fragile as symbolic links because they identify the volume and location on disk of a referenced file or folder; the file or folder can be moved around without breaking the alias. See also symbolic link.

anti-aliasing A technique that smoothes the roughness in images or sound caused by aliasing. During frequency sampling, aliasing generates a false (alias) frequency along with the correct one. With images this produces a stair-step effect. Anti-aliasing corrects this by adjusting pixel positions or setting pixel intensities so that there is a more gradual transition between pixels.

Apple event A high-level operating-system event that conforms to the Apple Event Interprocess Messaging Protocol (AEIMP). An Apple event typically consists of a message from an application to itself or to another application.

AppleScript An Apple-defined scripting language. AppleScript uses a natural language syntax to send Apple events to applications, commanding them to perform specific actions.

AppleTalk A suite of network protocols that is standard on Macintosh computers and can be integrated with other network systems, such as the Internet.

AppKit A Cocoa framework that implements an application’s user interface in Mac OS X. The AppKit framework provides a basic program structure for applications that draw on the screen and respond to events. (AppKit is sometimes called Application Kit.)

application packaging Putting code and resources in the prescribed directory locations inside application bundles. “Application package” is sometimes used synonymously with “application bundle.”

Aqua A set of guidelines that define the appearance and behavior of Mac OS X applications. The Aqua guidelines bring a unique look to applications, integrating color, depth, clarity, translucence, and motion to present a vibrant appearance. If you use Cocoa to create your application’s interface, you get the Aqua appearance automatically

ASCII American Standard Code for Information Interchange. A 7-bit character set (commonly represented using 8 bits) that defines 128 unique character codes. See also Unicode.

Auto Layout A rule-based user-interface layout system designed to implement the layout guidelines described in Mac OS X Human Interface Guidelines. It expresses a larger class of relationships and is more intuitive to use than springs and struts.

bit depth The number of bits used to describe something, such as the color of a pixel. Each additional bit in a binary number doubles the possible information conveyed.

bitmap A data structure that represents the positions and states of a corresponding set of pixels.

Bonjour Apple’s technology for zero-configuration networking. Bonjour enables dynamic discovery of services over a network.

BSD Berkeley Software Distribution. Formerly known as the Berkeley version of UNIX, BSD is now simply called the BSD operating system. BSD provides low-level features such as networking, thread management, and process communication. It also includes a command-shell environment for managing system resources. The BSD portion of Mac OS X is based on version 5 of the FreeBSD distribution.

buffered window A window with a memory buffer in which all drawing is rendered. All graphics are first drawn in the buffer, and then the buffer is flushed to the screen.

bundle A directory in the file system that stores executable code and the software resources related to that code. Applications, plug-ins, and frameworks are types of bundles. Except for frameworks, bundles are file packages, presented by the Finder as a single file.

bytecode Computer object code that is processed by a virtual machine. The virtual machine converts generalized machine instructions into specific machine instructions (instructions that a computer’s processor can understand). Bytecode is the result of compiling source language statements written in any language that supports this approach. See also virtual machine (VM).

Carbon A legacy application environment in Mac OS X that features a set of procedural programming interfaces derived from earlier versions of the Mac OS. The Carbon API has been modified to work properly with Mac OS X, especially with the foundation of the operating system, the kernel environment. Carbon applications can run in Mac OS X and Mac OS 9.

CFM Code Fragment Manager, the library manager and code loader for processes based on PEF (Preferred Executable Format) object files (in Carbon).

class In object-oriented languages such as Objective-C, a prototype for a particular kind of object. A class definition declares instance variables and defines methods for all members of the class. Objects that belong to the same class have the same types of instance variables and have access to the same methods (including the instance variables and methods inherited from superclasses).

Classic An application environment in Mac OS X that lets you run non-Carbon legacy Mac OS software. It supports programs built for both PowerPC and 68000-family chip architectures and is fully integrated with the Finder and the other application environments.

Clipboard A per-user server (also known as the pasteboard) that enables the transfer of data between applications, including the Finder. This server is shared by all running applications and contains data that the user has cut or copied, as well as other data that one application wants to transfer to another, such as in dragging operations. Data in the Clipboard is associated with a name that indicates how it is to be used. You implement data-transfer operations with the Clipboard using Core Foundation Pasteboard Services or the Cocoa NSPasteboard class. See also pasteboard.

Cocoa An advanced object-oriented development platform in Mac OS X. Cocoa is a set of frameworks used for the rapid development of full-featured applications in the Objective-C language. It is based on the integration of OpenStep and Apple technologies.

code fragment In the CFM-based architecture, a code fragment is the basic unit for executable code and its static data. All fragments share fundamental properties such as the basic structure and the method of addressing code and data. A fragment can easily access code or data contained in another fragment. In addition, fragments that export items can be shared among multiple clients. A code fragment is structured according to the Preferred Executable Format (PEF).

ColorSync An industry-standard architecture for reliably reproducing color images on various devices (such as scanners, video displays, and printers) and operating systems.

compositing A method of overlaying separately rendered images into a final image. It encompasses simple copying as well as more sophisticated operations that take advantage of transparency.

concrete type Defines, in information property lists, specific characteristics of a type of document, such as extensions and HFS+ type and creator codes. Each concrete type has corresponding abstract types. See also abstract type.

CUPS The Common UNIX Printing System; an open source architecture commonly used by the UNIX community to implement printing.

daemon A process that handles periodic service requests or forwards a request to another process for handling. Daemons run continuously, usually in the background, waking only to handle their designated requests. For example, the httpd daemon responds to HTTP requests for web information.

Darwin Another name for the Mac OS X core operating system. 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 an open source technology.

Dashboard A user technology for managing HTML-based programs called widgets (see widget). Activating the Dashboard via the F12 key displays a layer above the Mac OS X desktop that contains the user’s current set of widgets.

Dashcode A graphical application used to build and debug Dashboard widgets.

demand paging An operating system facility that causes pages of data to be read from disk into physical memory as they are needed.

device driver A component of an operating system that deals with getting data to and from a device, as well as with the control of that device.

dispatch queue A Grand Central Dispatch (GCD) structure that you use to execute your application’s tasks. GCD defines dispatch queues for executing tasks either serially or concurrently.

domain An area of the file system reserved for software, documents, and resources, and limiting the accessibility of those items. A domain is segregated from other domains. There are four domains: user, local, network, and system.

DVD An optical storage medium that provides greater capacity and bandwidth than CD-ROM; DVDs are frequently used for multimedia as well as data storage.

dyld See dynamic link editor

dynamic link editor The library manager for code in the Mach-O executable format. The dynamic link editor is a dynamic library that “lives” in all Mach-O programs on the system. See also CFM; Mach-O.

dynamic linking The binding of modules, as a program executes, by the dynamic link editor. Usually the dynamic link editor binds modules into a program lazily (that is, as they are used). Thus modules not actually used during execution are never bound into the program.

dynamic shared library A library whose code can be shared by multiple, concurrently running programs. Programs share one physical copy of the library code and do not require their own copies of that code. With dynamic shared libraries, a program not only attempts to resolve all undefined symbols at runtime, but attempts to do so only when those symbols are referenced during program execution.

encryption The conversion of data into a form, called ciphertext, that cannot be easily understood by unauthorized people. The complementary process, decryption, converts encrypted data back into its original form.

Ethernet A high-speed local area network technology.

exception An interruption to the normal flow of program control that occurs when an error or other special condition is detected during execution. An exception transfers control from the code generating the exception to another piece of code, generally a routine called an exception handler.

fault In the virtual-memory system, faults are the mechanism for initiating page-in activity. They are interrupts that occur when code tries to access data at a virtual address that is not mapped to physical memory. Soft faults happen when the referenced page is resident in physical memory but is unmapped. Hard (or page) faults occur when the page has been swapped out to backing store. See also page; virtual memory.

file package A directory that the Finder presents to users as if it were a file. In other words, the Finder hides the contents of the directory from users. This opacity discourages users from inadvertently (or intentionally) altering the contents of the directory.

file system A part of the kernel environment that manages the reading and writing of data on mounted storage devices of a certain volume format. A file system can also refer to the logical organization of files used for storing and retrieving them. File systems specify conventions for naming files, storing data in files, and specifying locations of files. See also volume format.

filters The simplest unit used to modify image data from Core Image. One or more filters may be packaged into an image unit and loaded into a program using the Core image framework. Filters can contain executable or nonexecutable code. See also image units.

firewall Software (or a computer running such software) that prevents unauthorized access to a network by users outside the network. (A physical firewall prevents the spread of fire between two physical locations; a software firewall prevents the unauthorized spread of data.)

fork (1) A stream of data that can be opened and accessed individually under a common filename. The Mac OS Standard and Extended file systems store a separate data fork and resource fork as part of every file; data in each fork can be accessed and manipulated independently of the other. (2) In BSD, fork is a system call that creates a new process.

framebuffer A highly accessible part of video RAM (random-access memory) that continuously updates and refreshes the data sent to the devices that display images onscreen.

framework A type of bundle that packages a dynamic shared library with the resources that the library requires, including header files and reference documentation.

Grand Central Dispatch (GCD) A technology for executing asynchronous tasks concurrently. GCD is available in Mac OS X v10.6 and later and is not available in iOS.

HFS Hierarchical File System. The Mac OS Standard file-system format, used to represent a collection of files as a hierarchy of directories (folders), each of which may contain either files or other folders. HFS is a two-fork volume format.

HFS+ Hierarchical File System Plus. The Mac OS Extended file-system format. This format allows filenames longer than 31 characters, supports Unicode representation of file and directory names, and supports efficient operation on very large disks. HFS+ is a multiple-fork volume format.

HIToolbox Human Interface Toolbox. A collection of procedural APIs that apply an object-oriented model to windows, controls, and menus for Carbon applications. The HI Toolbox supplements older Macintosh Toolbox managers such as the Control Manager, Dialog Manager, Menu Manager, and Window Manager from Mac OS 9.

host The computer that is running (is host to) a particular program; used to refer to a computer on a network.

iCloud document storage An iCloud feature for storing and sharing user documents and app data, suitable for files and directories.

iCloud key-value data storage An iCloud feature for storing and sharing property list data types for preferences, configuration settings, and other noncritical information.

IDE An acronym meaning “integrated development environment”. An IDE is a program that typically combines text editing, compiling, and debugging features in one package in order to assist developers with the creation of software.

image units A plug-in bundle for use with the Core Image framework. Image units contain one or more filters for manipulating image data.

information property list A property list that contains essential configuration information for bundles. A file named Info.plist (or a platform-specific variant of that filename) contains the information property list and is packaged inside the bundle.

inheritance In object-oriented programming, the ability of a superclass to pass its characteristics (methods and instance variables) on to its subclasses.

instance In object-oriented languages such as Objective-C, an object that belongs to (is a member of) a particular class. Instances are created at runtime according to the specification in the class definition.

Interface Builder An application or subsystem for creating user interfaces. You use Interface Builder to build and configure your user interface using a set of standard components and save that data to a resource file that can be loaded into your program at runtime. Xcode 4.0 integrates Interface Builder features; earlier, it was a separate application.

internationalization The design or modification of a software product, including its 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.

interprocess communication (IPC) A set of programming interfaces that enables a process to communicate data or information to another process. Mechanisms for IPC exist in the different layers of the system, from Mach messaging in the kernel to distributed notifications and Apple events in the application environments. Each IPC mechanism has its own advantages and limitations, so it is not unusual for a program to use multiple IPC mechanisms. Other IPC mechanisms include pipes, named pipes, signals, message queueing, semaphores, shared memory, sockets, the Clipboard, and application services.

I/O Kit A collection of frameworks, libraries, tools, and other resources for creating device drivers in Mac OS X. The I/O Kit framework uses a restricted form of C++ to provide default behavior and an object-oriented programming model for creating custom drivers.

iSync A tool for synchronizing Address Book information.

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.

key An arbitrary value (usually a string) used to locate a piece of data in a data structure such as a dictionary.

localization The adaptation of a software product, including its online help and documentation, for use in one or more regions of the world, other than 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.

lock A data structure used to synchronize access to a shared resource. The most common use for a lock is in multithreaded programs where multiple threads need access to global data. Only one thread can hold the lock at a time; this thread is the only one that can modify the data during this period.

manager In Carbon, a library or set of related libraries that define a programming interface.

Mach The lowest level of the Mac OS X kernel environment. 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.

Mach-O Executable format of Mach object files. See also PEF.

main thread By default, a process has one thread, the main thread. If a process has multiple threads, the main thread is the first thread in the process. A user process can use the POSIX threading API (pthread) to create other user threads.

major version A framework version specifier designating a framework that is incompatible with programs linked with a previous version of the framework’s dynamic shared library.

makefile A specification file used by a build tool to create an executable version of an application. A makefile details the files, dependencies, and rules by which the application is built.

memory-mapped file A file whose contents are mapped into memory. The virtual-memory system transfers portions of these contents from the file to physical memory in response to page faults. Thus, the disk file serves as backing store for the code or data not immediately needed in physical memory.

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 9 does not have memory protection; Mac OS X does.

method In object-oriented programming, a procedure that can be executed by an object.

minor version A framework version specifier designating a framework that is compatible with programs linked with later builds of the framework within the same major version.

multicast A process in which a single network packet may be addressed to multiple recipients. Multicast is used, for example, in streaming video, in which many megabytes of data are sent over the network.

multihoming The ability to have multiple network addresses in one computer. For example, multihoming might be used to create a system in which one address is used to talk to hosts outside a firewall and the other to talk to hosts inside; the operating system provides facilities for passing information between the two.

multitasking The concurrent execution of multiple programs. Mac OS X uses preemptive multitasking, whereas Mac OS 9 uses cooperative multitasking.

network A group of hosts that can directly communicate with each other.

nib file A file containing resource data generated by the Interface Builder application.

nonretained window A window without an offscreen buffer for screen pixel values.

notification Generally, a programmatic mechanism for alerting interested recipients (or “observers”) that some event has occurred during program execution. The observers can be users, other processes, or even the same process that originates the notification. In Mac OS X, the term “notification” is used to identify specific mechanisms that are variations of the basic meaning. In the kernel environment, “notification” is sometimes used to identify a message sent via IPC from kernel space to user space; an example of this is an IPC notification sent from a device driver to the window server’s event queue. Distributed notifications provide a way for a process to broadcast an alert (along with additional data) to any other process that makes itself an observer of that notification. Finally, the Notification Manager (a Carbon manager) lets background programs notify users—through blinking icons in the menu bar, by sounds, or by dialogs—that their intercession is required.

NFS Network File System. An NFS file server allows users on the network to share files on other hosts as if they were on their own local disks.

object A programming unit that groups together a data structure (instance variables) and the operations (methods) that can use or affect that data. Objects are the principal building blocks of object-oriented programs.

object file A file containing executable code and data. Object files in the Mach-O executable format take the suffix .o and are the product of compilation using the GNU compiler (gcc). Multiple object files are typically linked together along with required frameworks to create a program. See also code fragment; dynamic linking.

object wrapper Code that defines an object-based interface for a set of procedural interfaces. Some Cocoa objects wrap Carbon interfaces to provide parallel functionality between Cocoa and Carbon applications.

Objective-C An object-oriented programming language based on standard C and a runtime system that implements the dynamic functions of the language. Objective-C’s few extensions to the C language are mostly based on Smalltalk, one of the first object-oriented programming languages. Objective-C is available in the Cocoa application environment.

opaque type In Core Foundation and Carbon, an aggregate data type plus a suite of functions that operate on instances of that type. The individual fields of an initialized opaque type are hidden from clients, but the type’s functions offer access to most values of these fields. An opaque type is roughly equivalent to a class in object-oriented programming.

Open Computing Language (OpenCL) A standards-based technology for performing general-purpose computations on a computer’s graphics processor. For more information, see OpenCL Programming Guide for Mac OS X.

OpenGL The Open Graphics Language; an industry-wide standard for developing portable 2D and 3D graphics applications. OpenGL consists of an API and libraries that developers use to render content in their applications.

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

Open Transport Open Transport is a legacy communications architecture for implementing network protocols and other communication features on computers running the Mac OS. Open Transport provides a set of programming interfaces that supports, among other things, both the AppleTalk and TCP/IP protocols.

PackageMaker A tool that builds an installable software package from the files you provide.

page The smallest unit, measured in bytes, of information that the virtual memory system can transfer between physical memory and backing store. As a verb, page refers to transferring pages between physical memory and backing store.

pasteboard Another name for the Clipboard.

PEF Preferred Executable Format. An executable format understood by the Code Fragment Manager. See also Mach-O.

permissions In BSD, a set of attributes governing who can read, write, and execute resources in the file system. The output of the ls -l command represents permissions as a nine-position code segmented into three binary three-character subcodes; the first subcode gives the permissions for the owner of the file, the second for the group that the file belongs to, and the last for everyone else. For example, -rwxr-xr– means that the owner of the file has read, write, execute permissions (rwx); the group has read and execute permissions (r-x); everyone else has only read permissions. The leftmost position indicates whether this is a regular file (-), a directory (d), a symbolic link (l), or a special pseudo-file device (no character). The execute bit has a different semantic for directories, meaning they can be searched.

physical address An address to which a hardware device, such as a memory chip, can directly respond. Programs, including the Mach kernel, use virtual addresses that are translated to physical addresses by mapping hardware controlled by the Mach kernel.

physical memory Electronic circuitry contained in random-access memory (RAM) chips, used to temporarily hold information at execution time. Addresses in a process’s virtual memory are mapped to addresses in physical memory. See also virtual memory.

pixel The basic logical unit of programmable color on a computer display or in a computer image. The physical size of a pixel depends on the resolution of the display screen.

plug-in An external module of code and data separate from a host (such as an application, operating system, or other plug-in) that, by conforming to an interface defined by the host, can add features to the host without needing access to the source code of the host. Plug-ins are types of loadable bundles. They are implemented with Core Foundation Plug-in Services.

port (1) In Mach, a secure unidirectional channel for communication between tasks running on a single system. (2) In IP transport protocols, an integer identifier used to select a receiver for an incoming packet or to specify the sender of an outgoing packet.

POSIX The Portable Operating System Interface. An operating-system interface standardization effort supported by ISO/IEC, IEEE, and The Open Group.

PostScript A language that describes the appearance (text and graphics) of a printed page. PostScript is an industry standard for printing and imaging. Many printers contain or can be loaded with PostScript software. PostScript handles industry-standard, scalable typefaces in the Type 1 and TrueType formats. PostScript is an output format of Quartz.

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.

process A BSD abstraction for a running program. A process’s resources include a virtual address space, threads, and file descriptors. In Mac OS X, a process is based on one Mach task and one or more Mach threads.

property list A structured, textual representation of data that uses Extensible Markup Language (XML) as the structuring medium. Elements of a property list represent data of certain types, such as arrays, dictionaries, and strings.

pthreads The POSIX Threads package (BSD).

Quartz The native 2D rendering API for Mac OS X. Quartz contains programmatic interfaces that provide high-quality graphics, compositing, translucency, and other effects for rendered content. Quartz is part of the Application Services umbrella framework.

Quartz Extreme A technology integrated into the lower layers of Quartz that enables many graphics operations to be offloaded to hardware. This offloading of work to a graphics processor unit (GPU) provides tremendous acceleration for graphics-intensive applications. This technology is enabled automatically by Quartz and OpenGL on supported hardware.

QuickTime Apple’s multimedia authoring and rendering technology. QuickTime lets you import and export media files, create new audio and video content, modify existing content, and play back content.

RAM Random-access memory. Memory that a microprocessor can either read or write to.

raster graphics Digital images created or captured (for example, by scanning in a photo) as a set of samples of a given space. A raster is a grid of x-axis (horizontal) and y-axis (vertical) coordinates on a display space. (Three-dimensional images also have a z coordinate.) A raster image identifies the monochrome or color value with which to illuminate each of these coordinates. The raster image is sometimes referred to as a bitmap because it contains information that is directly mapped to the display grid. A raster image is usually difficult to modify without loss of information. Examples of raster-image file types are BMP, TIFF, GIF, and JPEG files. See also vector graphics.

real time In reference to operating systems, a guarantee of a certain capability within a specified time constraint, thus permitting predictable, time-critical behavior. If the user defines or initiates an event and the event occurs instantaneously, the computer is said to be operating in real time. Real-time support is especially important for multimedia applications.

reentrant The ability of code to process multiple interleaved requests for service nearly simultaneously. For example, a reentrant function can begin responding to one call, be interrupted by other calls, and complete them all with the same results as if the function had received and executed each call serially.

resolution The number of pixels (individual points of color) contained on a display monitor, expressed in terms of the number of pixels on the horizontal axis and the number on the vertical axis. The sharpness of the image on a display depends on the resolution and the size of the monitor. The same resolution will be sharper on a smaller monitor and gradually lose sharpness on larger monitors because the same number of pixels are being spread out over a larger area.

resource Anything used by executable code, especially by applications. Resources include images, sounds, icons, localized strings, archived user interface objects, and various other things. Mac OS X supports both Resource Manager–style resources and “per-file” resources. Localized and nonlocalized resources are put in specific places within bundles.

retained window A window with an offscreen buffer for screen pixel values. Images are rendered into the buffer for any portions of the window that aren’t visible onscreen.

role An identifier of an application’s relation to a document type. There are five roles: Editor (reads and modifies), Viewer (can only read), Print (can only print), Shell (provides runtime services), and None (declares information about type). You specify document roles in an application’s information property list.

ROM Read-only memory, that is, memory that cannot be written to.

run loop The fundamental mechanism for event monitoring in Mac OS X. A run loop registers input sources such as sockets, Mach ports, and pipes for a thread; it also enables the delivery of events through these sources. In addition to registering sources, run loops can also register timers and observers. There is exactly one run loop per thread.

runtime The period of time during which a program is being executed, as opposed to compile time or load time. Can also refer to the runtime environment, which designates the set of conventions that arbitrate how software is generated into executable code, how code is mapped into memory, and how functions call one another.

Safari Apple’s web browser. Safari is the default web browser that ships with Mac OS X.

scheduling The determination of when each process or task runs, including assignment of start times.

SCM Repository Source Code Management Repositories. A code database used to enable the collaborative development of large projects by multiple engineers. SCM repositories are managed by specific tools (such as CVS and Subversion), which manage the repository and handle check-ins and check-outs of code resources by engineers.

SCSI Small Computer Systems Interface. A standard connector and communications protocol used for connecting devices such as disk drives to computers.

script A series of statements, written in a scripting language such as AppleScript or Perl, that instruct an application or the operating system to perform various operations. Interpreter programs translate scripts.

SDK Software Development Kit. A set of frameworks, tools, and other resources for developing applications and other software for a specific version of a platform such as Mac OS X or iOS.

semaphore A programming technique for coordinating activities in which multiple processes compete for the same kernel resources. Semaphores are commonly used to share a common memory space and to share access to files. Semaphores are one of the techniques for interprocess communication in BSD.

server A process that provides services to other processes (clients) in the same or other computers.

Shark A tool for analyzing a running (or static) application that returns metrics to help you identify potential performance bottlenecks.

sheet A dialog associated with a specific window. Sheets appear to slide out from underneath the window title and float above the window.

shell An interactive programming language interpreter that runs in a Terminal window. Mac OS X includes several different shells, each with a specialized syntax for executing commands and writing structured programs, called shell scripts.

SMP Symmetric multiprocessing. A feature of an operating system in which two or more processors are managed by one kernel, sharing the same memory and having equal access to I/O devices, and in which any task, including kernel tasks, can run on any processor.

socket (1) In BSD-derived systems, a socket refers to different entities in user and kernel operations. For a user process, a socket is a file descriptor that has been allocated using socket(2). For the kernel, a socket is the data structure that is allocated when the kernel’s implementation of the socket(2) call is made. (2) In AppleTalk protocols, a socket serves the same purpose as a “port” in IP transport protocols.

spool To send files to a device or program (called a spooler or daemon) that puts them in a queue for later processing. The print spooler controls output of jobs to a printer. Other devices, such as plotters and input devices, can also have spoolers.

subframework A public framework that packages a specific Apple technology and is part of an umbrella framework. Through various mechanisms, Apple prevents or discourages developers from including or directly linking with subframeworks. See also umbrella framework.

symbolic link A lightweight reference to files and folders in UFS file systems. A symbolic link allows multiple references to files and folders without requiring multiple copies of these items. Symbolic links are fragile because if what they refer to moves somewhere else in the file system, the link breaks. However, they are useful in cases where the location of the referenced file or folder will not change. See also alias.

system framework A framework developed by Apple and installed in the file-system location for system software.

task A Mach abstraction, consisting of a virtual address space and a port name space. A task itself performs no computation; rather, it is the context in which threads run. See also thread.

TCP/IP Transmission Control Protocol/Internet Protocol. An industry-standard protocol used to deliver messages between computers over the network. TCP/IP support is included in Mac OS X.

thread In Mach, the unit of CPU utilization. A thread consists of a program counter, a set of registers, and a stack pointer. See also task.

thread-safe code Code that can be used safely by several threads simultaneously.

timer A kernel resource that triggers an event at a specified interval. The event can occur only once or can be recurring. Timers are one of the input sources for run loops. Timers are also implemented at higher levels of the system, such NSTimer in Cocoa.

transformation An alteration to a coordinate system that defines a new coordinate system. Standard transformations include rotation, scaling, and translation. A transformation is represented by a matrix.

UDF Universal Disk Format. The file-system format used in DVD disks.

UFS UNIX file system. An industry-standard file-system format used in UNIX-like operating systems such as BSD. UFS in Mac OS X is a derivative of 4.4BSD UFS. Its disk layout is not compatible with other BSD UFS implementations.

umbrella framework A system framework that includes and links with constituent subframeworks and other public frameworks. An umbrella framework “contains” the system software defining an application environment or a layer of system software. See also subframework.

Unicode A 16-bit character set that assigns unique character codes to characters in a wide range of languages. In contrast to ASCII, which defines 128 distinct characters typically represented in 8 bits, Unicode comprises 65536 distinct characters that represent the unique characters used in many languages.

vector graphics The creation of digital images through a sequence of commands or mathematical statements that place lines and shapes in a two-dimensional or three-dimensional space. One advantage of vector graphics over bitmap graphics (or raster graphics) is that any element of the picture can be changed at any time because each element is stored as an independent object. Another advantage of vector graphics is that the resulting image file is typically smaller than a bitmap file containing the same image. Examples of vector-image file types are PDF, encapsulated PostScript (EPS), and SVG. See also raster graphics.

versioning With frameworks, schemes to implement backward and forward compatibility of frameworks. Versioning information is written into a framework’s dynamic shared library and is also reflected in the internal structure of a framework. See also major version; minor version.

VFS Virtual File System. A set of standard internal file-system interfaces and utilities that facilitate support for additional file systems. VFS provides an infrastructure for file systems built into the kernel.

virtual address A memory address that is usable by software. Each task has its own range of virtual addresses, which begins at address zero. The Mach operating system makes the CPU hardware map these addresses onto physical memory only when necessary, using disk memory at other times. See also physical address.

virtual machine (VM) A simulated computer in that it runs on a host computer but behaves as if it were a separate computer.

virtual memory The use of a disk partition or a file on disk to provide the facilities usually provided by RAM. The virtual-memory manager in Mac OS X provides either a 32-bit or 64-bit protected address space for each task (depending on the options used to build the task) and facilitates efficient sharing of that address space.

VoiceOver A spoken user interface technology for visually impaired users.

volume A storage device or a portion of a storage device that is formatted to contain folders and files of a particular file system. A hard disk, for example, may be divided into several volumes (also known as partitions).

volume format The structure of file and folder (directory) information on a hard disk, a partition of a hard disk, a CD-ROM, or some other volume mounted on a computer system. Volume formats can specify such things as multiple forks (HFS and HFS+), symbolic and hard links (UFS), case sensitivity of filenames, and maximum length of filenames. See also file system.

widget An HTML-based program that runs in the Dashboard layer of the system.

window server A systemwide process that is responsible for rudimentary screen displays, window compositing and management, event routing, and cursor management. It coordinates low-level windowing behavior and enforces a fundamental uniformity in what appears on the screen.

workflow In the Automator application and framework, a workflow combines multiple actions in a particular sequence; when the workflow executes, data is piped from one action to the next until the desired result is achieved. See action.

Xcode An integrated development environment (IDE) for creating Mac OS X software. Xcode incorporates compiler, debugger, linker, and text editing tools into a single package to streamline the development process.