Summary
In this chapter, we have discussed:
- Types of memory addresses in use by the kernel. The kernel typically works with virtual addresses both for its own threads as well as those of user space tasks. Physical memory addresses are used between the CPU and memory, as well as hardware devices.
- The significance of 32-bit and 64-bit memory addressing and modes.
- How memory allocation is performed across the different kernel subsystems, Mach, BSD, and I/O Kit. In I/O Kit, the preferred mechanism is to use the
IOMalloc*()
functions or theIOBufferMemoryDescriptor
. - How the
IOMemoryDescriptor
and related subclasses are used by many parts of the I/O Kit to manage and describe memory buffers. TheIOBufferMemoryDescriptor
is one such subclass, which ...
Get OS X and iOS Kernel Programming now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.