Current versions of the Mac OS provide a single address space that is used by all software. Future versions of Mac OS may provide memory protection and separate address spaces for different software entities. The services described in this chapter are designed to be compatible with multiple address spaces, and drivers using these services may eventually run in a multiple address space environment.
One concept that applies to multiple address spaces is that of static logical mapping, the ability to address client buffers logically regardless of the current address space. Static logical mapping is important because drivers in a multiple address space environment cannot depend on the client buffer's logical address to remain directly accessible for the duration of an I/O operation.
Another concept that applies to multiple address spaces is that of memory protection, the ability to prevent inadvertent access to data. Drivers must respect the protection of client buffers, even though they may access the buffers through means such as hardware direct memory access.
Restrictions on the execution contexts in which memory allocation and deallocation services can be used are given in Service Limitations.