throbber
1069
`R. Surati
`12/01/2022
`
`Mac OS X Technology Overview
`
`General
`
`2009-08-14
`
`IPR2022-00031 / IPR2022-00032 / IPR2022-00033 / PGR2022-00006
`
`Page 1
`Petitioner Apple Inc., Ex. 1069
`
`Petitioner Apple Inc., Ex. 1069, p. 1
`Apple Inc. v. MemoryWeb, LLC, IPR2022-00032
`
`

`

`OpenCL and Xserve are trademarks of Apple
`Inc.
`Java is a registered trademark of Oracle and/or
`its affiliates
`Adobe, Acrobat, and PostScript are trademarks
`or registered trademarks of Adobe Systems
`Incorporated in the U.S. and/or other countries.
`IOS is a trademark or registered trademark of
`Cisco in the U.S. and other countries and is used
`under license.
`Intel and Intel Core are registered trademarks
`of Intel Corportation or its subsidiaries in the
`United States and other countries.
`OpenGL is a registered trademark of Silicon
`Graphics, Inc.
`PowerPC and and the PowerPC logo are
`trademarks of International Business Machines
`Corporation, used under license therefrom.
`UNIX is a registered trademark of The Open
`Group
`Simultaneously published in the United States
`and Canada.
`Even though Apple has reviewed this document,
`APPLE MAKES NO WARRANTY OR REPRESENTATION,
`EITHER EXPRESS OR IMPLIED, WITH RESPECT TO
`THIS DOCUMENT, ITS QUALITY, ACCURACY,
`MERCHANTABILITY, OR FITNESS FOR A PARTICULAR
`PURPOSE. AS A RESULT, THIS DOCUMENT IS
`PROVIDED “AS IS,” AND YOU, THE READER, ARE
`ASSUMING THE ENTIRE RISK AS TO ITS QUALITY
`AND ACCURACY.
`IN NO EVENT WILL APPLE BE LIABLE FOR DIRECT,
`INDIRECT, SPECIAL, INCIDENTAL, OR
`CONSEQUENTIAL DAMAGES RESULTING FROM ANY
`DEFECT OR INACCURACY IN THIS DOCUMENT, even
`if advised of the possibility of such damages.
`THE WARRANTY AND REMEDIES SET FORTH ABOVE
`ARE EXCLUSIVE AND IN LIEU OF ALL OTHERS, ORAL
`OR WRITTEN, EXPRESS OR IMPLIED. No Apple
`dealer, agent, or employee is authorized to make
`any modification, extension, or addition to this
`warranty.
`Some states do not allow the exclusion or limitation
`of implied warranties or liability for incidental or
`consequential damages, so the above limitation or
`exclusion may not apply to you. This warranty gives
`you specific legal rights, and you may also have
`other rights which vary from state to state.
`
`Apple Inc.
`© 2004, 2009 Apple Inc.
`All rights reserved.
`
`No part of this publication may be reproduced,
`stored in a retrieval system, or transmitted, in
`any form or by any means, mechanical,
`electronic, photocopying, recording, or
`otherwise, without prior written permission of
`Apple Inc., with the following exceptions: Any
`person is hereby authorized to store
`documentation on a single computer for
`personal use only and to print copies of
`documentation for personal use provided that
`the documentation contains Apple’s copyright
`notice.
`The Apple logo is a trademark of Apple Inc.
`Use of the “keyboard” Apple logo
`(Option-Shift-K) for commercial purposes
`without the prior written consent of Apple may
`constitute trademark infringement and unfair
`competition in violation of federal and state
`laws.
`No licenses, express or implied, are granted
`with respect to any of the technology described
`in this document. Apple retains all intellectual
`property rights associated with the technology
`described in this document. This document is
`intended to assist application developers to
`develop applications only for Apple-labeled
`computers.
`Every effort has been made to ensure that the
`information in this document is accurate. Apple
`is not responsible for typographical errors.
`Apple Inc.
`1 Infinite Loop
`Cupertino, CA 95014
`408-996-1010
`
`.Mac is a registered service mark of Apple Inc.
`iDisk is a registered service mark of Apple Inc.
`Apple, the Apple logo, AirPort, AirPort Extreme,
`AppleScript, AppleShare, AppleTalk, Aqua,
`Bonjour, Carbon, Cocoa, ColorSync, Dashcode,
`eMac, Exposé, Final Cut, Final Cut Pro, Finder,
`FireWire, iBook, iCal, iChat, Instruments, iTunes,
`Keychain, Mac, Mac OS, Macintosh, Objective-C,
`Pages, Quartz, QuickDraw, QuickTime, Rosetta,
`Safari, Sherlock, Spaces, Spotlight, Tiger, Time
`Machine, TrueType, Velocity Engine,
`WebObjects, Xcode, and Xgrid are trademarks
`of Apple Inc., registered in the United States
`and other countries.
`
`IPR2022-00031 / IPR2022-00032 / IPR2022-00033 / PGR2022-00006
`
`Page i
`
`Petitioner Apple Inc., Ex. 1069, p. 2
`Apple Inc. v. MemoryWeb, LLC, IPR2022-00032
`
`

`

`Contents
`
`Introduction
`
`Introduction to Mac OS X Technology Overview 13
`
`Who Should Read This Document 13
`Organization of This Document 13
`Getting the Xcode Tools 14
`Reporting Bugs 14
`See Also 15
`Developer Documentation 15
`Information on BSD 15
`Darwin and Open Source Development 16
`Other Information on the Web 16
`
`Chapter 1
`
`Mac OS X System Overview 17
`
`A Layered Approach 17
`The Advantage of Layers 18
`Developer Tools 19
`
`Chapter 2
`
`Darwin and Core Technologies 21
`
`Kernel and Drivers 21
`Mach 21
`64-Bit Kernel 22
`Device-Driver Support 22
`File-System Support 23
`Network Support 24
`BSD 28
`Caching API 29
`Scripting Support 29
`Threading Support 29
`X11 30
`Security 30
`Core Technologies 30
`Blocks 31
`Grand Central Dispatch 31
`OpenCL 32
`Core Foundation 32
`IPC and Notification Mechanisms 33
`Software Development Support 36
`Binary File Architecture 36
`Language Support 40
`
`2009-08-14 | © 2004, 2009 Apple Inc. All Rights Reserved.
`
`IPR2022-00031 / IPR2022-00032 / IPR2022-00033 / PGR2022-00006
`
`3
`
`Petitioner Apple Inc., Ex. 1069, p. 3
`Apple Inc. v. MemoryWeb, LLC, IPR2022-00032
`
`

`

`CONTENTS
`
`Chapter 3
`
`Graphics and Multimedia Technologies 43
`
`Drawing Technologies 43
`Quartz 43
`Cocoa Drawing 45
`OpenGL 46
`Core Animation 46
`Core Image 47
`Image Kit 48
`QuickDraw 48
`Text and Fonts 48
`Cocoa Text 49
`Core Text 49
`Apple Type Services 49
`Apple Type Services for Unicode Imaging 50
`Multilingual Text Engine 50
`Audio Technologies 50
`Core Audio 50
`OpenAL 51
`Video Technologies 51
`QuickTime Kit 52
`Core Video 52
`DVD Playback 52
`QuickTime 53
`Color Management 54
`Printing 54
`Accelerating Your Multimedia Operations 55
`
`Chapter 4
`
`Application Technologies 57
`
`Application Environments 57
`Cocoa 57
`Carbon 58
`Java 59
`WebObjects 59
`BSD and X11 60
`Application Technologies 60
`Address Book Framework 60
`Automator Framework 61
`Bonjour 61
`Calendar Store Framework 61
`Core Data Framework 62
`Disc Recording Framework 62
`Help Support 63
`Human Interface Toolbox 63
`Identity Services 64
`
`4
`
`2009-08-14 | © 2004, 2009 Apple Inc. All Rights Reserved.
`IPR2022-00031 / IPR2022-00032 / IPR2022-00033 / PGR2022-00006
`
`Petitioner Apple Inc., Ex. 1069, p. 4
`Apple Inc. v. MemoryWeb, LLC, IPR2022-00032
`
`

`

`CONTENTS
`
`Instant Message Framework 64
`Image Capture Services 64
`Ink Services 65
`Input Method Kit Framework 65
`Keychain Services 65
`Latent Semantic Mapping Services 66
`Launch Services 66
`Open Directory 66
`PDF Kit Framework 66
`Publication Subscription Framework 67
`Search Kit Framework 67
`Security Services 67
`Speech Technologies 68
`SQLite Library 68
`Sync Services Framework 69
`WebKit Framework 69
`Time Machine Support 70
`Web Service Access 70
`XML Parsing Libraries 70
`
`Chapter 5
`
`User Experience 71
`
`Technologies 71
`Aqua 71
`Quick Look 71
`Resolution-Independent User Interface 72
`Spotlight 72
`Bundles and Packages 73
`Code Signing 73
`Internationalization and Localization 74
`Software Configuration 74
`Fast User Switching 75
`Spaces 75
`Accessibility 75
`AppleScript 76
`System Applications 76
`The Finder 76
`The Dock 77
`Dashboard 77
`Automator 77
`Time Machine 78
`
`Chapter 6
`
`Software Development Overview 79
`
`Applications 79
`Frameworks 79
`
`2009-08-14 | © 2004, 2009 Apple Inc. All Rights Reserved.
`IPR2022-00031 / IPR2022-00032 / IPR2022-00033 / PGR2022-00006
`
`5
`
`Petitioner Apple Inc., Ex. 1069, p. 5
`Apple Inc. v. MemoryWeb, LLC, IPR2022-00032
`
`

`

`CONTENTS
`
`Plug-ins 80
`Address Book Action Plug-Ins 80
`Application Plug-Ins 80
`Automator Plug-Ins 81
`Contextual Menu Plug-Ins 81
`Core Audio Plug-Ins 81
`Image Units 81
`Input Method Components 82
`Interface Builder Plug-Ins 82
`Metadata Importers 82
`QuickTime Components 83
`Safari Plug-ins 83
`Dashboard Widgets 83
`Agent Applications 84
`Screen Savers 84
`Slideshows 84
`Programmatic Screen Savers 85
`Services 85
`Preference Panes 85
`Web Content 86
`Dynamic Websites 86
`SOAP and XML-RPC 86
`Sherlock Channels 87
`Mail Stationery 87
`Command-Line Tools 87
`Launch Items, Startup Items, and Daemons 88
`Scripts 88
`Scripting Additions for AppleScript 89
`Kernel Extensions 90
`Device Drivers 90
`
`Chapter 7
`
`Choosing Technologies to Match Your Design Goals 93
`
`High Performance 93
`Easy to Use 95
`Attractive Appearance 96
`Reliability 97
`Adaptability 98
`Interoperability 99
`Mobility 100
`
`Chapter 8
`
`Porting Tips 103
`
`64-Bit Considerations 103
`Windows Considerations 104
`Carbon Considerations 105
`
`6
`
`2009-08-14 | © 2004, 2009 Apple Inc. All Rights Reserved.
`IPR2022-00031 / IPR2022-00032 / IPR2022-00033 / PGR2022-00006
`
`Petitioner Apple Inc., Ex. 1069, p. 6
`Apple Inc. v. MemoryWeb, LLC, IPR2022-00032
`
`

`

`CONTENTS
`
`Migrating From Mac OS 9 105
`Use the Carbon Event Manager 106
`Use the HIToolbox 106
`Use Nib Files 107
`
`Appendix A
`
`Command Line Primer 109
`
`Basic Shell Concepts 109
`Getting Information 109
`Specifying Files and Directories 110
`Accessing Files on Volumes 110
`Flow Control 111
`Frequently Used Commands 112
`Environment Variables 113
`Running Programs 114
`
`Appendix B
`
`Mac OS X Frameworks 115
`
`System Frameworks 115
`Accelerate Framework 121
`Application Services Framework 121
`Automator Framework 122
`Carbon Framework 122
`Core Services Framework 123
`IMCore Framework 124
`Quartz Framework 124
`WebKit Framework 125
`Xcode Frameworks 125
`System Libraries 126
`
`Appendix C
`
`Mac OS X Developer Tools 127
`
`Applications 127
`Xcode 127
`Interface Builder 133
`Dashcode 134
`Instruments 135
`Quartz Composer 136
`Audio Applications 136
`Graphics Applications 137
`Java 138
`Performance Applications 139
`Utility Applications 140
`Command-Line Tools 143
`Compiler, Linker, and Source Code Tools 144
`Debugging and Tuning Tools 146
`
`2009-08-14 | © 2004, 2009 Apple Inc. All Rights Reserved.
`IPR2022-00031 / IPR2022-00032 / IPR2022-00033 / PGR2022-00006
`
`7
`
`Petitioner Apple Inc., Ex. 1069, p. 7
`Apple Inc. v. MemoryWeb, LLC, IPR2022-00032
`
`

`

`CONTENTS
`
`Documentation and Help Tools 149
`Localization Tools 150
`Version Control Tools 150
`Packaging Tools 152
`Scripting Tools 153
`Java Tools 156
`Kernel Extension Tools 157
`I/O Kit Driver Tools 158
`
`Glossary 159
`
`Document Revision History 171
`
`Index 173
`
`8
`
`2009-08-14 | © 2004, 2009 Apple Inc. All Rights Reserved.
`IPR2022-00031 / IPR2022-00032 / IPR2022-00033 / PGR2022-00006
`
`Petitioner Apple Inc., Ex. 1069, p. 8
`Apple Inc. v. MemoryWeb, LLC, IPR2022-00032
`
`

`

`Figures and Tables
`
`Chapter 1
`
`Mac OS X System Overview 17
`
`Figure 1-1
`
`Layers of Mac OS X 17
`
`Chapter 2
`
`Darwin and Core Technologies 21
`
`Table 2-1
`Table 2-2
`Table 2-3
`Table 2-4
`
`Supported local volume formats 23
`Supported network file-sharing protocols 24
`Network protocols
`25
`Network technology support
`
`26
`
`Chapter 3
`
`Graphics and Multimedia Technologies 43
`
`Figure 3-1
`Table 3-1
`Table 3-2
`Table 3-3
`
`Quartz Compositor and the rendering APIs in Mac OS X 45
`Quartz technical specifications
`44
`Partial list of formats supported by QuickTime 53
`Features of the Mac OS X printing system 55
`
`Chapter 5
`
`User Experience 71
`
`Figure 5-1
`
`Automator main window 78
`
`Chapter 6
`
`Software Development Overview 79
`
`Table 6-1
`
`Scripting language summary 89
`
`Chapter 7
`
`Choosing Technologies to Match Your Design Goals 93
`
`Table 7-1
`Table 7-2
`Table 7-3
`Table 7-4
`Table 7-5
`Table 7-6
`Table 7-7
`
`Technologies for improving performance 93
`Technologies for achieving ease of use 95
`Technologies for achieving an attractive appearance 96
`Technologies for achieving reliability 98
`Technologies for achieving adaptability 98
`Technologies for achieving interoperability 99
`Technologies for achieving mobility 100
`
`Chapter 8
`
`Porting Tips 103
`
`Table 8-1
`Table 8-2
`
`Required replacements for Carbon 105
`Recommended replacements for Carbon 106
`
`2009-08-14 | © 2004, 2009 Apple Inc. All Rights Reserved.
`
`IPR2022-00031 / IPR2022-00032 / IPR2022-00033 / PGR2022-00006
`
`9
`
`Petitioner Apple Inc., Ex. 1069, p. 9
`Apple Inc. v. MemoryWeb, LLC, IPR2022-00032
`
`

`

`FIGURES AND TABLES
`
`Appendix A
`
`Command Line Primer 109
`
`Table A-1
`Table A-2
`Table A-3
`Table A-4
`
`Getting a list of built-in commands 109
`Special path characters and their meaning 110
`Input and output sources for programs 111
`Frequently used commands and programs 112
`
`Appendix B
`
`Mac OS X Frameworks 115
`
`Table B-1
`Table B-2
`Table B-3
`Table B-4
`Table B-5
`Table B-6
`Table B-7
`Table B-8
`Table B-9
`Table B-10
`
`System frameworks 115
`Subframeworks of the Accelerate framework 121
`Subframeworks of the Application Services framework 122
`Subframeworks of the Automator framework 122
`Subframeworks of the Carbon framework 123
`Subframeworks of the Core Services framework 124
`Subframeworks of the IMCore framework 124
`Subframeworks of the Quartz framework 125
`Subframeworks of the WebKit framework 125
`Xcode frameworks 125
`
`Appendix C
`
`Mac OS X Developer Tools 127
`
`Figure C-1
`Figure C-2
`Figure C-3
`Figure C-4
`Figure C-5
`Figure C-6
`Figure C-7
`Figure C-8
`Figure C-9
`Table C-1
`Table C-2
`Table C-3
`Table C-4
`Table C-5
`Table C-6
`Table C-7
`Table C-8
`Table C-9
`Table C-10
`Table C-11
`Table C-12
`Table C-13
`Table C-14
`
`Xcode application 129
`Xcode documentation window 131
`Interface Builder 3.0 133
`Dashcode canvas 134
`The Instruments application interface 135
`Quartz Composer editor window 136
`AU Lab mixer and palettes 137
`iSync Plug-in Maker application 142
`PackageMaker application 143
`Graphics applications 138
`Java applications 138
`Performance applications 139
`CHUD applications 139
`Utility applications 140
`Compilers, linkers, and build tools 144
`Tools for creating and updating libraries 145
`Code utilities 145
`General debugging tools 146
`Memory debugging and tuning tools 147
`Tools for examining code 147
`Performance tools 148
`Instruction trace tools 149
`Documentation and help tools 149
`
`10
`
`2009-08-14 | © 2004, 2009 Apple Inc. All Rights Reserved.
`IPR2022-00031 / IPR2022-00032 / IPR2022-00033 / PGR2022-00006
`
`Petitioner Apple Inc., Ex. 1069, p. 10
`Apple Inc. v. MemoryWeb, LLC, IPR2022-00032
`
`

`

`FIGURES AND TABLES
`
`Table C-15
`Table C-16
`Table C-17
`Table C-18
`Table C-19
`Table C-20
`Table C-21
`Table C-22
`Table C-23
`Table C-24
`Table C-25
`Table C-26
`Table C-27
`Table C-28
`Table C-29
`Table C-30
`
`Localization tools 150
`Subversion tools 150
`RCS tools 151
`CVS tools 151
`Comparison tools 152
`Packaging tools 152
`Script interpreters and compilers 153
`Script language converters 154
`Perl tools 154
`Parsers and lexical analyzers 155
`Scripting documentation tools 155
`Java tools 156
`Java utilities 156
`JAR file tools 157
`Kernel extension tools 157
`Driver tools 158
`
`2009-08-14 | © 2004, 2009 Apple Inc. All Rights Reserved.
`IPR2022-00031 / IPR2022-00032 / IPR2022-00033 / PGR2022-00006
`
`11
`
`Petitioner Apple Inc., Ex. 1069, p. 11
`Apple Inc. v. MemoryWeb, LLC, IPR2022-00032
`
`

`

`FIGURES AND TABLES
`
`2009-08-14 | © 2004, 2009 Apple Inc. All Rights Reserved.
`IPR2022-00031 / IPR2022-00032 / IPR2022-00033 / PGR2022-00006
`
`12
`
`Petitioner Apple Inc., Ex. 1069, p. 12
`Apple Inc. v. MemoryWeb, LLC, IPR2022-00032
`
`

`

`INTRODUCTION
`
`Introduction to Mac OS X Technology
`Overview
`
`Mac OS X is a modern operating system that combines a stable core with advanced technologies to help
`you deliver world-class products. The technologies in Mac OS X help you do everything from manage your
`data to display high-resolution graphics and multimedia content, all while delivering the consistency and
`ease of use that are hallmarks of the Macintosh experience. Knowing how to use these technologies can help
`streamline your own development process, while providing you access to key Mac OS X features.
`
`Who Should Read This Document
`
`Mac OS X Technology Overview is an essential guide for anyone looking to develop software for Mac OS X. It
`provides an overview of the technologies and tools that have an impact on the development process and
`provides links to relevant documents and other sources of information. You should use this document to do
`the following:
`
` ■
`
` ■
`
` ■ Orient yourself to the Mac OS X platform.
`Learn about Mac OS X software technologies, why you might want to use them, and when.
`Learn about the development opportunities for the platform.
` ■ Get tips and guidelines on how to move to Mac OS X from other platforms.
`Find key documents relating to the technologies you are interested in.
`
` ■
`
`This document does not provide information about user-level system features or about features that have
`no impact on the software development process.
`
`New developers should find this document useful for getting familiar with Mac OS X. Experienced developers
`can use it as a road map for exploring specific technologies and development techniques.
`
`Organization of This Document
`
`This document has the following chapters and appendixes:
`
` ■
`
` ■
`
` ■
`
`“Mac OS X System Overview” (page 17) provides background information for understanding the
`terminology and basic development environment of Mac OS X. It also provides a high-level overview of
`the Mac OS X system architecture.
`“Darwin and Core Technologies” (page 21) describes the technologies that comprise the Darwin
`environment along with other key technologies that are used throughout the system.
`“Graphics and Multimedia Technologies” (page 43) describes the graphics foundations of the system,
`including the technologies you use for drawing to the screen and for creating audio and video content.
`
`Who Should Read This Document
`2009-08-14 | © 2004, 2009 Apple Inc. All Rights Reserved.
`IPR2022-00031 / IPR2022-00032 / IPR2022-00033 / PGR2022-00006
`
`13
`
`Petitioner Apple Inc., Ex. 1069, p. 13
`Apple Inc. v. MemoryWeb, LLC, IPR2022-00032
`
`

`

`INTRODUCTION
`Introduction to Mac OS X Technology Overview
`
`“Application Technologies” (page 57) describes the development environments (like Carbon and Cocoa)
`and individual technologies (like Address Book) that you use to create your applications.
`“User Experience” (page 71) describes the technologies that your application should use to provide the
`best user experience for the platform. This chapter also describes some of the system technologies with
`which your software interacts to create that experience.
`“Software Development Overview” (page 79) describes the types of software you can create for Mac OS
`X and when you might use each type.
`“Choosing Technologies to Match Your Design Goals” (page 93) provides tips and guidance to help you
`choose the technologies that best support the design goals of your application.
`“Porting Tips” (page 103) provides starter advice for developers who are porting applications from Mac
`OS 9, Windows, and UNIX platforms.
`“Command Line Primer” (page 109) provides an introduction to the command-line interface for developers
`who have never used it before.
`“Mac OS X Frameworks” (page 115) describes the frameworks you can use to develop your software. Use
`this list to find specific technologies or to find when a given framework was introduced to Mac OS X.
`“Mac OS X Developer Tools” (page 127) provides an overview of the available applications and
`command-line tools you can use to create software for Mac OS X.
`
`Getting the Xcode Tools
`
`Apple provides a comprehensive suite of developer tools for creating Mac OS X software. The Xcode Tools
`include applications to help you design, create, debug, and optimize your software. This tools suite also
`includes header files, sample code, and documentation for Apple technologies. You can download the Xcode
`Tools from the members area of the Apple Developer Connection (ADC) website (http://connect.apple.com/).
`Registration is required but free.
`
`For additional information about the tools available for working with Mac OS X and its technologies, see
`“Mac OS X Developer Tools” (page 127).
`
`Reporting Bugs
`
`If you encounter bugs in Apple software or documentation, you are encouraged to report them to Apple.
`You can also file enhancement requests to indicate features you would like to see in future revisions of a
`product or document. To file bugs or enhancement requests, go to the Bug Reporting page of the ADC
`website, which is at the following URL:
`
`http://developer.apple.com/bugreporter/
`
`You must have a valid ADC login name and password to file bugs. You can obtain a login name for free by
`following the instructions found on the Bug Reporting page.
`
`14
`
`Getting the Xcode Tools
`2009-08-14 | © 2004, 2009 Apple Inc. All Rights Reserved.
`IPR2022-00031 / IPR2022-00032 / IPR2022-00033 / PGR2022-00006
`
`Petitioner Apple Inc., Ex. 1069, p. 14
`Apple Inc. v. MemoryWeb, LLC, IPR2022-00032
`
`■
`■
`■
`■
`■
`■
`■
`■
`

`

`INTRODUCTION
`Introduction to Mac OS X Technology Overview
`
`See Also
`
`This document does not provide in-depth information on any one technology. However, it does point to
`relevant documents in the ADC Reference Library. References of the form “<title> in <category>
`Documentation” refer to documents in specific sections of the reference library.
`
`For information about new features introduced in different versions of Mac OS X, see What's New In Mac OS
`X.
`
`The following sections list additional sources of information about Mac OS X and its technologies.
`
`Developer Documentation
`
`When you install Xcode, the installer places the tools you need for development as well as sample code and
`developer documentation on your local hard drive. The default installation directory for Xcode is /Developer
`but in Mac OS X v10.5 and later you can specify a custom installation directory if desired. (This document
`uses the term <Xcode> to represent the root directory of your Xcode installation.) The Installer application
`puts developer documentation into the following locations:
`
`General documentation. Most documentation and sample code is installed in the
`<Xcode>/Documentation/DocSets directory. All documents are available in HTML format, which you
`can view from any web browser. To view the documentation, open the Xcode IDE and choose Help >
`Show Documentation Window.
`Additional sample code. Some additional sample programs are installed in <Xcode>/Examples. These
`samples demonstrate different tasks involving Mac OS X technologies.
`
`You can also get the latest documentation, release notes, Tech Notes, technical Q&As, and sample code from
`the ADC Reference Library (http://developer.apple.com/referencelibrary). All documents are available in HTML
`and most are also available in PDF format.
`
`Information on BSD
`
`Many developers who are new to Mac OS X are also new to BSD, an essential part of the operating system’s
`kernel environment. BSD (for Berkeley Software Distribution) is based on UNIX. Several excellent books on
`BSD and UNIX are available in bookstores.
`
`You can also use the World Wide Web as a resource for information on BSD. Several organizations maintain
`websites with manuals, FAQs, and other sources of information on the subject. For information about related
`projects, see:
`
` ■
`
` ■
`
` ■
`
` ■
`
`Apple’s Open Source page (http://developer.apple.com/opensource/)
`The FreeBSD project (http://www.freebsd.org)
`The NetBSD project (http://www.netbsd.org)
`The OpenBSD project (http://www.openbsd.org)
`
`For more references, see the bibliography in Kernel Programming Guide.
`
`See Also
`2009-08-14 | © 2004, 2009 Apple Inc. All Rights Reserved.
`IPR2022-00031 / IPR2022-00032 / IPR2022-00033 / PGR2022-00006
`
`15
`
`Petitioner Apple Inc., Ex. 1069, p. 15
`Apple Inc. v. MemoryWeb, LLC, IPR2022-00032
`
`■
`■
`

`

`INTRODUCTION
`Introduction to Mac OS X Technology Overview
`
`Darwin and Open Source Development
`
`Apple is the first major computer company to make open source development a key part of its ongoing
`operating system strategy. Apple has released the source code to virtually all of the components of Darwin
`to the developer community and continues to update the Darwin code base to include improvements as
`well as security updates, bug fixes, and other important changes.
`
`Darwin consists of the Mac OS X kernel environment, BSD libraries, and BSD command environment. For
`more information about Darwin and what it contains, see “Kernel and Drivers” (page 21). For detailed
`information about the kernel environment, see Kernel Programming Guide.
`
`Information about the Darwin open source efforts is available at http://developer.apple.com/darwin/ and at
`http://www.macosforge.org/.
`
`Other Information on the Web
`
`Apple maintains several websites where developers can go for general and technical information about Mac
`OS X.
`
`The Apple Macintosh products site (http://www.apple.com/mac) provides general information about
`Macintosh hardware and software.
`The Apple product information site (http://www.apple.com/macosx) provides information about Mac
`OS X.
`The ADC Reference Library (http://developer.apple.com/referencelibrary) features the same documentation
`that is installed with the developer tools. It also includes new and regularly updated documents as well
`as legacy documentation.
`The Apple Care Knowledge Base (http://www.apple.com/support/) contains technical articles, tutorials,
`FAQs, and other information.
`
`16
`
`See Also
`2009-08-14 | © 2004, 2009 Apple Inc. All Rights Reserved.
`IPR2022-00031 / IPR2022-00032 / IPR2022-00033 / PGR2022-00006
`
`Petitioner Apple Inc., Ex. 1069, p. 16
`Apple Inc. v. MemoryWeb, LLC, IPR2022-00032
`
`■
`■
`■
`■
`

`

`CHAPTER 1
`
`Mac OS X System Overview
`
`This chapter provides a high-level introduction to Mac OS X, describing its overall architecture and development
`tools support. The goal of this chapter is to orient you to the Mac OS X operating system and to give you a
`reference point from which to explore the available tools and technologies described throughout this
`document. Developers who are already familiar with the Mac OS X system architecture and technologies
`may want to skip this chapter.
`
`Note: For a listing of commonly used Mac OS X terms, see “Glossary” (page 159).
`
`A Layered Approach
`
`The implementation of Mac OS X can be viewed as a set of layers. At the lower layers of the system are the
`fundamental services on which all software relies. Subsequent layers contain more sophisticated services
`and technologies that build on (or complement) the layers below. Figure 1-1 provides a graphical view of
`this layered approach, highlighting a few of the key technologies found in each layer of Mac OS X.
`
`Figure 1-1
`
`Layers of Mac OS X
`
`IL _JL
`
`Aqua
`
`User Experience
`_JL
`Dashboard
`Spotlight
`Application Frameworks
`Carbon
`l[
`l[
`
`_JL J
`) I
`
`Accessibility
`
`Java
`
`[,
`
`Cocoa
`
`[,
`Core Animation
`l[
`(
`
`OpenGL
`
`[
`
`Graphics and Media
`Core Image
`Core Video
`H
`Quartz
`
`l[
`
`l[
`
`Darwin
`
`QuickTime
`H
`Core Audio
`
`) I
`l
`l
`
`The bottom layer consists of the core environment layer, of which Darwin is the most significant component.
`Darwin is the name given to the FreeBSD environment that comprises the heart of Mac OS X. FreeBSD is a
`variant of the Berkeley Software Distribution UNIX environment, which provides a secure and stable foundation
`for building software. Included in this layer are the kernel environment, device drivers, security support,
`interprocess communication support, and low-level commands and services used by all programs on the
`system. Besides Darwin, this layer contains several core services and technologies, many of which are simply
`higher-level wrappers for the data types and functions in the Darwin layer. Among the available core services
`
`A Layered Approach
`2009-08-14 | © 2004, 2009 Apple Inc. All Rights Reserved.
`IPR2022-00031 / IPR2022-00032 / IPR2022-00033 / PGR2022-00006
`
`17
`
`Petitioner Apple Inc., Ex. 1069, p. 17
`Apple Inc. v. MemoryWeb, LLC, IPR2022-00032
`
`

`

`CHAPTER 1
`Mac OS X System Overview
`
`are those for doing collection management, data formatting, memory management, string manipulation,
`process management, XML parsing, stream-based I/O, and low-level network communication. For details
`about the technologies in this layer, see “Darwin and Core Technologies” (page 21).
`
`The Graphics and Media layer implements specialized services for playing audio and video and for rendering
`2D and 3D graphics. One of the key technologies in this layer is Quartz, which provides the main rendering
`environment and window management support for Mac OS X applications. QuickTime is Apple’s technology
`for displaying video, audio, virtual reality, and other multimedia-related information. Apple’s core technologies,
`including Core Image, Core Video, Core Animation, and Core Audio, provide advanced behavior for different
`types of media. OpenGL is an implementation of the industry-standard application programming interface
`(API) for rendering graphics and is used both as a standalone technology and as an underlying technology
`for accelerating all graphics operations. For details about the technologies in this layer, see “Graphics and
`Multimedia Technologies” (page 43).
`
`The Application Frameworks layer embodies the technologies for building applications. At the heart of this
`layer are the basic environments used to develop applications: Cocoa, Carbon, Java, and others. Each
`environment is designed to provide a level of familiarity to certain types of developers. For example, Cocoa
`and Java provide object-oriented environments using the Objective-C and Java languages while Carbon
`provides a C-based environment. This layer also contains numerous supporting technologies, such as Core
`Data, Address Book, Image Services, Keychain Services, Launch Services, HTML rendering, and many others.
`These technologies provide advanced user features and can be used to shorten your overall development
`cycle. For details about the technologies in this layer, see “Application Technologies” (page 57).
`
`The User Experience layer identifies the methodologies, technologies, and applications that make Mac OS X
`software unique. Apple provides countless technologies to implement the overall user experience. Many of
`these technologies simply work, but some require interactions with the software you create. Understanding
`what interactions are expected of your software can help you integrate it more smoothly into the Mac OS X
`ecosystem. For details about the technologies in this layer, see “User Experience” (page 71).
`
`The Advantage of Layers
`
`The nice thing about the Mac OS X layered design is that writing software in one layer does not preclude
`you from using technologies in other layers. Mac OS X technologies were built to interoperate with each
`other whenever possible. In cases where a given technology is unsuitable, you can always use a different
`technology that is suitable. For example, Cocoa applications can freely use Carbon frameworks and BSD
`function calls. Similarly, Carbon applications can use Objective-C based frameworks in addition to other
`object-oriented and C-based frameworks. Of course, in the case of Carbon, you might have to set up some
`Cocoa-specific structures before creating any Cocoa objects, but doing so is relatively trivial.
`
`Although you may feel more comfortable sticking with your chosen development environment, there are
`advantages to straying outside of that environment. You might find that technologies in other layers offer
`better performance or more flexibility. For example, using the POSIX interfaces in the Darwin layer might
`make it easier to port your application to other platforms that conform to the POSIX specification. Having
`access to technologies in other layers gives you options in your development process. You can pick and
`choose the technologies that best suit your development needs.
`
`18
`
`The Advantage of Layers
`2009-08-14 | © 2004, 2009 Apple Inc. All Rights Reserved.
`IPR2022-00031 / IPR2022-00032 / IPR2022-00033 / PGR2022-00006
`
`Petitioner Apple Inc., Ex. 1069, p. 18
`Apple Inc. v. MemoryWeb, LLC, IPR2022-00032
`
`

`

`CHAPTER 1
`Mac OS X System Overview
`
`Developer Tools
`
`Mac OS X provides you with a full suite of free developer tools to prototype, compile, debug, and optimize
`your applications. At the heart of Apple’s developer tools solution is Xcode, Apple’s integrated development
`environment. You use Xcode to organize and edit your source files, compile and debug your code, view
`documentation, and build all manner of software products.
`
`In addition to the Xcode application, Mac OS X also provides you with a wide selection of open source tools,
`such as the GNU Compiler Collection (GCC), which you use to build Mach-O programs, the native binary
`format of Mac OS X. If you are used to building programs from the command line, all of the familiar tools are
`there for you to use, including makefiles, the gdb debugger, analysis tools, performance tools, source-code
`management tools, and many other code utilities.
`
`Mac OS X also provides many other tools to make the development process easier:
`
` ■
`
` ■
`
` ■
`
`Interface Builder lets you design your application’s user interface graphically and

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket