by Larry Peng
Trip Report for Apple Worldwide Developers Conference;
Click here to open
the PDF version of this page.
(drag the above link to your desktop to save it)
The keynote began with a coffin rising from the stage. Steve Jobs walked up to the coffin, opened it and pulled out a large version of the Mac OS 9 Retail box. Steve then proceeded to read a eulogy to Mac OS 9.
Mac OS 9......1998-2002.....Rest in Peace
From a development standpoint, Mac OS 9 is officially dead within Apple. Steve asked that developers adopt the same stance. Microsoft was mentioned as one 3rd party vendor which has ceased OS 9 development. Microsoft announced several weeks ago that all further new Macintosh development would be for OS X only.
Steve said there are 1 million active OS X users today, and that number is expected to increase to 5 million by the end of the calendar year. At this time last year, there were about 600 native apps for OS X. Today, there are more than 3000. Steve thanked developers for their committment over the last year.
Steve then went on to introduce the primary topic of WWDC 2002: the next major update to OS X which is codenamed Jaguar. No version number was given. Jaguar is scheduled for a late summer 2002 release. There is likely to be one more dot release for the current 10.1.x builds of OS X.
Phil Schiller (Senior Vice-President for Worldwide Marketing) came onstage to talk about Jaguar.
One of the focus points of Jaguar was not only to improve things for current Mac users, but to make improvements attractive to users who are coming to the Mac for the first time (e.g. Windows users and other "Unix" users).
Features which will appeal to the Unix folks are:
- synching up the FreeBSD layer to FreeBSD 4.4 (versus mostly FreeBSD 3.2 today)
- GCC 3.1 compiler versus GCC 2.95.x today.
- support of IPv6 and IPSec
- support CUPS (Common Unix Printing System)
- LDAP 3 (server and client) via Apple's Open Directory architecture
- built-in Kerberos
For Windows users:
- SMB browsing and sharing
- built in VPN (PPTP) security
- Active Directory client (login)
- improved support for Exchange servers.
For the education market:
- workgroup management
- simple Finder (analogous to that implemented in OS 9)
- Network Install and NetBoot of OS X
- return of Universal Access functionality
- return of Printer sharing functionality
Avie Tevanian (Senior Vice-President for Software Engineering) then took the stage to talk about some software development issues.
Tevanian started by discussing some issues with compilers and the build system. He prefaced things by confining his remarks to C-language based compilers. He noted that there are 3 broad categories of developers using C-languages: Cocoa, the Unix command line, and Carbon.
With the new GCC 3.1 compiler developers get ANSI C++ compliance, Project Builder support, and significant improvements in code generation and compile time. Tevanian acknowledged that for Carbon developers in particular, compile time in the current 10.1 needs improvement. While this is not a user issue, it is important to developers. Cocoa and Unix command-line developers will also benefit, but the sluggishness in compile time is not as bad.
Tevanian then touched on what things he looks for in a great OS X application. He noted that he tries to apply these things internally to Apple. Applications brought to him are inspected using tools like TOP (and other Apple performance monitoring tools) to take a look at what applications are doing.
Tevanian mentioned a few things that developers should do to make great OS X apps:
- ditch CFM and go native Mach-O. CFM (Code Fragment Manager) is for compatibility with OS 9 apps, but to get full advantage and availability of all OS X API's available CFM is not the way to go.
- stop using legacy API's
- let go of QuickDraw and go to CoreGraphics
- let go of OpenTransport, and go to sockets
- embrace new technologies
- use the filesystem carefully since OS X is a multi-user system, versus the single user model of OS 9.
- use the Performance Tools that Apple provides to tune your apps.
Steve Jobs then returned to the stage to highlight 10 new features of Jaguar.
1) Improved Finder
Some improvements are quite welcome, and others are dependent on user tastes. The spring-loaded folder of the OS 9 Finder is returning to OS X. An integrated search engine is part of the Finder. The Finder is now multi-threaded. Automatic thumbnails are now generated for most data types. The Finder is now Services aware. Services are a means of letting applications utilize each other's capabilities, and comes from NeXTStep/OpenStep.
2) Sherlock III
Sherlock was originally introduced as the upgrade to the "Find File" function. With Sherlock II, the notion of Internet searching and the first steps towards Internet Services was introduced (e.g., using the Internet Search engines like Lycos, Excite, etc). With Sherlock III, the move to Internet Services will be even more pronounced. The demos looked analogous to some of the capabilities provided by the OS X application called "Watson" by Karelia Software.
3) QuickTime 6
Now has MPEG-4 support, MPEG-2 playback, supports Dolby AAC audio encoding. Instant-on streaming (no buffering delays) and QuickTime broadcasting.
Some of these capabilities are part of the open source QuickTime/Darwin Streaming Server 4 which Apple released February 12, 2002 at the QuickTime Live Conference.
4) Universal Access
Conceptually this is the similar to Universal Access in OS 9 but updated for OS X. Examples include zooming, but now smooth without the bitmap jaggies. Screen reader via speech output. Full keyboard access and visual notification. And most importantly to developers is that the API's are provided.
5) Quartz Extreme
At present, with 10.1.x, simultaneous video acceleration for all graphics layers is not present. OpenGL is certainly accelerated, but much of Quartz is handled by the CPU.
Quartz Extreme takes the Quartz Compositor's capabilities for compositing, transparency, blending, shadows, etc., and hardware accelerates them via OpenGL. Steve said that minimum hardware needed is AGP 2X graphics and 32 MB video RAM. Thus video cards based on Rage 128 and earlier will not work. It is not clear at this time whether machines without minimum hardware will have Quartz Extreme try to run at reduced efficiency, or just turned off.
In essence the unified acceleration of 2D, 3D, and video data is accomplished. Apple believes that it is at least 2 years ahead of the industry right now. Demos were run showing simultaneous DVD decoding, various rotating 3D objects, and manipulating video scenes in a Maya-like fashion with full transparency for each application. The screen appeared as if multiple applications were transparently layered on top of each other. No screen pixel appeared to be exclusively "owned" by a particular application.
Some readers may wonder what the big deal is since "we already have" graphics acceleration. Below are excerpts of a post by Ken Dyke (then of the Apple graphics software engineering team) outlining the goals of Quartz. I presume that Ken is still with Apple. This post comes from the OmniGroup MacOSX-Talk list during the OS X Public Beta (October 8, 2000).
2D is used for screen to screen opaque blits and for accelerating classic applications which (currently) render straight to the screen. 3D hasn't entered the picture yet for a number of reasons, most of which have to do with image quality on current 3D hardware. Ideally we'd want some hypothetical piece of 3D hardware that could texture from system (AGP) memory, would support large non power of two textures and did blending operations in some kind of internal high precision format before spitting stuff back out to the framebuffer. Unfortunately we're not there yet, so nearly everything has to be done with the CPU.
....pretty much every other rendering system out there is using a 1980's style rendering engine that's based on absolute pixel ownership on the screen (any given pixel is determined by the contents of exactly one window), and are fundamentally based on simple boolean operations. The upshot of this is that it is fairly simple to allow apps to render straight to the screen with appropriate locking and clipping. At the time these rendering models were developed there weren't any consumer level graphics cards that really accelerated them. Certainly it was some time before QuickDraw was ever accelerated, and the same holds true for GDI and even X11. ...GDI hasn't really changed in years and it's simplistic enough that pretty much every piece of consumer graphics hardware can accelerate about 90% of what it needs (the same is essentially true of X11 and QuickDraw).
With Quartz the bar has been raised to a *much* higher level. Everything is anti-aliased. The notion that you can render straight into the framebuffer is essentially gone because of translucency. Unfortunately for now there isn't any graphics hardware that is completely up to the task of accelerating Quartz. However, I believe that it will come... it may just take a while.
So it appears that the hardware needed to do unified acceleration of OS X graphics has arrived with recent ATI Radeon and NVidia GeForce cards.
Inkwell provides handwriting recognition for OS X applications via API's that are integrated with the OS X text system. Steve even joked that "we had to get some return on all the money invested with handwriting recognition on the Newton!"
Rendevous is Apple's name for Apple's implementation of work done by the Zero Configuration Working Group (www.zeroconf.org). Similar to the term Firewire being Apple's trademarked name for IEEE-1394.
It provides for dynamic discovery of IP's with zero configuration by users. It is for both computers, devices, and other IP-based services. Obvious example uses cited was for file and USB printer sharing. Developer API's are also provided.
The Mail.app is undergoing improvement and enhancements:
--intelligent spam filtering
--automerging of mailboxes
--cross mailbox searching (versus single mailbox searching today)
--highlighting of messages
--Quicktime playback in-line
--SSL and Kerberos support
9) Address Book
This is NOT the Address Book application that already exists in OS X 10.1 and earlier. This refers to a system-wide database for contact information accessible (searchable and editable) by all OS X apps. Developer API's are provided. Applications like the Address Book can search and edit the Address Book database.
One example of an OS X application (which will be part of Jaguar) that utilizes the Address Book is called iChat. The iChat application is:
--supported at the OS-level
--AIM blessed and compatible. No subscription required
--integrated with the Jaguar Mail.app.
--mac.com names are OK.
Steve mentioned that the incorporation of the Metal look (similar to that of Sherlock II and the QuickTime Player) has been added to the developer toolkit for all OS X apps. Previously only Apple apps were able to access the Metal look.
OS X Jaguar Server
Steve then mentioned some things about the server version of Jaguar.
--provides for headless operation
--Network installation and NetBoot of OS X clients
--Built-in LDAP 3
--Java VM optimized for server apps.
--disk, print, and mail quotas implemented.
--additional programming/scripting languages such as Python and Ruby.
In concert with the server announcement, Steve told developers to stayed tuned for announcements on May 14th, 2002 in which Apple would introduce a rack-mount server. Details to wait until May 14th.
Finally, much to the delight of the audience, Apple provided developer preview builds of both Jaguar client and servers, and the Jaguar developer tools. It was emphasized that these were preview quality right now, so there are known problems and some Jaguar items which have not been fully implemented yet. Steve reiterated that they were considered confidential.
OTHER PUBLIC NOTES:
On May 6, 2002, Apple announced that it had incorporated CUPS (Common Unix Printing System) into Darwin / Mac OS X as an open source printing solution.
In addition Apple released Open Directory as open source software, with source code for both directory client access and directory servers. Components of Open Directory (e.g. Directory Services and plugins for NetInfo and LDAPv2) made their debut with Mac OS X Server v10.x.
Much of the following is from Apple's Darwin Open Source website. Please see the following link for additional links to documentation and source code.
Apple Open Directory
Apple's Open Directory Technology includes source code for both directory client access and directory servers. Open Directory technologies form the foundation of how Mac OS X accesses all authoritative configuration information (users, groups, mounts, managed desktop data, etc.). Mac OS X obtains this information via abstraction APIs, enabling use of virtually any directory system.
Open Directory Access
Directory Services is a core part of the Open Directory technology. Directory Services provides a client read/write/authentication API abstraction for accessing directory-based data. Directory Services consists of an access API, and API daemon, and a plug-in API. The source code available at this site includes the following components:
- DirectoryService framework
- DirectoryService daemon
- DirectoryService plug-ins
- NetInfo (read/write)
- LDAPv2 (read-only)
- Search Policy (read-only)
An additional element of Open Directory is the existing Darwin component of lookupd that provides a read-only abstraction for accessing BSD configuration information. Both lookupd and Directory Services work in conjunction with each other to provide authoritative and consistent configuration information to all processes running on Mac OS X regardless of which Directory API they are using.
Open Directory Server
Apple's Open Directory Server is NetInfo. NetInfo is included as part of Mac OS X Desktop and Server, and is also included with Darwin. NetInfo provides a robust and scalable platform for serving directory based configuration information for both stand-alone and networked CPUs. NetInfo consists of:
- Access API
- Server process
- Command line tools for displaying and modifying the contents of existing NetInfo systems.
Any questions, concerns, etc., let me know. Thanks.
Lawrence Livermore National Lab