今夜も Wine で乾杯! - 24本目 (428レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
399: 06/14(土)14:37 ID:2Qahm2TX(1/4) AAS
>>398
レイヤーが違うからCocoaが64bitでしか動かなくても問題ない
ややこしいんだけど、32bit アプリを64bit OSで動かす仕組みと、64bit x86_64バイナリを64bit ARM CPUで
動かす仕組みは別なので、分けて考えないとダメ
超長文になるんだけど、32bit アプリを64bit OSで動かす仕組みを説明するね
LinuxもmacOSも32bit互換機能はカーネルレベル(システムコールレベル)で対応しており、LinuxでもmacOSでも
既存の32bitバイナリがそのまま動作するようになっている(いた)
一方、Windowsは64bit Itaniumで32bit x86を動かす仕組みとしてWOW64を導入した
省12
400: 06/14(土)14:42 ID:2Qahm2TX(2/4) AAS
Wine 9.0以前でx86_64 Linuxで32bit Windowsバイナリを動かす場合やCatalinaより前のmacOSで動かす場合、
32bit版Wineを利用してLinuxやmacOS側の32bit互換機能を使って32bit Windowsバイナリを動かしていた
macOSではCatalina以降OS側の32bit互換機能を削除し、そのままでは32bit版Wineが動かなくなったので、
CodeWeaverはCatalina以降に実装されたLDTを変更するAPIを利用して、自前で64bit版Wineで
32bit Windowsバイナリを動かせるようにした
メモリ空間サイズの違いがあるから1つのプロセス内で32bitと64bitを切り替えるのは困難だけど
CodeWeaverは自前のコンパイラで気合で対応していた(64bitプロセスだけど4GB以下しか使わないよう
スタック等の扱いを変更)
Wine 9.0で導入された新しいWOW64実装を利用する場合、LinuxやmacOSの32bit互換機能ではなく、
WindowsのWOW64と同様の仕組みで32bit Windowsバイナリを動かす
省11
401: 06/14(土)14:46 ID:2Qahm2TX(3/4) AAS
64bit x86_64バイナリを64bit ARM CPUで動かす仕組みはこの辺参照
- ARM Windowsのx86/x64エミュレーションの日本語での解説(32bit x86エミュレーターのxtajit.dllも含む)
www.ffri.jp/assets/files/research/research_papers/Koh_Nakagawa_Appearances_are_deceiving_Japanese.pdf
- Wine側でのARM64ECの実装
gitlab.winehq.org/wine/wine/-/wikis/ARM64EC-Toolchain
402: 06/14(土)14:51 ID:2Qahm2TX(4/4) AAS
この辺ろくな資料がなく自分の独自の考察なので、どこか間違っていたらツッコミお願いしまつ
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.020s