Overview
Overview “Carbonized” application Adobe ImageReady v.7.0 running directly on Mac OS X version 10.2The Carbon APIs are published and accessed in the form of C header files and dynamically linkable libraries. In Mac OS X, much functionality is contained in ApplicationServices.framework. In Classic Mac OS, most functions are in a single library called CarbonLib. These different implementations of the APIs are interchangeable from the perspective of the executable. This permits a program that conforms to the Carbon specification to run natively on both operating systems. However, if an application uses a single function not in Carbon, compatibility with Mac OS X requires the Classic environment.
The Carbon APIs were designed to include as many of the older Toolbox APIs as possible, to permit easy porting of most legacy code to Mac OS X. Such porting was known as Carbonization. Carbon also added new functionality and new abstractions. Previously, many data structures of the OS were exposed and manipulated directly by the program. In Carbon, most such structures became fully opaque, and many new APIs were added to access them. This encouraged cleaner and less error-prone code, and made it easier for Apple to modify the operating system. Carbon removed some functions that were specifically attached to the older Mac OS, and removed some obsolete technologies altogether. Backward compatibility remained a focus as long as Mac OS 9 was developed, as later updates such as 9.2.2 were largely to improve support for newer software. However, little Carbon software today remains compatible with Mac OS 9, as the interface has continued to evolve. Carbon was not intended to guarantee backward compatibility. If a programmer desires compatibility with Mac OS 9.1, they must test and debug it with Mac OS 9.1 specifically. Between Mac OS 8.6 and Mac OS 9.2.2, CarbonLib gradually evolved from an adaptation of the QuickTime for Windows user interface API into the basis for much of the later Classic Mac OS development.
Carbon is sometimes seen as a transitional or legacy technology. This is incorrect, and it is misleading to describe it as a technology per se. Carbon is a set of application-level Mac OS X APIs for the C programming language. They are the most efficient alternative when the underlying operating system functionality is also implemented in C. They are also the most versatile, accessible from C, C++, Pascal, Ada, or any other language with suitable interface headers. A higher level approach may be taken with Carbon by using an application framework built on it, for example MacApp, Metrowerks PowerPlant or MacZoop. Many parts of the Cocoa API likewise implement Carbon for Objective-C. Also, many Carbon APIs provide C language access to functionality implemented in Objective-C. In general, it is inefficient for a programmer to be overly concerned with the underlying operating system implementation.
At WWDC 2007, Apple revealed that it will not be possible to compile Carbon apps as 64-bit code for Leopard, contrary to previous statements.Some lower-level parts of Carbon, such as the File Manager, are expected to be available in 64 bit.
Subscribe to:
Post Comments (Atom)

No comments:
Post a Comment