Mac OS X internals : a systems approach / Amit Singh.
By: Singh, Amit
.
Material type:
BookPublisher: Upper Saddle River, NJ : Addison-Wesley, c2007Description: xxxiii, 1641 p. : ill. ; 25 cm. + hbk.ISBN: 0321278542 ; 9780321278548.Subject(s): Mac OS| Item type | Current library | Call number | Copy number | Status | Barcode | |
|---|---|---|---|---|---|---|
| General lending | MTU Bishopstown Library Lending | 005.44682 (Browse shelf(Opens below)) | 1 | Available | 00156564 |
Enhanced descriptions from Syndetics:
Mac OS X was released in March 2001, but many components, such as Mach and BSD, are considerably older. Understanding the design, implementation, and workings of Mac OS X requires examination of several technologies that differ in their age, origins, philosophies, and roles.
Mac OS X Internals: A Systems Approach is the first book that dissects the internals of the system, presenting a detailed picture that grows incrementally as you read. For example, you will learn the roles of the firmware, the bootloader, the Mach and BSD kernel components (including the process, virtual memory, IPC, and file system layers), the object-oriented I/O Kit driver framework, user libraries, and other core pieces of software. You will learn how these pieces connect and work internally, where they originated, and how they evolved. The book also covers several key areas of the Intel-based Macintosh computers.
A solid understanding of system internals is immensely useful in design, development, and debugging for programmers of various skill levels. System programmers can use the book as a reference and to construct a better picture of how the core system works. Application programmers can gain a deeper understanding of how their applications interact with the system. System administrators and power users can use the book to harness the power of the rich environment offered by Mac OS X. Finally, members of the Windows, Linux, BSD, and other Unix communities will find the book valuable in comparing and contrasting Mac OS X with their respective systems.
Mac OS X Internals focuses on the technical aspects of OS X and is so full of extremely useful information and programming examples that it will definitely become a mandatory tool for every Mac OS X programmer.
Includes bibliographical references and index.
Origins of Mac OS X -- An Overview of Mac OS X -- Inside an Apple -- The Firmware and the Bootloader -- Kernel and User-Level Startup -- The xnu Kernel -- Processes -- Memory -- Interprocess Communication -- Extending the Kernel -- File Systems -- The HFS Plus File System.
Table of contents provided by Syndetics
- Preface (p. xxv)
- Acknowledgments (p. xxxi)
- About the Author (p. xxxiii)
- Chapter 1 Origins of Mac OS X (p. 1)
- 1.1 Apple's Quest for the Operating System (p. 2)
- 1.2 The NeXT Chapter (p. 9)
- 1.3 The Mach Factor (p. 15)
- 1.4 Strategies (p. 24)
- 1.5 Toward Mac OS X (p. 31)
- Chapter 2 An Overview of Mac OS X (p. 43)
- 2.1 Firmware (p. 46)
- 2.2 Bootloader (p. 46)
- 2.3 Darwin (p. 46)
- 2.4 The xnu Kernel (p. 48)
- 2.5 A User-Space View of the File System (p. 57)
- 2.6 The Runtime Architecture (p. 61)
- 2.7 The C Library (p. 74)
- 2.8 Bundles and Frameworks (p. 76)
- 2.9 Core Services (p. 89)
- 2.10 Application Services (p. 90)
- 2.11 Application Environments (p. 101)
- 2.12 User Interface (p. 117)
- 2.13 Programming (p. 121)
- 2.14 Security (p. 131)
- 2.15 Mac OS X Server (p. 145)
- 2.16 Networking (p. 153)
- Chapter 3 Inside an Apple (p. 155)
- 3.1 The Power Mac G5 (p. 156)
- 3.2 The G5: Lineage and Roadmap (p. 166)
- 3.3 The PowerPC 970FX (p. 174)
- 3.4 Software Conventions (p. 224)
- 3.5 Examples (p. 240)
- Chapter 4 The Firmware and the Bootloader (p. 263)
- 4.1 Introduction (p. 263)
- 4.2 A Whole New World (p. 266)
- 4.3 Power-On Reset (p. 271)
- 4.4 Open Firmware (p. 272)
- 4.5 Forth (p. 279)
- 4.6 The Device Tree (p. 289)
- 4.7 Open Firmware Interfaces (p. 298)
- 4.8 Programming Examples (p. 300)
- 4.9 Firmware Boot Sequence (p. 324)
- 4.10 BootX (p. 328)
- 4.11 Alternate Booting Scenarios (p. 340)
- 4.12 Firmware Security (p. 349)
- 4.13 Launching the Kernel (p. 352)
- 4.14 The BootCache Optimization (p. 353)
- 4.15 The Boot-Time Kernel Arguments (p. 355)
- 4.16 The Extensible Firmware Interface (p. 362)
- Chapter 5 Kernel and User-Level Startup (p. 381)
- 5.1 Arranging for the Kernel to Execute (p. 382)
- 5.2 Low-Level Processor Initialization (p. 388)
- 5.3 High-Level Processor Initialization (p. 405)
- 5.4 Mach Subsystem Initialization (p. 421)
- 5.5 The First Thread (p. 432)
- 5.6 I/O Kit Initialization (p. 435)
- 5.7 BSD Initialization (p. 443)
- 5.8 Launching the First User-Space Program (p. 469)
- 5.9 Slave Processors (p. 470)
- 5.10 User-Level Startup (p. 472)
- Chapter 6 The xnu Kernel (p. 501)
- 6.1 xnu Source (p. 501)
- 6.2 Mach (p. 510)
- 6.3 A Flavor of the Mach APIs (p. 519)
- 6.4 Entering the Kernel (p. 529)
- 6.5 Exception Processing (p. 543)
- 6.6 System Call Processing (p. 553)
- 6.7 System Call Categories (p. 557)
- 6.8 Kernel Support for Debugging, Diagnostics, and Tracing (p. 601)
- 6.9 Virtual Machine Monitor (p. 659)
- 6.10 Compiling the Kernel (p. 676)
- Chapter 7 Processes (p. 683)
- 7.1 Processes: From Early UNIC to Mac OS X (p. 684)
- 7.2 Mach Abstractions, Data Structures, and APIs (p. 687)
- 7.3 Many Threads of a New System (p. 726)
- 7.4 Scheduling (p. 774)
- 7.5 The execve() System Call (p. 812)
- 7.6 Launching Applications (p. 828)
- Chapter 8 Memory (p. 835)
- 8.1 Looking Back (p. 835)
- 8.2 An Overview of Mac OS X Memory Management (p. 838)
- 8.3 Mac VM (p. 846)
- 8.4 Resident Memory (p. 868)
- 8.5 Virtual Memory Initialization during Bootstrap (p. 877)
- 8.6 The Mach VM User-Space Interface (p. 878)
- 8.7 Using the Mach VM Interfaces (p. 893)
- 8.8 Kernel and User Address Space Layouts (p. 907)
- 8.9 Universal Page Lists (UPLs) (p. 912)
- 8.10 Unified Buffer Cache (UBC) (p. 913)
- 8.11 The Dynamic Pager Program (p. 918)
- 8.12 The Update Daemon (p. 921)
- 8.13 System Shared Memory (p. 922)
- 8.14 Task Working Set Detection and Maintenance (p. 942)
- 8.15 Memory Allocation in User Space (p. 948)
- 8.16 Memory Allocation in the Kernel (p. 980)
- 8.17 Memory-Mapped Files (p. 1001)
- 8.18 64-bit Computing (p. 1005)
- Chapter 9 Interprocess Communication (p. 1021)
- 9.1 Introduction (p. 1021)
- 9.2 Mach IPC: An Overview (p. 1025)
- 9.3 Mach IPC: The Mac OS X Implementation (p. 1041)
- 9.4 Name and Bootstrap Servers (p. 1060)
- 9.5 Using Mach IPC (p. 1080)
- 9.6 MIG (p. 1094)
- 9.7 Mach Exceptions (p. 1112)
- 9.8 Signals (p. 1129)
- 9.9 Pipes (p. 1145)
- 9.10 Named Pipes (Fifos) (p. 1147)
- 9.11 File Descriptor Passing (p. 1148)