Glossary of Copland Terminology

The terms defined in this glossary are alert box may or may not be accompanied preliminary and subject to change. by an alert sound. See also , modal . action The objects and activities that make a human interface task unique, such as the area A logical extent of memory with names of folders to back up or a list of common attributes. Areas never overlap; a people to whom a message should be sent. particular address in an address space is See also task. included in at most one area. See also global area. activation model The tasking and synchronization model mandated by an assistant An entity that provides a specific I/O family. It consists of the code that kind of active assistance in a given context provides the runtime environment to the by asking the user questions and then family and its plug-ins. See family, plug-in. taking actions or creating human interface tasks based on the answers. active assistance General term for Copland features that allow the computer automation Automatically controlled to assist the user actively. See also operations. In Copland, features that allow automation, delegation, task, task the computer to create a series of actions, or definition, assistant. a human interface task, in a form that can be repeated. See also task. active window The frontmost window on the desktop; the window where the next backing provider A server process action will take place. The active window is responsible for transferring memory identified by distinctive details that aren’t between backing storage (for example, a visible for inactive windows. hard disk) and physical memory in response to page faults. address space The set of addresses that a process can reference. bus expert See low-level expert. alert box An arrangement of panels cell A rectangular part of a list displaying within a that an application information about one item in the list. displays on the screen to warn the user or to CFM-based software Software compiled report an error. An alert box typically for execution in a runtime environment that consists of text describing the situation and uses Code Fragment Manager (CFM) buttons that require the user to fragments to organize executable code and acknowledge or rectify the problem. An data in memory.

GL-1 Draft. Confidential.  Apple Computer, Inc. 10/17/95

This document was created with FrameMaker 4.0.4

GLOSSARY

close box The box on the left end of the name of your patch, and any other title bar of an active window. Clicking it information required to execute your patch. closes the window. Using this model, the task of installing a patch and scheduling patch execution is code fragment See fragment. taken over by the Code Fragment Manager Code Fragment Manager The part of the and the Patch Manager. This is the Mac OS that loads fragments into memory preferred patching method in Copland. and prepares them for execution. data fork Part of a file that contains data collapse box The box on the right end of accessed using the File Manager. The data the title bar of an active window. Clicking it usually corresponds to data entered by the collapses or expands the window. user; the application creating a file can store and interpret the data in the data fork in condition The set of events or states that whatever manner is appropriate. trigger a human interface task. See also task. delegation General term for Copland cooperative process A process that has a features that allow the computer to trigger cooperative task created by the Process human interface tasks when a specified Manager. The act of relinquishing control of condition occurs. See also condition, task. the processor at a well-defined time, such as at a call to the WaitNextEvent function, is desktop animation module A module a defining characteristic of a cooperative controlled by the Desktop Animation process. See process, server process. Manager that can maintain the appearance of the desktop background or act as a cooperative task A task created by the screen saver when no keyboard or mouse Process Manager for an application when events occur within a specified period of the application is launched. Scheduling of time. cooperative tasks is layered on top of preemptive scheduling of preemptive tasks. Device Manager family A Copland I/O The microkernel sees all cooperative and family to which two types of device drivers preemptive tasks as peers and schedules belong: those that have not been revised to them preemptively. The Process Manager run as a plug-in to another I/O family and ensures that for all cooperative processes, those for which no family exists. See family, only one cooperative task is eligible to run plug-in. at any one time. See also preemptive task, dialog box An arrangement of panels task. within a window that an application cooperative thread See thread. displays to solicit information from the user before the application carries out the user’s data-driven patching A method of command. See also modal dialog box, patching according to which you create modeless dialog box, movable modal data structures specifying the address of dialog box. your patch and of the patched routine, the

GL-2 Draft. Confidential.  Apple Computer, Inc. 10/17/95

GLOSSARY

DLL See dynamically linked library. Dynamic Host Configuration Protocol (DHCP) An Internet standard for document information panel A managing end-node Internet Protocol (IP) composite panel, available via the configuration. DHCP automates the Document Info command in an configuration process by returning application’s File , that presents the information about the TCP/IP network to same information presented by the Get Info the user’s configuration control panel. command in the Finder’s . The document information panel also appears dynamically linked library (DLL) A in an application’s Save and Open dialog shared library that is automatically loaded boxes. See also panel. by the Code Fragment Manager at runtime in order to export code or data referenced document window A window of class by another fragment. kDocumentWindowClass, typically used to display document data. A document embedding panel A panel that contains window appears behind floating and modal other panels and controls their layout, windows in an application’s layer. See also keyboard focus, and mouse interactions. floating window, modal window. entry ID An opaque reference assigned by drag To position the pointer on a visual the Name Registry to a registry entry. It interface element (such as an ), press uniquely identifies a registry entry until the and hold the mouse , move the system restarts. If the registry entry is pointer to a new position, and then release deleted, the Name Registry may reuse the the mouse button. Dragging can have entry ID after a long period of time. different effects, depending on what’s entry name A character string that under the pointer when the user first characterizes a registry entry in the Name presses the mouse button. To support the Registry. It may name a general category of dragging of items from one place to things or a specific thing. For instance, the another, you use the Drag Manager. entry name of the registry entry Driver Loader Library A set of routines representing the device tree is "devices". that all I/O families can use to locate and The entry name of a registry entry instantiate their plug-ins. representing a specific device might be "ADB keyboard". Driver Services Library A set of routines that provide basic driver services to exception An error or other special families, such as interrupt registration, condition detected by the microprocessor in timing facilities, allocation and deallocation the course of program execution. of memory, and secondary-interrupt- execution environment A set of handling capabilities. conventions regarding how code gets activated and what services and memory

GL-3 Draft. Confidential.  Apple Computer, Inc. 10/17/95

GLOSSARY

are available to it. See also hardware family server See FPI server. interrupt level, secondary interrupt level, family services library A set of services to software interrupt level, task level. which a family’s plug-ins can subscribe. expert See family expert, low-level expert. Such services can include communicating data, allocating memory, and registering extent Continuous memory space and servicing interrupts. It provides reserved on backing storage or in physical services that supplement those available RAM for data or code. from the microkernel. factoring Using Apple events to separate file A named, ordered collection of the code that controls an application’s user information stored on a Mac OS volume, interface from the code that responds to the typically divided into a data fork and a user’s manipulation of the interface. In a resource fork. fully factored application, any significant user actions generate Apple events that any floating window A window of class scripting component based on the Open kFloatingWindowClass, typically used Scripting Architecture (OSA) can record as for tool palettes, catalogs, and other statements in a compiled script. elements used to act on data in document windows. A floating window appears in family (1) A collection of software pieces front of document windows and behind that provide a single set of I/O services to modal windows in an application’s layer. the system, such as the SCSI family and its See also document window, modal SCSI interface modules (SIMs) or the file window. systems family and its installable file systems. Often, a family is associated with a FPI See family programming interface. set of devices that have similar FPI server Family software that runs in characteristics, such as display devices or supervisor and responds to service ADB devices. (2) A collection of devices that requests from family clients. provide the same kind of I/O services, for example, the family of display devices. fragment In Copland, the basic unit of executable code and its data. family expert Code within a family that maintains knowledge of the set of family generic driver A driver whose services plug-ins within the system. It locates family are available through the Device Manager. plug-ins in the Name Registry and Generic drivers are plug-ins to the Device instantiates them. Sometimes referred to as Manager family. See plug-in. a high-level expert. global area An area mapped to all address family programming interface (FPI) An spaces. Specifying this area attribute allows I/O family’s API that provides applications, software residing in different address other families, and system software with spaces to share data and code. access to the family’s services.

GL-4 Draft. Confidential.  Apple Computer, Inc. 10/17/95

GLOSSARY

global family constants A set of shared head patch A patch that does some family values. processing before it calls the patched routine. See also surround patch and tail global patch A patch that is called by patch. every application referencing the patched routine. To create a global patch, you create high-level expert See family expert. a shared library that calls the patch and a interface definition objects (IDOs) special shared library fragment that Copland’s SOM-based replacements for the contains the patch description structure for definition procedures (defprocs) used in that patch. The shared library must use per- System 7 to draw windows, menus, and context instantiation. controls. guard pages Inaccessible pages of interrupt See hardware interrupt, memory placed immediately before and secondary interrupt, software interrupt. after the range of addresses specified by an area. Copland does not actually allocate interrupt handler A routine that services backing storage or RAM for guard pages; it interrupts. See also hardware interrupt merely marks the addresses in those pages handler, secondary interrupt handler, as inaccessible to user-level or supervisor- software interrupt handler. level software. interrupt latency The time between the hardware interrupt An exception signaled generation of an interrupt and the execution to the processor by a physical device, of its associated interrupt handler. notifying the processor of a change of kernel See microkernel. condition of the device, such as the reception of incoming data. keyboard focus The focal point on screen for actions triggered by keypresses. hardware interrupt handler Code that is invoked as a direct result of a hardware list A series of items displayed within a interrupt. A hardware interrupt handler rectangle. Lists may have zero, one, or two always runs in supervisor mode. scroll bars. hardware interrupt level The execution local patch A patch that executes only environment in which a hardware interrupt within your application’s context. You handler runs. Only a subset of microkernel create a local patch by including a patch and OS services are available. No Toolbox description structure for it in a special services are available. Only memory that is fragment associated with your application physically resident is accessible; page faults fragment. at hardware interrupt level are illegal and low-level expert Code that has specific system fatal. See page fault. knowledge of a piece of hardware, such as a bus or a main logic board. It knows how physical devices are connected to the

GL-5 Draft. Confidential.  Apple Computer, Inc. 10/17/95

GLOSSARY

system, and it installs and removes that modifier Information associated with a information in the device portion of the registry entry name or property that is Name Registry. Sometimes referred to as a hardware or implementation specific, such motherboard expert. as whether or not the name or property is saved to nonvolatile RAM. memory area A range of addresses, within an address space, sharing common motherboard expert See low-level expert. attributes. movable modal dialog box A dialog box microkernel The set of lowest-level displayed in a modal window with a title operating system services, including bar (but no close box) that the user can drag memory management, task management, to move the box. The user can dismiss a synchronization primitives, interprocess movable modal dialog box only by clicking communication mechanisms, interrupt its buttons. See also dialog box, modal handling, and basic timing services. dialog box, modeless dialog box. modal dialog box A dialog box displayed multicast A message that is received by in a modal window that the user can’t any number of hosts that are registered move. A modal dialog box resembles an members of a group. alert box. The user can dismiss a modal multihoming A networking feature that dialog box only by clicking its buttons. See allows multiple network interface controller also modeless dialog box, movable modal (NIC) cards to be active on a single node at dialog box. the same time. modal window A window of class multinode architecture An AppleTalk kModalWindowClass that puts the user in feature that allows an application to acquire a state or “mode” of being able to work node IDs that are additional to the standard only inside the window. A modal window node ID assigned to the system when the is typically used to display a dialog box or node joins an AppleTalk network. alert box that requires immediate attention Multinode architecture is provided to meet from the user. A modal window appears in the needs of special-purpose applications front of all other windows in an that receive and process AppleTalk packets application’s layer. See also document in a custom manner, instead of passing window, floating window. them directly on to a higher-level AppleTalk modeless dialog box A dialog box protocol for processing. A multinode ID displayed in a document window without a allows the system running your application size box or scroll bars. The user can move a to appear as multiple nodes on the network. modeless dialog box, make it inactive and name entry See registry entry. active again, and close it like any document window. See also modal dialog box, Name Registry A high-level Mac OS movable modal dialog box. system service that stores the names of software objects and the relations among

GL-6 Draft. Confidential.  Apple Computer, Inc. 10/17/95 GLOSSARY

the names. For instance, the Name Registry page fault An exception that causes data contains device information and makes it to be transferred between backing storage available to Macintosh run-time drivers. (for example, a hard disk) and physical memory. network-layer protocol The protocol level directly above the data-link layer. The panel (1) A SOM object that encapsulates network layer is responsible for routing one or more human interface elements. data between systems on the network. (2) A hierarchy of embedded panels that make up a larger control panel, document node A device addressable at the network- information panel, or other integrated set of layer protocol level. human interface elements. See also nonprivileged software Code that document information panel. executes while the processor is in user patch A piece of code that intercepts the mode. To protect the state of the user’s transaction between a client and a service system, applications should typically that is implemented by a single routine. You execute as user-level software. can assume control in order to monitor the non-reentrant code Code that should be use of that service, to modify the service, or executed by only one piece of software at a to replace the service. A patch is uniquely time. identified by a patch ID. notification The way in which a human patch chain An ordered list of patches on interface task notifies the user that a task the same instance of the same entry point. A has been completed; for example, a patch chain is uniquely identified by a notification might write details to a log and patch chain ID. page the user via a commercial paging patch chain ID A unique identifier that system when a task is completed. See also specifies a patch chain. The Patch Manager task. uses this identifier to distinguish among object A file system container that holds patch chains belonging to the same patch properties. Certain types of file system chain set. objects can contain other file system objects. patch chain set The set of patch chains File system objects include files, folders, associated with a single context. volumes, and the universe. patch description structure A data Open Transport A communications structure you create to describe a patch. It architecture that can be used to implement specifies the address of the patch, the any number of networking and other address of the patched routine, the name of communications systems. It replaces the the patch, and options related to the AppleTalk, MacTCP, and Serial Driver execution of the patch. You store patch interfaces with a single, transport- description structures in a special fragment independent interface.

GL-7 Draft. Confidential.  Apple Computer, Inc. 10/17/95 GLOSSARY

that is associated either with the application OS managers and utility functions that (for local patching) or a shared library (for provide APIs for catalog, messaging, and global patching). security services. patch ID A unique identifier that specifies preemptive task A task that uses only a patch in a patch chain. The Patch Manager reentrant operating-system services, returns this ID to you after it installs a patch. allowing it to be preemptively scheduled by the microkernel. See also cooperative task, plug-in (1) A dynamically loaded piece of task. software that provides an instance of the service provided by a family. Within the file primary human interface The menus, systems family, for example, a volume- windows, and tools that allow a user to format plug-in implements file-system control an application directly. See also services for a specific volume format. (2) A secondary human interface. dynamically loaded piece of software that primary interrupt level See hardware provides a service for an application. interrupt level. plug-in programming interface (PPI) A primary task See cooperative task. family–to–plug-in interface that defines the entry points a plug-in must support so that priority The ranking of a task used by the it can be called and a plug-in–to–family Copland microkernel for execution interface that defines the routines plug-ins scheduling. The microkernel provides must call when certain events occur. In various symbolic priorities for applications, addition, a PPI defines the data request drivers, servers, and real-time operations. path through which the family and its plug- privilege level An access state to ins exchange data. processor resources corresponding to the pool A portion of logical memory from mode of the processor. Code that has the which software can dynamically allocate privilege to execute while the processor is memory. A pool is contained in one or more in supervisor mode is called privileged areas. software, and code that has the privilege to execute only while the processor is in user Pool Manager In Copland, a reentrant, mode is called nonprivileged software. pointer-based heap allocator that allows software to dynamically allocate memory privileged software Code that executes without affecting other areas of memory. while the processor is in supervisor mode. Typically, only the operating system and PowerTalk system software Apple portions of device drivers should run in Computer’s implementation of the AOCE supervisor mode in Copland. system software for use on Mac-compatible computers. The PowerTalk system software process A set of one or more tasks and the includes desktop services, as well as Mac memory and other operating system resources allocated to those tasks. For

GL-8 Draft. Confidential.  Apple Computer, Inc. 10/17/95 GLOSSARY

example, when Copland launches an a property name and and a property value. application, the system creates a process (2) A data item or a set of data that is stored that identifies the application’s cooperative by the file system. task, any preemptive tasks created by the property name A null-terminated application, and the memory areas character string that characterizes a allocated to those tasks. A process is specific property of a registry entry. Examples of to one address space, but multiple processes property names include “vendor-id” and can share the same address space. Copland “driver-description”. uses processes to track resource allocation and to reclaim resources. See also property value The data in a property. cooperative process, server process. reentrant services Code written so that Process Manager In Copland, the part of the data it manipulates is kept logically Mac OS that manages the scheduling of separate from the code itself, allowing the cooperative processes and that controls code to be safely called by several pieces of access to resources shared by those software at the same time. processes. registry entry A node in the Name programmatic patching A method of Registry. A registry entry is connected to patching used with System 7 according to one or more other entries by relationships, which you replace the address of an such as parent, child, and sibling. Each existing operating system routine in the registry entry has an entry name, an entry trap dispatch table with the address of a ID and one or more properties. patch routine. This method is supported in replacement patch A patch that never Copland but not in any Mac OS release calls the routine it is patching; it replaces it following that. completely. promise A scrap that contains resource Any data stored according to a placeholders for scrap item types rather defined structure in a resource fork of a file. than the scrap item data itself. When the The data in a resource is interpreted user pastes or completes a drag, the Scrap according to its resource type. Manager asks the original application to fulfill its promise for the type of data being resource fork Part of a file that contains pasted or dropped and provide the actual the file’s resources. data. See also scrap. resource ID A number that identifies a property (1) A unit of data belonging to a specific resource of a given resource type. registry entry. A property stores resource type A sequence of four information about the thing represented by characters that uniquely identifies a specific the registry entry. Each property consists of type of resource.

GL-9 Draft. Confidential.  Apple Computer, Inc. 10/17/95 GLOSSARY

routine descriptor A data structure that secondary interrupt A signal sent to the indicates the instruction set architecture of a microkernel by a primary interrupt handler particular routine by describing the or a privileged task requesting that a routine’s address, its parameters, and its secondary interrupt handler be queued for calling conventions. execution. runtime environment The set of secondary interrupt handler A routine conventions that determine how code is that runs as a result of a secondary loaded into memory, where data is stored interrupt. A secondary interrupt handler and how it is addressed, and how functions always runs in supervisor mode. A call other functions and system software secondary interrupt handler can be routines. preempted only by hardware interrupt handlers. scrap A structure created by the Scrap Manager that consists of one or more scrap secondary interrupt level The execution items that can hold one ore more pieces of environment in which a secondary data. See also promise, scrap item, scrap interrupt handler runs. Only a subset of item type. microkernel and OS services are available. No Toolbox services are available. Only scrap item A structure created by the memory that is physically resident is Scrap Manager for holding a single piece of accessible; page faults at secondary data that can be represented in different interrupt level are illegal and system fatal. ways by one or more scrap item types. See also scrap, scrap item type. secondary task See preemptive task. scrap item type A structure created by the semaphores Synchronization primitives Scrap Manager that is associated with a used to block (schedule or switch out) tasks scrap item and holds a single representation until a required resource becomes available. of the piece of data associated with the For example, a global semaphore could be scrap item. See also scrap, scrap item. used to restrict access to the Toolbox to one application at a time. secondary human interface A high-level interface that frees users from detailed server (1) A computer and associated decisions about how to make the computer software that provide a service to users and perform specific actions. For example, that control access to that service, such as a assistants make decisions on the user’s file server or a database server. (2) In behalf and use the primary human interface Copland, a process that provides a service to carry them out. See also assistant, to other processes on the same or a primary human interface. connected computer. See also server process. (3) In the context of an I/O family, software built on the client/server model, but that has a single client. See also FPI server.

GL-10 Draft. Confidential.  Apple Computer, Inc. 10/17/95 GLOSSARY

server process A process that has its own supervisor mode A state of operation for address space and whose task (or tasks) the PowerPC processor that allows software uses only reentrant system services. See also to gain access to all of memory, all processor cooperative process. registers, and other critical resources. Only software with supervisor-mode privilege shared library (1) A fragment that exports can switch the processor between functions and variables to other fragments. supervisor mode and user mode. Compare A shared library is used to resolve imported user mode. symbols during linking and also during the loading and preparation of some other supervisor-mode software See privileged fragment. Some shared libraries are software. dynamically linked; others must be surround patch A patch that performs explicitly instantiated during execution. some processing, calls the patched routine, (2) Any fragment. and then performs some additional size box A box in the lower-right corner processing. This is the model used for all of some active windows. Dragging the size types of data-driven patching. See also box resizes the window. head patch and tail patch. software interrupt A signal sent to the System Object Model (SOM) A microkernel requesting that it invoke a technology from International Business particular routine that, upon completion, Machines, Inc., that provides language- returns execution at the point where the independent and platform-independent interrupt was sent. means of defining programmatic objects and handling method dispatching software interrupt handler A routine that dynamically at runtime. runs in a particular task as a result of a software interrupt. A software interrupt tail patch A patch that does some handler can be preempted by other tasks, processing after calling the patched routine. secondary interrupt handlers, and See also head patch and surround patch. hardware interrupt handlers. Software task (1) In the Copland human interface, a interrupt handlers can access virtual persistent representation of a sequence of memory. actions that can be triggered software interrupt level The execution programmatically. A task is created from a environment in which a software interrupt task definition in a manner analogous to the handler runs. All microkernel, OS, and way a document is created from an Toolbox services available at task level are application. See also task definition. (2) In available at software interrupt level. See Copland system software, the basic unit of also task level. program execution that is preemptively scheduled by the microkernel. A task has its SOM See System Object Model. own stack and set of registers and it may share the same address space with other

GL-11 Draft. Confidential.  Apple Computer, Inc. 10/17/95 GLOSSARY

tasks. A task executes in either user mode thread Within a task, a sequence of or supervisor mode. In Copland, System 7 instructions and the processor context to tasks such as Time Manager tasks and execute it, including a register set, a deferred tasks are invisible to the program counter, and a stack. In Copland, microkernel. See also cooperative task, all threads are cooperatively scheduled by preemptive task. the Thread Manager. task definition A definition of how a time slice A defined interval of time particular kind of human interface task is to during which a task is allowed to execute. be performed. Combined with information title bar icon An icon in a document about the parameters for a specific task, window’s title bar that the user can drag to such as filenames or other details and a a new volume to copy the document to that condition, a task definition can be used by volume. an assistant or directly by a user to create one or more tasks. See also task. transport independence A property of a communications architecture that makes the task level The execution environment in set and sequence of functions called by an which all tasks run. Most microkernel, OS, application independent of the underlying and Toolbox services are available at task network protocols used to transmit or level. Task level software can access virtual receive data. The set of functions called and memory. the sequence of calls depends solely on the task switch The act of suspending one nature of the communication, not on the task’s execution and resuming a different protocol or protocol family used. task’s execution. In a task switch, the trusted software Code that executes in microkernel saves the processor state for the supervisor mode and has access to the suspended task and restores the processor microkernel’s protected memory space. See state of the task resuming execution. The privileged software. microkernel performs a task switch based on the priority of tasks that are eligible to universe The file system object that execute and its time-slicing mechanism. See contains all the volumes mounted on a also priority, time slice. given computer system. The universe can also include file system properties, files, and text object A private data structure that folders. contains information about both text content and text encoding and that takes user mode A state of operation for the the place of both Pascal and C strings. PowerPC processor that allows software, typically application software, to execute in theme A coordinated set of human an environment that protects certain critical interface designs that determine the resources, such as portions of memory and appearance of human interface elements on certain processor registers. Compare a systemwide basis. supervisor mode.

GL-12 Draft. Confidential.  Apple Computer, Inc. 10/17/95 GLOSSARY

user-mode software See nonprivileged software. VBL See vertical retrace interrupt. vertical blanking interrupt (VBL) See vertical retrace interrupt. vertical retrace interrupt An interrupt generated by the video circuitry each time the electron beam of a monitor’s display tube returns from the lower-right corner of the screen to the upper-left corner. One of several separate custom user environments for a single computer. zoom box A box to the left of the collapse box in a window’s title bar that the user can click to alternate between two different window sizes. Clicking the zoom box once causes the window to expand so it fills the screen of the monitor on which it is displayed. Clicking the zoom box a second time restores the window to its previous size and location. See also collapse box.

GL-13 Draft. Confidential.  Apple Computer, Inc. 10/17/95