64-Bit Kernel
Mac OS X v10.6 includes a 64-bit kernel. Although Mac OS X allows a 32-bit kernel to run 64-bit applications, a 64-bit kernel provides several benefits:
The kernel can better support large memory configurations.
Many kernel data structures such as the page table get larger as physical RAM increases. When using a 32-bit kernel with more than 32 GB of physical RAM, these data structures can consume an unmanageably large portion of the 4 GB kernel address space.
By moving to a 64-bit kernel, the 4 GB kernel address space limitation is eliminated, and thus these data structures can grow as needed.
The maximum size of the buffer cache is increased, potentially improving I/O performance.
A 32-bit kernel is limited in its ability to cache disk accesses because of the 4 GB kernel address space limit.
With a 64-bit kernel, the buffer cache can grow as needed to maximize the use of otherwise unused RAM.
Performance is improved when working with specialized networking hardware that emulates memory mapping across a wire or with multiple video cards containing over 2 GB of video RAM.
With a 32-bit kernel, if the combined physical address space (video RAM, for example) of all of your devices exceeds about 1.5 GB, it is impossible to map them fully into a 32-bit kernel address space at the same time. To work around this limitation, driver writers must map smaller apertures of that physical address space into the kernels address space.
When such a driver needs to write to or read from an unmapped address on the device, it must unmap an existing region, then map in the new region. Depending on how the mappings are managed, this extra process may cause a performance penalty, particularly for clients that exhibit low locality of reference.
With a 64-bit kernel, the entire device can be mapped into the kernels address space at once. This improves performance by removing the extra overhead of mapping and unmapping regions of memory. It also removes the burden of managing these mappings in your driver code, thus making the drivers simpler and less likely to generate panics by unmapping the wrong memory at the wrong time.