|
|
< Previous PageNext Page > |
The goal of this document is to describe the various major components of Mac OS X at a conceptual level, then provide more detailed programming information for developers working in each major area. It is divided into several parts.
The first part is a kernel programming overview, which discusses programming guidelines that apply to all aspects of kernel programming. This includes issues such as security, SMP safety, style, performance, and the Mac OS X kernel architecture as a whole. This part contains the chapters “Keep Out”, “Kernel Architecture Overview”, “Security Considerations”, “Performance Considerations”, and “Kernel Programming Style”.
The next part describes Mach and the bootstrap task, including information about IPC, bootstrap contexts, ports and port rights, and so on. This includes the chapters “Mach Overview”, “Memory and Virtual Memory”, “Mach Scheduling and Thread Interfaces”, and “Bootstrap Contexts”.
The third part describes the I/O Kit and BSD. The I/O Kit is described at only a high level, since it is primarily of interest to driver developers. The BSD subsystem is covered in more detail, including descriptions of BSD networking and file systems. This includes the chapters “I/O Kit Overview”, “BSD Overview”, “File Systems Overview”, and “Network Architecture”.
The fourth part describes kernel services, including boundary crossings, synchronization, queues, clocks, timers, shutdown hooks, and boot option handling. This includes the chapters “Boundary Crossings”, “Synchronization Primitives”, and “Miscellaneous Kernel Services”.
The fifth part explains how to build and debug the kernel and kernel extensions. This includes the chapters “Kernel Extension Overview” and “Building and Debugging Kernels”.
Each part begins with an overview chapter or chapters, followed by chapters that address particular areas of interest.
The document ends with a glossary of terms used throughout the preceding chapters as well as a bibliography which provides numerous pointers to other reference materials.
Glossary terms are highlighted in bold when first used. While most terms are defined when they first appear, the definitions are all in the glossary for convenience. If a term seems familiar, it probably means what you think it does. If it’s unfamiliar, check the glossary. In any case, all readers may want to skim through the glossary, in case there are subtle differences between Mac OS X usage and that of other operating systems.
The goal of this document is very broad, providing a firm grounding in the fundamentals of Mac OS X kernel programming for developers from many backgrounds. Due to the complex nature of kernel programming and limitations on the length of this document, however, it is not always possible to provide introductory material for developers who do not have at least some background in their area of interest. It is also not possible to cover every detail of certain parts of the kernel. If you run into problems, you should join the appropriate Darwin discussion list and ask questions. You can find the lists at http://www.lists.apple.com/.
For this reason, the bibliography contains high-level references that should help familiarize you with some of the basic concepts that you need to understand fully the material in this document.
This document is, to a degree, a reference document. The introductory sections should be easily read, and we recommend that you do so in order to gain a general understanding of each topic. Likewise, the first part of each chapter, and in many cases, of sections within chapters, will be tailored to providing a general understanding of individual topics. However, you should not plan to read this document cover to cover, but rather, take note of topics of interest so that you can refer back to them when the need arises.
< Previous PageNext Page > |
Last updated: 2006-11-07
|
Get information on Apple products.
Visit the Apple Store online or at retail locations. 1-800-MY-APPLE Copyright © 2007 Apple Inc. All rights reserved. | Terms of use | Privacy Notice |