[過去ログ] 今夜も Wine で乾杯! - 23本目 (1002レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
673
(3): login:Penguin [sage] 2022/04/17(日) 08:51:41.63 ID:iZt/TDlj(1)調 AAS
>>671-672
WineはWindowsと違ってx86_64上でも16bitアプリに対応しているよ
ただしDOSBoxをインストールする必要あり

このSameGameで64bit Windows 10で動かないけどWine 7.0で動くことを確認済み
https://www.vector.co.jp/soft/dl/win31/game/se005521.html

16bitアプリはNT系Windowsではntvdmを利用していて、nvvdmはx86_64のlongモード非対応の
仮想8086モードを使用するので32bit Windowsでしか動作しないけど、Linuxの32bit Wineのwinevdmは
DOSBoxの8086、80286エミュレーション機能を自動的に利用するので16bitアプリも動作する

ちなみにWindowsに32bitアプリとしてWineとwinevdmを移植したものがあって
これを使うと64bit Windowsでも16bitアプリが動かせるはず

https://github.com/otya128/winevdm
674
(1): login:Penguin [sage] 2022/04/18(月) 15:29:10.38 ID:FL8qeWrS(1/2)調 AAS
>>673
そのwinevdmをビルドしてみて?
676
(1): login:Penguin [sage] 2022/04/19(火) 00:09:25.36 ID:6BsM3YVq(1/2)調 AAS
>>673
16ビットと言っても
?DOS用で、リアルモードまたは仮想8086モード向けのコード
?Win3.x用で、16ビットプロテクトモードまたは16ビット互換モード向けのコード
の2種類あって、

i)32bitWindowsの場合、?は仮想8086モードに移行して直接動作(ntvdm)、?は16ビットプロテクトモードに移行して直接動作(wowexec)

ii)32bitlinux上のwineの場合、?は仮想8086モードに移行して直接動作(vm86システムコール利用)、?は16ビットプロテクトモードに移行して直接動作(modify_ldtシステムコール利用)

iii)64bitlinux上のwineの場合、?はDOSBoxのエミュレーション(longモードでは仮想8086モード非対応のため)、?は16ビット互換モードに移行して直接動作(32bitwineからmodify_ldtシステムコール利用)

iv)64bitWindowsの場合、?は非対応(longモードでは仮想8086モード非対応のため)、?も非対応(MSのやる気がないため)

v)64bitWindows上のwinevdmでは、??いずれもエミュレーションまたはCPUの仮想化機能を使う
677: login:Penguin [sage] 2022/04/19(火) 00:19:41.66 ID:6BsM3YVq(2/2)調 AAS
>>671-673
結局、Windows3.1向けの16ビットアプリケーションは64bit環境でも動作するが、
1) 32bitのWineをインストールしなければならない(32bitのWindowsアプリが動けばOK)
2) DOSBoxは不要(エミュレーションなしで動く)
3) modify_ldtシステムコールが禁止されていたりすると動かない
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 4.165s*