Mac OS X Internals: A Systems Approach By Amit Singh ............................................... Publisher: Addison Wesley Professional Pub Date: June 19, 2006 Print ISBN-10: 0-321-27854-2 Print ISBN-13: 978-0-32127854-8 Pages: 1680 Table of Contents 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. Mac OS X Internals: A Systems Approach By Amit Singh ............................................... Publisher: Addison Wesley Professional Pub Date: June 19, 2006 Print ISBN-10: 0-321-27854-2 Print ISBN-13: 978-0-32127854-8 Pages: 1680 Table of Contents Copyright Preface Acknowledgments About the Author Chapter 1. Origins of Mac OS X Section 1.1. Apple's Quest for the Operating System Section 1.2. The NeXT Chapter Section 1.3. The Mach Factor Section 1.4. Strategies Section 1.5. Toward Mac OS X Chapter 2. An Overview of Mac OS X Section 2.1. Firmware Section 2.2. Bootloader Section 2.3. Darwin Section 2.4. The xnu Kernel Section 2.5. A User-Space View of the File System Section 2.6. The Runtime Architecture Section 2.7. The C Library Section 2.8. Bundles and Frameworks Section 2.9. Core Services Section 2.10. Application Services Section 2.11. Application Environments Section 2.12. User Interface Section 2.13. Programming Section 2.14. Security Section 2.15. Mac OS X Server Section 2.16. Networking Chapter 3. Inside an Apple Section 3.1. The Power Mac G5 Section 3.2. The G5: Lineage and Roadmap Section 3.3. The PowerPC 970FX Section 3.4. Software Conventions Section 3.5. Examples Chapter 4. The Firmware and the Bootloader Section 4.1. Introduction Section 4.2. A Whole New World Section 4.3. Power-On Reset Section 4.4. Open Firmware Section 4.5. Forth Section 4.6. The Device Tree Section 4.7. Open Firmware Interfaces Section 4.8. Programming Examples Section 4.9. Firmware Boot Sequence Section 4.10. BootX Section 4.11. Alternate Booting Scenarios Section 4.12. Firmware Security Section 4.13. Launching the Kernel Section 4.14. The BootCache Optimization Section 4.15. Boot-Time Kernel Arguments Section 4.16. The Extensible Firmware Interface Chapter 5. Kernel and User-Level Startup Section 5.1. Arranging for the Kernel to Execute Section 5.2. Low-Level Processor Initialization Section 5.3. High-Level Processor Initialization Section 5.4. Mach Subsystem Initialization Section 5.5. The First Thread Section 5.6. I/O Kit Initialization Section 5.7. BSD Initialization Section 5.8. Launching the First User-Space Program Section 5.9. Slave Processors Section 5.10. User-Level Startup Chapter 6. The xnu Kernel Section 6.1. xnu Source Section 6.2. Mach Section 6.3. A Flavor of the Mach APIs Section 6.4. Entering the Kernel Section 6.5. Exception Processing Section 6.6. System Call Processing Section 6.7. System Call Categories Section 6.8. Kernel Support for Debugging, Diagnostics, and Tracing Section 6.9. Virtual Machine Monitor Section 6.10. Compiling the Kernel Chapter 7. Processes Section 7.1. Processes: From Early UNIX to Mac OS X Section 7.2. Mach Abstractions, Data Structures, and APIs Section 7.3. Many Threads of a New System Section 7.4. Scheduling Section 7.5. The execve() System Call Section 7.6. Launching Applications Chapter 8. Memory Section 8.1. Looking Back Section 8.2. An Overview of Mac OS X Memory Management Section 8.3. Mach VM Section 8.4. Resident Memory Section 8.5. Virtual Memory Initialization during Bootstrap Section 8.6. The Mach VM User-Space Interface Section 8.7. Using the Mach VM Interfaces Section 8.8. Kernel and User Address Space Layouts Section 8.9. Universal Page Lists (UPLs) Section 8.10. Unified Buffer Cache (UBC) Section 8.11. The Dynamic Pager Program Section 8.12. The Update Daemon Section 8.13. System Shared Memory Section 8.14. Task Working Set Detection and Maintenance Section 8.15. Memory Allocation in User Space Section 8.16. Memory Allocation in the Kernel Section 8.17. Memory-Mapped Files Section 8.18. 64-bit Computing Chapter 9. Interprocess Communication Section 9.1. Introduction Section 9.2. Mach IPC: An Overview Section 9.3. Mach IPC: The Mac OS X Implementation Section 9.4. Name and Bootstrap Servers Section 9.5. Using Mach IPC Section 9.6. MIG
Description: