Mac OS X Primer
Today is the day. The next generation operating system for the Mac platform and, as the cliche goes, the future has arrived. A new path is set for our favorite computing platform and we're off to a brave new world.
To help set the path, we're offering a "primer" for Mac OS X. If you've been following coverage of the operating system and know its fundamentals, you can skip this because there's probably nothing you haven't read or seen before. However, if you're unfamiliar with OS X or are a newcomer to the Mac, read on for an overview of what's in store.
No, scratch that. Not in store, but in stores -- today.
Mac OS X includes components of the traditional Mac OS, as well as OpenStep technologies that Apple obtained in the purchase of the NeXT company. In other words, Apple has worked to meld the best parts of the traditional Mac operating system with UNIX underpinnings and top it off with an eye-popping, friendly graphical user interface.
To facilitate the transition to a whole new operating system (cause that's really what it is), Apple will support three critical applications environments: Classic, Carbon, and Cocoa.
Classic lets you run all your existing Macintosh applications "as-is." Your old apps will run like they do on Mac OS 9, bit won't take advantage of Mac OS X's state-of-the-art plumbing and the Aqua interface components.
Carbon applications, on the other hand, are optimized to run on Mac OS X. They'll get the use of the modern carbon applications programming interface, all the features of the Darwin core OS (like protected memory for crash-resistant computing and pre-emptive multitasking for a more responsive system).
Cocoa is an advanced object-oriented programming environment. According to Apple, Cocoa gives developers a whole new toolbox for building the best next-generation applications.
With Mac OS X, Apple has two design goals for the new user interface: 1) create an operating system that's appealing to look at, and 2) make it a pleasure to use. Enter the interface known as "Aqua."
Why Aqua (which means water in many languages, because the operating system flows)? Because the operating system is fluid. Filled with such eye candy as pulsating buttons and windows that flow rather than snap to attention, Aqua is designed to look so good you'll want to lick it, as Apple CEO Steve Jobs has said.
Aqua windows sport gel-like, proportional scroll thumbs, colored jellybeans (or perhaps they're gems) for title-bar widgets, and bright "traffic light" buttons. Yes, the traffic light analogy is deliberate. A red button stops (closes) a window. A green button tells it to go (zoom). And a yellow button slows (shrinks or minimizes) a window.
Transparency is also used extensively in the Aqua environment. Traffic widgets and windows cast transparent shadows on windows behind them. If you unselect pull-down menus, they fade away rather than immediately disappearing.
Apple obviously wants to appeal to those who love the eye-popping designs of the iMac, iBook, as well as the more "sophisticated" G3/G4 line. In fact, Apple itself says one of its goals for the Mac OS X graphical user interface is to make it "more appealing than any Mac you've ever seen" and which would "make what you get with other operating systems look like paleolithic tools."
One of the most noticeable differences is in the icons. For 15 years, computer OSes have used 32x32 pixel icons, which were designed for low-resolution displays.
But since display sizes and resolution levels have "dramatically increased," Apple says Aqua sheds these constraints with large -- up to 128 x 128 pixels -- richly-colored, photo-quality icons. The larger size makes the icons more attractive, more legible, offers a broader canvas for more photo-quality detail, and provides better document previews in the Finder, according to Apple. However, traditional size icons can still be used, if you prefer the Platinum OS appearance.
Also, Apple says Mac OS X has the option of reducing multiple window clutter common to operating systems by focusing most of its applications in a single window. The new Finder, Mail (OS X's system-level e-mail application), and the system preferences panel live together harmoniously in a single window.
The next generation operating system will also purportedly assist you in managing your screen space. How? By improving screen space management with a new feature called Single Window Mode. When you're in Single Window Mode your Mac makes the current window the active window and automatically hides all the other open windows. When you want to work on another document or application, your Mac automatically removes the currently active document and makes the desired document the only active document on the screen. However, many long time users of the Mac find Single Window Mode a less efficient way to work so it can be disabled to let you pack multiple windows on your desktop.
What's more, Mac OS X introduces new panels that attach themselves to documents and "make their relationship clear," according to Apple. You can even have multiple interleaved documents, each with its own print or save panel open simultaneously. Interestingly, you can leave dialog panels open (instead of demanding immediate condition, as the Mac OS currently does) and go to other chores.
The new panels slide out from a window's title, and have a translucent quality that makes them appear as if they're floating above the document. And the Open dialog boxes of Mac OS X will display a multi-paned directory tree. Though this feature wasn't shown during the Macworld Expo demo, sources say this will be consistent with the file viewer interface shown in one of the optional Finder views.
Despite the changes Apple says the core locations and behaviors of things like windows, scroll bars, and icons remain "largely unchanged and comfortable" to Mac users.
The Apple Menu is still around (well, sorta) and on the left hand side of the screen, as always. It has been overhauled, however.
"When people think of the Mac OS, they think of the Finder as the place where you go to do everything," Jobs said. "Everything has been done through the Finder. But we see the Finder as just another app. There may be multiple Finders some day. Some new users may never need to use the Finder. So we've redesigned the Apple Menu with this in Find."
You can now go to Apple Menu to accomplish tasks such as Sleep, Restart, and Shutdown that you now have to go to the Finder to handle. The Location Finder is back and accessible through the OS X Apple Menu. You can also log-out, force quit, and access preferences for the System and Dock from the menu.
One of the most controversial features of Mac OS X is the Dock, a "box" that sits at the bottom of your screen. The Dock holds folders, applications, documents, storage devices, minimized windows, QuickTime movies, digital images, URLs, and other stuff you want instant access to.
Apple says the Dock exemplifies the principal of "a place for everything and everything in its place." It displays an icon for each item you store there. Besides looking spiffy, Apple says the icons will provide useful feedback about the applications and documents they represent. For example, the icon for Mail tells you if you have any new messages waiting to be read. If you store an image, the Dock shows it in preview mode, so you can tell what it is without opening it. And because you can "minimize" running applications into the Dock, a quick look at the bottom of the screen tells you what applications you're currently running.
There's a small bar in the Dock window that separates applications (they're on the left of the bar and documents are on the right). You can drag items out of the Dock to the desktop to remove them. Once you do, they disappear in a "poof" of onscreen smoke. You can also now drag URLs into the Dock and access the Web sites from it.
In a Launcher-like feature, switching between tasks involves just clicking the application or document icon you want to start using, and it becomes the new active task. You can choose to "minimize" an open window and have it become an icon in the Dock. Click a docked icon and it "maximizes" if it's a window or opens if it's an application or document.
As you continue to add items to the Dock, it expands until it reaches the edge of your screen. Once it hits the border, the Dock icons (which are dynamically scalable) shrink proportionately to accommodate additional items. To make the smaller icons more legible, Apple has included a new feature called magnification. Pass your mouse over the icons, and they magnify to a maximum resolution that you can preset, up to 128x128.
If you move your mouse over an icon in the Dock, its name "floats" above into view. In fact, the Quartz graphics engine provides an eye-popping "genie" effect in which windows "flow" to and from the Dock if minimized or maximized. Both minimum, normal, rollover and maximum icon sizes will be adjustable.
Mac OS X will have a Finder, but it's a new Finder which will, in Apple's words, give you "fast, easy access to the things you do most with your computer--finding files, running applications, and communicating with people." The first thing that will jump out at you about the new Finder is its navigation interface, as well as the fact that it's totally contained within a single window.
You jump to the most used sections of your Mac via large buttons. For instance, if you click on the Home button you're transported to your Home directory. This directory can be located on your hard disk drive or on a network (the File Viewer knows the location of said directory). The aforementioned buttons offer quick access to applications, documents, favorites, and--new with Mac OS X--the people with whom you often communicate.
Apple says the new Finder is better than the traditional one since files and nestled folders multiple like rabbits, it ends up being difficult tracking where you are and where you want to go (as opposed to "where do you want to go today?") in the classic Mac operating system.
Still, Mac OS X now also lets you "spawn" windows in the method of the classic Finder if you like. "Most people loved the new Finder, but some missed the old Finder," Jobs said. "Now you can make litter the screen with lots of windows if you want."
Sporting the Aqua interface style, the OS X Finder's icons are continuously scalable, just like icons in the Dock. And the Finder browser has a "back" button and an integrated Search field, two new goodies.
The Finder of Mac OS X has a File Viewer that offers three different options for viewing your file system. Apple has retained the traditional icon and list views from Mac OS 9, while, in their words, improving their behavior to reduce screen clutter and provide better navigation feedback. Now double-clicking on items in the icon or list views no longer brings up separate windows. Instead, the view on the new folder replaces the old folder view within the single File Viewer window. Apple says that by focusing the file system into a single window view, Mac OS X makes smarter use of screen space and eliminates the problem of proliferating windows.
Besides these two views, Apple has added a new column view designed to make it easier to navigate deep file systems and see what's in them at a glance. It uses columns to list the contents of each folder. Single clicking on a folder creates a new column view to the right of the previous folder view containing the contents of the new folder. Each additional folder spawns a new column to the right of the previously current folder. Apple says this makes it easy to move through deep file systems or networks and provides an easy location reference point. The column view maintains a history of your navigational forays in short-term memory, so you can always find your way back.
Apple says the File Viewer not only provides a view into your hard disk, it's now the only interface you need to access all resources connected to your compute--everything from externally connected storage devices like FireWire and USB hard drives, to CD-ROMs, digital cameras even the Internet. The company has also made the network an extension of the file system by incorporating it into the File Viewer. By including the network into the file viewer, connecting to AppleShare volumes or other Network File Systems is as simple and as easy to navigate as your local drive, claims Apple.
But there are still several very traditional features maintained. Disks can be dragged onto the desktop. Application names now appear in menus so you can see what application you're running.
OS X's toolbars are customizable through a range of options. You can add a status bar if you prefer to show things like the number of items, available space on a disk, etc. And, of course, you can hide the toolbar if you prefer.
Popup menus are still around, in a way. You can now click and hold down items on the Dock and get popup menus. Plus, you can drag and drop items from several folders deep in these product menus.
With Mac OS X, Apple is combining the Quartz, QuickTime, and OpenGL graphics technologies in order to, in the company's humble words, "take the Mac's graphics capabilities beyond anything you've ever seen on a desktop operating system."
The graphics engine of Mac OS X is known as Quartz and is based on Adobe's Internet- Portable Document Format (PDF), a superset of PostScript. PDF has several advantages over Postscript, including better color management, internal compression, font independence, and interactivity. And, hey, PDF is also is a free and open standard, which saves Apple from paying Postscript licensing fees.
Apple says that since this capability is available to all Mac OS X applications, Mac developers have a whole new palette of creative tools. Of course, much of this functionality is available to current Mac OS users through vector graphics applications. But Quartz moves the functionality into the OS itself.
Using PDF, the new Quartz 2D graphics system delivers on-the-fly rendering, anti-aliasing and compositing of PostScript graphics with, promises Apple, pristine quality. Quartz should make onscreen graphic elements sharper than ever, even when their size is increased.
You can see the power of Quartz in the Mac OS X Aqua interface itself. Using Quartz's compositing engine, Aqua creates translucent controls and menus, and gives the system visual depth with drop shadows around the edges of windows. And Apple has included built-in support for PDF, which means you can embed and manipulate PDF data with any Mac OS X application -- and even "Save to PDF." So you can easily create Quartz-enhanced, graphics-rich documents that are easily shared.
Apple says that since this capability is available to all Mac OS X applications, Mac developers have a whole new palette of creative tools. Of course, much of this functionality is available to current Mac OS users through vector graphics applications. But Quartz moves the functionality into the OS itself.
In this case, a picture -- or rather a QuickTime movie -- is worth a thousand words. Go to Apple's Web site to see the Quartz PDF Generator in action. Watch as the vector images are rendered fully antialiased and in real time.
Apple has also integrated OpenGL -- the 3D technology used by games like Quake 3 Arena from id Software, Madden 2000 from Electronic Arts and Star Wars Racer from LucasArts Learning -- into Mac OS X. The company claims that X's state-of-the-art plumbing in Darwin actually ratchets up OpenGL's performance to a "whole new level on Mac OS X, making it the ultimate PC platform for 3D games and graphics."
Naturally, Mac OS X includes QuickTime technology -- version 5, in fact -- the Internet standard for multimedia and the engine that powers iMovie and Final Cut Pro, Apple's cutting edge digital video editing software. QuickTime lets you watch live streaming online events, play your favorite MP3 audio tracks, or create your own home videos. Mac OS X applications can embed any kind of audio, video, or image data that QuickTime can handle -- pretty much the whole spectrum of anything worth seeing, watching or hearing on the Internet -- giving you the tools to create spellbinding documents.
The core of Mac OS X is dubbed Darwin, a "super modern" kernel that offers, among other things, protected memory, preemptive multitasking, a Mach microkernel, and lots of Unix power features. (A kernel is a program that manages all or most of the operating system services necessary to control a computer, such as task and file management, device input and output, and memory allocation. A microkernel is the program that manages a small, but vital, subset of the operating services, such as memory and synchronization.)
Darwin has been "open sourced" by Apple. This means that Apple has posted the underlying programming commands of Darwin, called source code, on its Web site. If they agree to Apple's license agreement, developers can download the source code from the Darwin Web site, change it, and include it in their own products without paying royalties or license fees.
However, developers must make their source-code modifications publicly available, and Apple can incorporate any changes into future versions of Mac OS X. By working with the open source community, Apple hopes to use licensee's tweaks and suggestions to enhance the feature set, performance and quality of X products. By the way, Apple was the first provider of a mainstream operating system to release its source code to the public and base its system software strategy on open source technologies.
"The Open Source movement is revolutionizing the way operating systems evolve, and Apple is leading the industry by becoming the first major OS provider to make it's core operating system available to Open Source developers," Avie Tevanian, Apple's senior vice president of software engineering, has said. "We look forward to working with the Open Source community to enhance the feature set, performance and quality of our Mac OS X products."
The first release of Darwin consists of the foundation layer of Mac OS X, including enhancements to the Mach 2.5 microkernel and BSD 4.4 operating system, as well as core Apple technologies like AppleTalk, HFS+ file system and the NetInfo distributed database.
The system's kernel, which does the heavy lifting to support all those rich applications, is based on Mach 3.0 from Carnegie-Mellon University and FreeBSD 3.2 (derived from the University of California at Berkeley's BSD 4.4-Lite).
According to Apple, Darwin incorporates the time-tested BSD networking stack, the basis of the vast majority of TCP/IP implementations on the Internet today. In partnership with the Darwin open source community, the company says it's extended it to also support the next-generation Internet Protocol IPv6. Apple says Darwin provides built-in support for PPP and IPsec, "allowing users to securely access remote networks," as well as offering full support for AppleTalk "to ensure smooth interoperability with existing Macintosh networks."
X will mark the spot when it comes to preemptive multitasking, the ability of applications to interrupt each other, do some processing, and surrender control to other processes when necessary.
The current Mac OS can (sorta) do multitasking, but not very effectively, using what is called "cooperative multitasking." Under this system, apps require pre-defined size information in order to tell the system what resources they require. Programs must explicitly tell the Mac OS when they can be interrupted.
On the other hand, preemptive multitasking forces applications to share processing time. It's a historical feature of intrinsically multitasking operating systems such as Unix. And, to oversimplify matters, a Unix engine powers Mac OS X. In Apple's words, preemptive multitasking "works like an air traffic controller, watching over your computer's processor -- prioritizing tasks, making sure activity levels are at maximum, and ensuring that every task gets the resources it needs."
In other words, it will make your daily use of your Mac easier. You'll be able to search the Web while transforming a Photoshop file while checking your e-mail. Sure your Mac can (sort of) do this now, but Apple says it will do it better under Mac OS X. It will let your system handle several different tasks at once, giving priority to your primary application, but still crunching away at other jobs in the background. In Apple's words, preemptive multitasking "works like an air traffic controller, watching over your computer's processor -- prioritizing tasks, making sure activity levels are at maximum, and ensuring that every task gets the resources it needs."
The current Mac OS supports multitasking, but does what is called "cooperative multitasking." Under this system, apps require pre-defined size information in order to tell the system what resources they require. Programs must explicitly tell the Mac OS when they can be interrupted. Preemptive multitasking forces applications to share processing time, and is a historical feature of intrinsically multitasking operating systems such as Unix.
Darwin -- the subset of Mac OS X that consists of the Unix part of Mac OS X -- makes preemptive multitasking possible. Darwin sets processor priorities depending on the importance of the task. When something more important comes along, the controller prioritizes it over other tasks in the queue, according to Apple. Also, preemptive multitasking is another fringe benefit of the use of the Mach in Mac OS X. Mach is the OX kernel, the lowest level component of the OS that controls access to memory and hardware devices; Mach will perform all task scheduling.
Preemptive multitasking also makes efficient use of your computer by keeping the processor as busy as possible. For example, because the CPU (central processing unit) executes instructions faster than I/O devices transfer data, the microkernel (Mach) will suspend the execution of an application that's waiting for data to come off a disk. The operating system then schedules other operations for execution, keeping the CPU busy even while the program is waiting for data from the disk.
Another snazzy, under-the-hood feature of Mac OS X is multi-threading. This one's a bit complicated so bear with me. A thread is a path of execution, a subprocess that runs within the context of a "parent" process, sharing access to the data and other resources of their parent. For example, one thread in a program might handle user interactions, another might tackle calculations, and a third thread might deal with input-output operations.
With Mac OS X, developers can divide operations so that they're performed by more than one process, by more than one task in a single process, or by more than one cooperatively scheduled thread within a single task. Threads are usually started to manage different input and output events. One thread can be waiting for mouse clicks, a second monitors keyboard input, and a third performs screen updates.
While this probably sounds like gobbley gook to non-programmers, for we end users the result should be OS X native applications that run more efficiently. Since they share access to the resources of the parent process, they require fewer resources themselves. But if you want more techno-speak on the matter, read on.
You can have multiple paths of execution within a single task, developers can use cooperatively scheduled threads that are invoked from tasks. Such threads can be slated to execute only when the task that created them is running. Such threads are defined as cooperative because they turn over control to one another at programmatically defined times. This prevents one cooperatively scheduled thread from being preempted by another thread within the same task.
The current Mac OS uses preemptively scheduled tasks. The microkernel -- a teeny part of the operating services that are necessary to control a computer -- can butt in on these tasks at any time and cause them to execute in any order. But cooperatively scheduled threads can't interrupt each other. They turn over control to each other at developer-defined points.
Protected and virtual memory
One of the best features of Mac OS X will be protected memory. Protected memory means that the operating system won't let applications grab a hunk of memory that belongs to another app -- or to the operating system itself. By implementing this, Mac OS X will make your Mac more crash resistant.
In other words, Mac OS X will have a modern, robust protected memory architecture that allocates a unique address space for each application or process running on the computer. When apps and processes are isolated in their own memory space, they can't interfere with each other if one goes bad. And when one program starts acting naughty, Mac OS X will simply shut it down, close down its memory space, and let you continue working. You won't have to restart your computer.
When applications are isolated in their own memory space, they can't interfere with each other if one goes bad. And, perhaps best of all, you don't need to restart your computer. The computer simply shuts down the offending application and its memory space, letting you continue on your merry way without interruption.
"A reliable operating system should not only keep you operational, it should also protect your information from loss or corruption," Apple says about Mac OS X. "One of the ways an operating system ensures reliability is by protecting applications through a mechanism called protected memory (essentially walling off applications from each other). Darwin includes a modern, robust protected memory architecture that allocates a unique address space for each application or process running on the computer."
Along with the protected memory mechanism, Darwin provides a virtual memory (VM) manager to handle the protected memory space.
In the current Mac OS, the user selects whether to use virtual memory and how much to use through the Memory control panel. And the selections don't take place until you restart your Mac, at which time the OS allocates the user-specific amount of VM and its corresponding disk space. Launch applications and the operating system allocates fixed size memory partitions.
VM is always on in Mac OS X. You don't have to "turn it on" and, in fact, you can't turn it off. And it's dynamically allocated; in other words, you don't have to specify a fixed amount for it.
In theory, virtual memory is a good thing, because it enables programs to use more memory than is physically present on a machine by swapping out portions of memory to disk in order to reuse that memory for other processes. But so far, this has meant reduced system performance (you probably have applications that specifically tell you to disable virtual memory) since VM traditionally adds the overhead of reading and writing portions of memory to disk to the overall performance of your applications. The Mac virtual memory implementation has always been slow, but Apple says this will change with Mac OS X.
Apparently, in X, almost all of the system, except for vital areas such as the microkernel and the file system, can be "paged" to disk, leaving more physical memory available to application level software. Currently, the Mac OS doesn't allow its system heap (an area of memory reserved for data structures used by the OS in support of applications) to be "pageable." Instead, the system heap remains in physical memory.
Techspeak aside, if Apple delivers on its promises, as of Mac OS X, you'll no longer have to worry about how much memory an application like Photoshop needs to open large files. When an applications needs memory, the virtual memory manager automatically allocates precisely the amount of memory needed by the application. Cool, huh?
Extensions go bye-bye
Mac OS X has an advanced kernel known as Mach. The kernel is the pivotal component in the operating system that handles most of the interaction between the operating system and the hardware. The Mach kernel has been part of the open source community, undergoing continued development by computer scientists for several years.
One result of using the Mach kernel is the need to eliminate extensions at least when you're outside the Classic environment, which is designed to run current Mac applications. Extensions have historically been the way that Apple developers patched or extended the capabilities of the core Mac OS. In Apple's own words, "this is essentially the wrong thing to do with a kernel-based operating system such as Mac OS X, since the kernel supports all sets of higher-level APIs (the boxes again), each of which has different interfaces and capabilities."
Apple says it will have to leave some hooks in place to allow loadable sets of services, not just for backward compatibility. Functionally, end users like us probably won't see much of a difference, except that our Macs won't have to load rows of extensions when booting, according to Apple. In other words, it seems that OS X will replace traditional extensions with "faceless applications" that run invisibly. As they run, they'll modify the system in whatever way they are meant to do.
The way it will all work out apparently is that different apps and hardware devices will still be accompanied by small files that allow the OS to enable the hardware or software's functions, much like in the current Mac OS's extensions. But they'll be more specialized -- and probably more hidden.
Mac OS X supports POSIX file system semantics and NFS file sharing, as well as standard services like telnet and FTP, allowing easy operability with UNIX systems and applications.
In fact, the system's kernel based on Mach 3.0 from Carnegie-Mellon University and FreeBSD 3.2 (derived from the University of California at Berkeley's BSD 4.4-Lite. Apple also took the Apache Web server -- which runs over half the Web sites on the Internet -- and made it friendly enough to use on your desktop for personal file sharing, the company says.
Darwin incorporates the BSD networking stack, the basis of many TCP/IP implementations on the Internet today. Apple provides built-in support for PPP, allowing users to easily access remote networks. And they've also included full support for AppleTalk, to ensure smooth interoperability with existing Macintosh networks.
However, the good thing is that the complexities of Unix will be hidden from the average Mac OS X user. Apple is going to great lengths to hide the Unix underpinnings from the end user.
By default, most of the UNIX "services" that require configuration files will ship disabled. Many of them will not even be installed by default. Those that are enabled and user-configurable will have a configuration panel in the "Control Panel". Those that simply can be turned off or on with no configuration will have a radio button somewhere to do that.
The final release of OS X won't ship with a shell program, so getting to the command line will require some effort by users. Apple's intent, apparently, is to hide the "terminal" window, which is basically the window GUI (graphical user interface) for the UNIX command line.
In other words, unlike standard Unix config files that are plain text or shell scripts, OS X uses XML property lists; these files are structured data. This means that it was simple for Apple to write a GUI to manipulate the config files and include all sorts of goodies such as dependencies.
Carbon, Cocoa, and Java
With Apple pledging strong support for Java 2 in Mac OS X, when the next generation operating system arrives, it will have three principal application environments for developers: Carbon, Cocoa, and Java. Carbon
Carbon is an adaptation of the Mac OS 9 application programming interfaces (APIs) and libraries for Mac OS X. According to Apple, Carbon keeps 70% of the functions in current Mac OS APIs and dumps the 30% that are too outdated to be part of a modern operating system. To be more precise, Carbon keeps about 70% of the total functions and 95% of the functions used by typical applications. Carbon also includes additional APIs and services specifically developed for Mac OS X.
Programs written using the Carbon APIs can also be deployed on Mac OS 8 and 9, though they won't have the nifty new features of Mac OS X: protected memory, multithreading, preemptive multitasking, etc.
Mac OS X handles memory differently from previous Mac operating systems. Specifically, it offers protected memory (to prevent system wide crashes when one software program goes ka-blooey) and improved virtual memory. So Carbon APIs restrict or get rid of the use of things like zones, system memory, and temporary memory. There are lots more that could be said about the subject, but it would mostly be of interest to developers, who doubtless know more than I could tell them in this column.
Mac OS 9 (and lower) managers used for low-level access to hardware -- goodies like the ADB Manager, the Device Manager, and the Ethernet Driver -- aren't implemented in Mac OS X. Since there's no Mac OS ROM in Mac OS X, functions related to accessing resources in ROM aren't supported in Carbon.
Apple has developed new Carbon versions of the Print Manager and the Event Manager for X. The non-Carbon Print Manager is no longer supported in X. However, the old Event Manager is, though Apple strongly recommends using the Carbon Event Manager instead.
Finally, different Carbon technologies now take the place of earlier libraries. Out: AppleTalk Manager, PPC Toolbox, Standard File Package, QuickDraw 3D, and Help Manager. In: Open Transport, Apple Events, Navigation Services, OpenGL, and Help Viewer.
Cocoa is a collection of advanced, object-oriented APIs for developing applications written in Java and Objective-C. It's based on two object-oriented frameworks: Foundation and the Apple Kit. These frameworks offer both Java and Objective-C APIs (with most Java classes simply "bridging" to their Objective-C implementation).
That's pretty complicated sounding. Apple says that Cocoa is the most advanced object-oriented technology on the market today. It's just like WebObjects. You can write apps 10 times faster in Cocoa so if you're writing a new app, Apple recommends you go this route.
Cocoa is based on the OpenStep operating system technology of NeXT (the company that Steve Jobs formed after leaving Apple, but which Apple later purchased and ... well, it's a long story). Cocoa is an extension to the original OpenStep APIs that were present in OpenStep 4.x.
"Those APIs were based on the original NeXTSTEP APIs, but had many modifications that made most programs not just compile," says Scott Anguish, mastermind behind the must-visit Stepwise Web site. "Cocoa is a third generation set of APIs, although there was little changes required to go from OpenStep to Cocoa.
Cocoa was the second generation. Several changes were required from the first generation NeXTStep APIs. Developers can use Cocoa to write code in terms of objects that pass inheritance through a hierarchy of parent and child classes.
Say what? Yes, it's a bit complicated, but it boils down to this: developers using Cocoa can purportedly reuse up to 90% of their code for future work. And functions published in the operating system as a "service" can be accessed by other Cocoa applications.
By the way, Cocoa includes Java packages that let you develop a Cocoa application using Java as the development language. Apple says you can mix "within reason" the APIs from these packages and native Java APIs.
The Java environment is for the development and deployment of 100% Pure Java and mixed-API Java applications and applets. Apple says this environment will be implemented in conformance with the latest version of the Java Development Kit (JDK), including the Java virtual machine (VM).
This means that a Java app created with this environment is "portable." You can copy it to a complete different hardware platform and operating system. As long as that system includes a compatible version of the Java VM, the app should run on it just fine. And a Java applet should run in any Internet browser with the proper capabilities.
Apple says that Mac OS X will let you copy or cut almost any piece of data and paste it into an application executing in another environment. And it allows dragging of most Finder objects -- and their corresponding data -- between most environments.
And there's much, much more. Enough to fill a book, in fact (and don't worry, they're coming, including "Mac OS X for Dummies"). But this primer should give you a taste of the future.
And, hey, as of today, the future is here.