The evolution of the Mac OS into Mac OS X requires the participation of application developers. By slightly modifying your current code to use new programming interfaces and techniques, your applications can run smoothly on a radically different operating system, one with features such as protected memory and preemptive multitasking. Core Foundation is as much a part of this transition as Carbon is.
At a general level, Core Foundation
Core Foundation is a library with a set of programming interfaces conceptually derived from the Foundation framework of the Cocoa object layer but implemented in the C language. It offers developers many fundamental software services on several platforms:
As Figure 1 illustrates, Core Foundation on Mac OS 8 (or Mac OS 9) is a library that, when used together with Carbon, enables you to develop applications that can run on Mac OS 8, Mac OS 9, and Mac OS X.
On Mac OS X, you can think of Core Foundation as part of the substrata of system software called Core Services. This layer is immediately above the core operating system and below the services, frameworks and libraries used in application development. Figure 2 depicts these relationships.
The information presented in this document is primarily intended for Carbon developers. The remainder of this overview chapter describes the benefits of Core Foundation in detail, demystifies some of its key concepts, and offers some tips on using it. It is the initial chapter; subsequent chapters provide conceptual, task, and reference information on specific Core Foundation services; see Table 1 for summaries of these services.