0

私はアカデミックプロジェクトに取り組んでいる学生です-'KVMをMACOSXに移植する'。KVMやMACOSXなどについてたくさんの文献を集めましたが、どうすればいいのかまだわかりません。移植プロセスのためにすべき100のことをリストしているAppleのDeveloperWebサイトをチェックしましたが、UNIXを中心に持つMacが、実行するためだけにソースコードに多くの変更を加える必要がある理由がわかりません。また、Fink(およびmacports)は、任意のUnixアプリケーションをMac OS Xに移植できるツールであると聞きました。それは本当ですか?FinkのWebサイトを確認しましたが、移植用のツールとしてFinkを使用できることを示唆する詳細は見つかりませんでした。私が見るのはFink(そしてmacportsも)だけです)は、いくつかのLinuxアプリケーションを備え、Macでそれらのアプリケーションのみを実行するパッケージ管理システムです。KVMはリストにありません。だから、再び私は混乱しています。私に提案してください、それについてどうやって行くのですか?たった一歩。Appleコミュニティが提案する方法は、唯一の方法ですか?助けてください。

4

2 に答える 2

1

あなたは間違った方向を見ていると思います。

KVM アプリケーションではありません。KVM の標準ユーザー インターフェイスであるQEMUは、ほとんどがフロントエンドです。KVM の主要部分は、Linux カーネル内にあります。OS X 用のカーネル コードと同等のものを提供する必要があります。

これは、アプリケーションの移植とはまったく異なります。オペレーティング システムのカーネル内に POSIX のような標準はありません。同じカーネルの異なるバージョン間の内部インターフェイスの互換性さえも保証されていません。OS X はMach ベースのカーネルを使用するため、Linux と OS X カーネルは基本的な設計においても完全に異なります。

両方のカーネルがどのように機能するかを理解し、必要な変更を見つける必要があります。2 つのカーネルの違いによっては、KVM の完全な再実装が必要になる場合もあります。また、仮想化が最新の CPU にどのように実装されているかを具体的に理解している必要があります。また、アセンブリやさまざまな低レベルのコンピューターの仕様に関する知識が必要です。

于 2013-02-10T20:23:16.943 に答える
0

探している機能を備えたものが見つかった場合、それは KVM のポートではありません。

抽象化するレベルは、Mac には存在しません。最下層はすべて異なります...

(概算)

lintel ->
BIOS : BOOTLOADER : LINUX_KERNEL : INIT

Macintel->
UEFI : MACH_MICROKERNEL : BSD_STUFF : LAUNCHD

どちらもPOSIXなので、より多くの基盤が同じであると期待するかもしれませんが、実際にはすべて異なります...

于 2013-02-07T16:07:47.623 に答える