 | |  |
| Mac OS X Internals: A Systems Approach | 
enlarge | List Price: $83.99 Buy New: $35.98 You Save: $48.01 (57%)
Buy New/Used from $35.98
Avg. Customer Rating:   (based on 23 reviews) Sales Rank: 59762 Category: Book
Author: Amit Singh Publisher: Addison-Wesley Professional Studio: Addison-Wesley Professional Manufacturer: Addison-Wesley Professional Label: Addison-Wesley Professional Languages: English (Original Language), English (Unknown), English (Published) Media: Hardcover Number Of Items: 1 Pages: 1680 Shipping Weight (lbs): 5.5 Dimensions (in): 9.4 x 7.4 x 2.6
ISBN: 0321278542 Dewey Decimal Number: 005.44682 EAN: 9780321278548 ASIN: 0321278542
Publication Date: June 29, 2006 Availability: Usually ships in 1-2 business days
|
| Customer Reviews:
  An in-depth and elegant look at the construction of Mac OS X January 4, 2007 16 out of 24 found this review helpful
This book is an ambitious attempt to cover the modern operating system of Mac OS X in substantial breadth and depth in one volume. This is what has been missing from previous books on programming and Apple's products - detailed serious knowledge of what is under the hood that has long been available for other operating systems such as Solaris. The most important contribution to the book's depth are all of the various programming examples. Although much of the book's content is rather technical, each chapter has sections that should be accessible to non-programmers. Several topics are excluded that are covered in other books such as the TCP/IP stack, since there is no "networking" chapter. This is because the Mac OS X TCP/IP stack is largely a derivative of the FreeBSD stack, which is already well documented. In general, information that is generic across Unix variants and can easily be found in other books is not included. The table of contents is as follows:
Chapter 1, "Origins of Mac OS X," describes the technical history of Mac OS X and the systems it derives from. An unabridged version of Chapter 1, which covers all of Apple's past and present operating systems, is available on this book's accompanying web site. 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," is an eclectic tour of Mac OS X and its important features. It contains brief overviews of various layers that constitute the system. 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," describes the PowerPC architecture, using the PowerPC 970 processor line as a specific example. It also discusses the PowerPC assembly language and calling conventions. 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," explores the firmware environment on a PowerPC-based Macintosh computer. It also examines the sequence of events that happens during booting--up to the point where the Mac OS X kernel gains control. Finally, there is a discussion of an equally interesting firmware environment (EFI) for x86-based Macintosh computers. 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," continues from the point where the kernel takes over from BootX. It looks at the important events that occur during kernel startup, visits various kernel subsystems, sees how they are initialized, sees how the kernel launches the first user-space program, and looks at the details of user-level startup--up to the point where the system is ready for the user. 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," describes the core kernel architecture of Mac OS X. The discussion includes system call families and their implementation, low-level tracing and debugging mechanisms, and special features such as the virtual machine monitor in the PowerPC version of the 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," describes abstractions such as tasks, threads, and processes, the various forms in which they exist in Mac OS X subsystems, and processor scheduling. The discussion includes using various kernel-level and user-level interfaces for manipulating the aforementioned abstractions. 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," describes the Mac OS X memory subsystem's architecture, including discussions of the Mach virtual memory architecture, paging, the unified buffer cache, the working-set detection mechanism, kernel-level and user-level memory allocators, and support for 64-bit addressing. 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," describes various IPC and synchronization mechanisms available in Mac OS X. In particular, it discusses the implementation and usage of Mach IPC. 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 Section 9.7. Mach Exceptions Section 9.8. Signals Section 9.9. Pipes Section 9.10. Named Pipes (Fifos) Section 9.11. File Descriptor Passing Section 9.12. XSI IPC Section 9.13. POSIX IPC Section 9.14. Distributed Objects Section 9.15. Apple Events Section 9.16. Notifications Section 9.17. Core Foundation IPC Section 9.18. Synchronization
Chapter 10, "Extending the Kernel," describes the I/O Kit, the object-oriented driver subsystem in Mac OS X. Section 10.1. A Driver down the Memory Lane Section 10.2. The I/O Kit Section 10.3. DART Section 10.4. Dynamically Extending the Kernel Section 10.5. Communicating with the Kernel Section 10.6. Creating Kernel Extensions Section 10.7. A Programming Tour of the I/O Kit's Functionality Section 10.8. Debugging
Chapter 11, "File Systems," describes the overall file system layer in Mac OS X, including brief discussions of each file system type. The discussion also covers partitioning schemes, disk management, and the Spotlight search technology. Section 11.1. Disks and Partitions Section 11.2. Disk Arbitration Section 11.3. The Implementation of Disk Devices Section 11.4. Disk Images Section 11.5. Files and File Descriptors Section 11.6. The VFS Layer Section 11.7. File System Types Section 11.8. Spotlight Section 11.9. Access Control Lists Section 11.10. The Kauth Authorization Subsystem
Chapter 12, "The HFS Plus File System," describes the internals of the HFS Plus file system. The discussion is aided by the use of a custom file system debugger written for this chapter. Section 12.1. Analysis Tools Section 12.2. Fundamental Concepts Section 12.3. The Structure of an HFS+ Volume Section 12.4. Reserved Areas Section 12.5. The Volume Header Section 12.6. The HFS Wrapper Section 12.7. Special Files Section 12.8. Examining HFS+ Features Section 12.9. Optimizations Section 12.10. Miscellaneous Features Section 12.11. Comparing Mac OS X File Systems Section 12.12. Comparing HFS+ and NTFS
Appendix A, "Mac OS X on x86-Based Macintosh Computers," highlights the key differences between the x86-based and PowerPC-based versions of Mac OS X. Besides this appendix, the book covers the details of several key x86-specific topics, such as EFI, GUID-based partitioning, and Universal Binaries. Most of Mac OS X is architecture-independent, and consequently, the majority of the book is architecture-independent. Section A.1. Hardware Differences Section A.2. Firmware and Booting Section A.3. Partitioning Section A.4. Universal Binaries Section A.5. Rosetta Section A.6. Byte Ordering Section A.7. Miscellaneous Changes
This book will be useful to anyone curious about the composition and working of Mac OS X. Application programmers will develop a better understanding of how their applications interact with the system. System programmers can use the book to construct a better picture of how the core system works. It truly is an elegant piece of work on modern operating system design, even if you are not specifically interested in Mac OS X. However, whoever reads this book should know how to program in C so that they can appreciate all of the code included with the book. I highly recommend it.
  Good for very specific, low-level needs December 20, 2006 26 out of 48 found this review helpful
I bought this book because I'm an experienced programmer, but new to OS X development, and have seen it recommended as _the_ definitive OS X technical reference. And while I would say, yes, it is the definitive technical reference, that needs some qualification. If you need very low-level information about the boot process, the executable loading process, kernel extensions, how things work inside the kernel at a point below most user APIs--and other such topics--then this is the book for you. That level is below where you'll be operating if you're using Cocoa or even POSIX functions. So I'd call this book a must-have if you're working on the kernel itself, writing device drivers, trying to port OS X to new hardware, or like the kind of gritty detail in operating system textbooks. If you're wanting a book about actually programming for OS X, even at the UNIX level, then this isn't it.
  Excellent all around September 3, 2006 12 out of 18 found this review helpful
This is the first Mac programming book that has been released since OS X's debut that is actually worth buying. It is such an amazingly detailed tour of everything that makes the OS tick that I am honestly amazed by the thought of one person writing the entire thing. It's not going to put on a stupid looking cowboy hat and teach you Objective-C or hold your hand through building your first Cocoa project, but it will show you how to actually do something interesting once you progress beyond re-inventing the text editor and to-do list.
If I have anything negative to say about this book it's just that it's incredibly sad that a guy from Google wrote it before anybody at Apple did. It's like nobody in the company even remembers how nice the Inside Macintosh series was anymore.
  An awesome comprehensive programmer's pal August 26, 2006 12 out of 13 found this review helpful
This is a great book. It covers device access, iokit, debuggers, compile flags, processor info, efi/bootx and nvram settings, universal/fat binaries, heritage of Darwin and the mach role, memory management and threading, and more. It's thicker then the bible, but none of it is fluff. Well written easy to follow, and has tons of good examples.
  A remarkable achievement August 8, 2006 13 out of 13 found this review helpful
Amit Singh's Mac OS X Internals book is, for all intents and purposes, a flawless treatment of the subject matter. The breadth of coverage crosses all major kernel subsystems (processes/threads, virtual memory, etc), extentions, a history of Mac OS X, programming/developement environments, hardware architecture (including PPC details) and system firmware. I can't think of anything that Mr. Singh did not cover.
And the depth! Fantastic! A brilliant top-down approach to the individual subjects, getting into all the detail one could want, all the while maintaining a wonderfully readable style. It is not trivial to make such subject matter a pleasure to read, but Mr. Singh has stepped to the task. I feel like I learned something on almost every page!
There are general computer science gems sprinkled throughout the text (the "systems" approach), so for those relatively new to operating systems, microprocessor design features (e.g. caches and cache types), programming constructs (stack management, recursion, etc), virtual memory, etc, you will extend your knowledge in areas beyond that of Mac OS X implementation details. You'll get the bigger picture.
One of my overall favorite operating systems books of all time. Highly recommended for anyone interested in Operating Systems and/or Mac OS X.
|
|
| Best Deals updated 24 x 7 at http://www.dealbro.com |  | |