Re: 64 bits Kernel and 32 bits process
Re: 64 bits Kernel and 32 bits process
- Subject: Re: 64 bits Kernel and 32 bits process
- From: Stephane Sudre <email@hidden>
- Date: Mon, 17 Jan 2005 18:45:02 +0100
Le 17 janv. 05, à 17:49, Shawn Erickson a écrit :
On Jan 17, 2005, at 8:17 AM, Shawn Erickson wrote:
For info on how Mac OS X supports greater then 4GB of physical RAM
while still maintaining a 32b kernel, etc...
<http://developer.apple.com/technotes/tn/tn2090.html>
This is the one I read and it didn't help.
Does this help a little more?
<http://developer.apple.com/documentation/DeviceDrivers/Conceptual/
IOKitFundamentals/DataMgmt/chapter_9_section_2.html#//apple_ref/doc/
uid/TP0000019/TPXREF108>
Anyway gonna rehash things using my own words...
On current Mac OS X both user space and kernel space work with virtual
addresses that are 32b in size. Going forward the kernel will continue
to work with 32b virtual addresses (user space will gain the _option_
for 64b address spaces).
Various method exist that allow you share / map memory between the
kernel memory space and the various instances user memory space. It
depends on what type of driver and in which part of the kernel you are
working but assuming IOKit you would use IOMemoryDescriptor and/or
friends to manage this for you.
Now the VM system on Mac OS X has the ability to address physical
memory that is larger then 32b (not sure if it truly support 64b or
not of physical addressing, could be 34b, 48b, etc.) when running on
systems that support more then 4GB of RAM (PowerMac / Xserve G5s at
this time). This capability however is basically transparent and
hidden from you even when in the kernel. In other words you never
(should never need to) see the true physical address but instead you
work with intermediate physical addresses (I/O address as it is
called) that gets mapped by hardware (DART) as needed to the true
physical address.
In other words don't worry about it much just make sure to use the
supported memory mapping methods when you do your DMA, user/kernel
mapping, etc. appropriate for the type of driver you are working on.
Those methods will take care of what is needed for you.
Ok.
Thanks for both latest answers from Justin and you.
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Darwin-kernel mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden