Mac OS X Technology Overview
Total Page:16
File Type:pdf, Size:1020Kb
Mac OS X Technology Overview 2006-06-28 Finder, Safari, Spotlight, Tiger, and Xserve Apple Inc. are trademarks of Apple Inc. © 2004, 2006 Apple Computer, Inc. Adobe, Acrobat, and PostScript are All rights reserved. trademarks or registered trademarks of Adobe Systems Incorporated in the U.S. No part of this publication may be and/or other countries. reproduced, stored in a retrieval system, or transmitted, in any form or by any means, Intel and Intel Core are registered mechanical, electronic, photocopying, trademarks of Intel Corportation or its recording, or otherwise, without prior subsidiaries in the United States and other written permission of Apple Inc., with the countries. following exceptions: Any person is hereby Java and all Java-based trademarks are authorized to store documentation on a trademarks or registered trademarks of Sun single computer for personal use only and Microsystems, Inc. in the U.S. and other to print copies of documentation for countries. personal use provided that the OpenGL is a registered trademark of Silicon documentation contains Apple’s copyright Graphics, Inc. notice. PowerPC and and the PowerPC logo are The Apple logo is a trademark of Apple Inc. trademarks of International Business Use of the “keyboard” Apple logo Machines Corporation, used under license (Option-Shift-K) for commercial purposes therefrom. without the prior written consent of Apple UNIX is a registered trademark of The Open may constitute trademark infringement and Group unfair competition in violation of federal and state laws. Simultaneously published in the United States and Canada. No licenses, express or implied, are granted with respect to any of the technology Even though Apple has reviewed this document, APPLE MAKES NO WARRANTY OR described in this document. Apple retains REPRESENTATION, EITHER EXPRESS OR all intellectual property rights associated IMPLIED, WITH RESPECT TO THIS DOCUMENT, ITS QUALITY, ACCURACY, with the technology described in this MERCHANTABILITY, OR FITNESS FOR A document. This document is intended to PARTICULAR PURPOSE. AS A RESULT, THIS DOCUMENT IS PROVIDED “AS IS,” AND assist application developers to develop YOU, THE READER, ARE ASSUMING THE applications only for Apple-labeled or ENTIRE RISK AS TO ITS QUALITY AND Apple-licensed computers. ACCURACY. IN NO EVENT WILL APPLE BE LIABLE FOR Every effort has been made to ensure that DIRECT, INDIRECT, SPECIAL, INCIDENTAL, the information in this document is OR CONSEQUENTIAL DAMAGES RESULTING FROM ANY DEFECT OR accurate. Apple is not responsible for INACCURACY IN THIS DOCUMENT, even if typographical errors. advised of the possibility of such damages. THE WARRANTY AND REMEDIES SET Apple Inc. FORTH ABOVE ARE EXCLUSIVE AND IN 1 Infinite Loop LIEU OF ALL OTHERS, ORAL OR WRITTEN, Cupertino, CA 95014 EXPRESS OR IMPLIED. No Apple dealer, agent, or employee is authorized to make any 408-996-1010 modification, extension, or addition to this warranty. .Mac is a service mark of Apple Inc. Some states do not allow the exclusion or limitation of implied warranties or liability for Apple, the Apple logo, AirPort, AirPort incidental or consequential damages, so the above limitation or exclusion may not apply to Extreme, AppleScript, AppleScript Studio, you. This warranty gives you specific legal AppleShare, AppleTalk, Aqua, Bonjour, rights, and you may also have other rights which Carbon, Cocoa, ColorSync, eMac, Final Cut, vary from state to state. Final Cut Pro, FireWire, iBook, iCal, iTunes, Keychain, Mac, Mac OS, Macintosh, Objective-C, Pages, Quartz, QuickDraw, QuickTime, Sherlock, TrueType, Velocity Engine, WebObjects, Xcode, and Xgrid are trademarks of Apple Inc., registered in the United States and other countries. Contents Introduction Introduction to Mac OS X Technology Overview 11 Who Should Read This Document 11 Organization of This Document 11 Getting the Xcode Tools 12 Reporting Bugs 12 See Also 13 Developer Documentation 13 Information on BSD 13 Darwin and Open Source Development 14 Other Information on the Web 14 Chapter 1 Mac OS X Architectural Overview 15 A Layered Look at the Mac OS X Architecture 15 Mac OS X Runtime Architecture 16 Dyld Runtime Environment 17 CFM Runtime Environment 17 The Classic Environment 18 Chapter 2 Software Development Overview 21 Application Environments 21 Carbon 21 Cocoa 22 Java 23 AppleScript 23 WebObjects 24 BSD and X11 24 Frameworks 25 Plug-ins 25 Address Book Action Plug-Ins 26 Application Plug-Ins 26 Automator Plug-Ins 26 Contextual Menu Plug-Ins 27 Core Audio Plug-Ins 27 Image Units 27 Input Method Components 27 3 2006-06-28 | © 2004, 2006 Apple Computer, Inc. All Rights Reserved. CONTENTS Metadata Importers 28 QuickTime Components 28 Safari Plug-ins 28 Dashboard Widgets 29 Agent Applications 29 Screen Savers 29 Slideshows 30 Programmatic Screen Savers 30 Services 30 Preference Panes 31 Web Content 31 Dynamic Websites 31 Sherlock Channels 32 SOAP and XML-RPC 32 Command-Line Tools 32 Login Items 33 Scripts 34 Scripting Additions for AppleScript 35 Kernel Extensions 35 Device Drivers 36 Chapter 3 System-Level Technologies 37 Core OS 37 Darwin 37 Network Support 41 Velocity Engine 45 Java Support 45 64-Bit Support 46 Graphics, Imaging, and Multimedia 46 Quartz 46 QuickTime 49 OpenGL 50 OpenAL 51 Core Audio 51 Core Image 51 Core Video 52 ColorSync 52 DVD Playback 53 Printing 53 Text and Fonts 54 QuickDraw 55 Interprocess Communication 55 Distributed Objects for Cocoa 55 Apple Events 55 Distributed Notifications 56 4 2006-06-28 | © 2004, 2006 Apple Computer, Inc. All Rights Reserved. CONTENTS BSD Notifications 56 Sockets, Ports, and Streams 57 BSD Pipes 57 Shared Memory 58 Mach Messaging 58 User Experience 58 Aqua 58 Accessibility 59 AppleScript 59 Bundles and Packages 60 Fast User Switching 60 Internationalization and Localization 61 Software Configuration 61 Spotlight 62 System Applications 62 The Finder 62 The Dock 63 Chapter 4 Application-Level Technologies 65 Address Book 65 Bonjour 66 Core Data 66 Core Foundation 67 Disc Recording 67 Help 68 Human Interface Toolbox 68 iChat Presence 68 Image Capture 69 Ink 69 Keychain Services 69 Launch Services 70 Open Directory 70 PDF Kit 70 QuickTime Kit 71 Search Kit 71 Security Services 72 Speech Technologies 72 SQLite 73 Sync Services 73 Web Kit 73 Web Service Access 74 XML Parsing 74 5 2006-06-28 | © 2004, 2006 Apple Computer, Inc. All Rights Reserved. CONTENTS Chapter 5 Choosing Technologies to Match Your Design Goals 75 High Performance 75 Easy to Use 76 Attractive Appearance 78 Reliability 79 Adaptability 80 Interoperability 81 Mobility 82 Chapter 6 Porting Tips 83 Carbon Considerations 83 Migrating From Mac OS 9 83 Use the Carbon Event Manager 85 Use the HIToolbox 85 Use Nib Files 85 Windows Considerations 85 64-Bit Considerations 87 Appendix A Command Line Primer 89 Basic Shell Concepts 89 Getting Information 89 Specifying Files and Directories 90 Accessing Files on Volumes 91 Flow Control 91 Frequently Used Commands 92 Environment Variables 93 Running Programs 94 Appendix B Mac OS X Frameworks 95 Umbrella Framework Contents 100 Accelerate Framework 100 Application Services Framework 101 Automator Framework 101 Carbon Framework 102 Core Services Framework 102 Quartz Framework 103 Web Kit Framework 103 System Libraries 104 Appendix C Mac OS X Developer Tools 105 Source Code Tools 105 6 2006-06-28 | © 2004, 2006 Apple Computer, Inc. All Rights Reserved. CONTENTS Xcode 105 Compilers, Linkers, Build Tools 106 Library Utilities 107 Code Utilities 107 Visual Design Tools 109 AppleScript Studio 109 Automator 109 AU Lab 110 Interface Builder 111 Quartz Composer 112 Debugging and Tuning Tools 113 General 113 Memory 114 Graphics 114 Examining Code 115 Performance 116 KEXTs, Drivers, and Instruction Traces 117 Documentation and Help Tools 117 Localization Tools 118 Version Control Tools 119 RCS 119 CVS 120 Comparing Files 120 Packaging Tools 121 Scripting Tools 122 AppleScript Studio 122 Interpreters and Compilers 122 Script Language Converters 123 Perl Tools 123 Parsers and Lexical Analyzers 124 Documentation Tools 124 Java Tools 125 General 125 Java Utilities 125 Java Archive (JAR) Files 126 Kernel Extension Tools 126 I/O Kit Driver Tools 127 Document Revision History 129 Glossary 131 Index 143 7 2006-06-28 | © 2004, 2006 Apple Computer, Inc. All Rights Reserved. CONTENTS 8 2006-06-28 | © 2004, 2006 Apple Computer, Inc. All Rights Reserved. Figures and Tables Chapter 1 Mac OS X Architectural Overview 15 Figure 1-1 Layers of Mac OS X 15 Chapter 2 Software Development Overview 21 Table 2-1 Scripting language summary 34 Chapter 3 System-Level Technologies 37 Figure 3-1 Quartz Compositor and the rendering APIs in Mac OS X 49 Table 3-1 Supported local volume formats 40 Table 3-2 Supported network file-sharing protocols 40 Table 3-3 Network protocols 41 Table 3-4 Network technology support 43 Table 3-5 Quartz technical specifications 48 Table 3-6 Partial list of formats supported by QuickTime 50 Table 3-7 Features of the Mac OS X printing system 53 Chapter 5 Choosing Technologies to Match Your Design Goals 75 Table 5-1 Technologies for improving performance 76 Table 5-2 Technologies for achieving ease of use 77 Table 5-3 Technologies for achieving an attractive appearance 78 Table 5-4 Technologies for achieving reliability 79 Table 5-5 Technologies for achieving adaptability 80 Table 5-6 Technologies for achieving interoperability 81 Table 5-7 Technologies for achieving mobility 82 Chapter 6 Porting Tips 83 Table 6-1 Required replacements for Carbon 83 Table 6-2 Recommended