Mac OS X: Getting Started with USB
In the simplest form, the Mac OS X architecture can be divided into two parts: user space and kernel space. The diagram commonly used to describe the Mac OS X architecture is shown in Figure 2 . The lower block, in Figure 2 , represents the kernel. All code that runs in the kernel shares the kernel’s address space. Everything else outside of the kernel is referred to as user space. Applications built with the Carbon, Cocoa, Java or BSD application environments get their own address space at runtime, but by convention it’s all referred to as user space. Common services used by the application environments, including the Event Manger and the Quartz imaging and windowing system, are also in user space. The Mac OS X Kernel is based upon Mach and FreeBSD and is available via open source licensing through the Darwin project (http://www.apple.com/darwin). In other operating systems it’s common to refer to just the Mach Kernel as the kernel. However, Apple refers to everything you see in the lower block as the Kernel. Inside the kernel is the I/O Kit – Apple’s object-oriented framework for developing KEXTs (a.k.a, Kernel Extensions or kernel drivers). The I/O Kit is based upon a restricted form of C++ that provides an inheritance model to make writing drivers easier. The I/O Kit enables the rapid development of device drivers by implementing abstractions common to all drivers as well as abstractions that are specific to certain types of drivers (such as USB and FireWire). The I/O Kit framework provides mechanisms to handle I/O synchronization, memory management, as well as object runtime and life cycle support. The kernels used in operating systems such as Microsoft NT, Linux and most Unix derivations are single threaded, which simplifies kernel driver devel…
Download Mac OS X: Getting Started with USB.Pdf
December 16, 2009 | Posted by admin
Categories:
Tags: