[過去ログ] 今夜も Wine で乾杯! - 23本目 (1002レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
678(2): 2022/04/19(火)10:24 ID:WRR9mRIv(1/2) AAS
>>676
> ii)32bitlinux上のwineの場合、?は仮想8086モードに移行して直接動作(vm86システムコール利用)
Wine4.0でvm86システムコールを利用するコードが削除され、以降はdosboxのCPUエミュレーションで
リアルモードのコードを実行するようになっているはず
dosboxを利用するコードが入ったのはWine1.4
Wineのコードをgrep vm86して確認してみて
> ?は16ビットプロテクトモードに移行して直接動作(modify_ldtシステムコール利用)
自分もこう動いているように思っていたんだけど実際のwineでmodify_ldtを使っている箇所は
外部リンク[c]:source.winehq.org
外部リンク[c]:source.winehq.org
省6
680: 2022/04/20(水)00:54 ID:s2MtO61K(1/2) AAS
>>678
今は32bit環境がないからdosプログラムがどうなっているかはすぐには確認できないけど、Win3.x向けプログラムはWine7.6でもmodify_ldtを使っている(少なくとも俺環では)
strace -f wine <win16app.exe> |& grep modify_ldt
で一杯出る
あと、64bitのlinux環境では32bit用セグメントが常にGDTに用意されていたと思うから、32bit互換モードにはfar jmp一発で移れる(アセンブリで試しに書いたら動いた)
681(1): 2022/04/20(水)03:25 ID:s2MtO61K(2/2) AAS
>>678
外部リンク[h]:source.winehq.org
を見る限り、MacとAndroidの場合に16bit用のLDT関連がobsoleteになるっぽい
確かにMacは今や32bit互換モードも含めてobsoleteだし、Androidはセキュリティのためseccompで多くの不要なシステムコールを禁止している
あと、外部リンク[c]:source.winehq.org
の144行とかにfar jmpがあるから、ここでモード移行かな
これはWindowsのHeaven's Gateと同じ方式
不要になるのは32bitのlinuxのライブラリ(/usr/libとか/usr/lib32にある.so)であって、Wineの32bitライブラリ(syswow64にあるやつ)は必要
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.042s