• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: 64 bits Kernel and 32 bits process
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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


References: 
 >64 bits Kernel and 32 bits process (From: Stéphane Sudre <email@hidden>)
 >Re: 64 bits Kernel and 32 bits process (From: Shawn Erickson <email@hidden>)
 >Re: 64 bits Kernel and 32 bits process (From: Stéphane Sudre <email@hidden>)
 >Re: 64 bits Kernel and 32 bits process (From: Shawn Erickson <email@hidden>)
 >Re: 64 bits Kernel and 32 bits process (From: Shawn Erickson <email@hidden>)

  • Prev by Date: Re: 64 bits Kernel and 32 bits process
  • Next by Date: Etherspoofing patch
  • Previous by thread: Re: 64 bits Kernel and 32 bits process
  • Next by thread: Re: 64 bits Kernel and 32 bits process
  • Index(es):
    • Date
    • Thread