読者です 読者をやめる 読者になる 読者になる

mach_kernel はドライバ隔離用プロセス?

なぜ Intel Mac のドライバには 64-bit 化の問題が起きなかったのか? - 「カーネル空間が 32bit だ」とはどこにも書いてないような。たぶん「プロセス」という形でデバドラをカーネル空間から隔離しているから、既存の 32bit のドライバがそのまま動くようになっているという話のように見えるけど、MacOS X のことは知らないので眉唾。

なるほど.「mach_kernel プロセスは 32-bit に据え置いた」と書いた方が良かったんでしょうかね.って私も Mac OS X のことは知らないので基本的にうちの日記の Mac ネタは眉唾ものということで.
公式情報としてはとりあえずこの辺?

Device Driver Changes

The kernel (including the I/O Kit) remains a 32-bit environment in Mac OS X. Most device drivers (those written using I/O Kit families) work unchanged when used in conjunction with 64-bit processes. However, user clients and device drivers that use DMA must be updated to work correctly.

Device drivers that talk directly to a user-space application (such as user clients and the I/O Kit families themselves) need to be changed in order to communicate with 64-bit applications. These changes must be made to support 64-bit applications on both 64-bit PowerPC and Intel-based Macintosh computers. For more about user clients and device interfaces,you should read I/O Kit Fundamentals.

On Intel-based Macintosh computers with 64-bit Intel processors, device drivers that support direct memory access (DMA) must be updated to use the IODMACommand class beginning with Mac OS X v10.4.7. Device drivers on PowerPC may be updated to use this class, but doing so is not required.

The IODMACommand class provides bounce buffers for devices that do not support 64-bit physical addressing, and uses direct mapping for devices that do. For more information, see the documentation for IODMACommand.

しかし Mac OS X はどこをどう調べたらどれぐらいの信頼度の情報が手にはいるのかよくわかってなくて調べるの大変.ついでに現物が手元にないため,確かめながら書くってのができないのも怖いところ.

ちょっと気になったので実験