Wine は、ユーザーが他の OS 上で Windows アプリを実行できるようにする Windows 互換レイヤーです。 Android 用 Wine が v5.0 になりました -- ぜひチェックしてください!
Android アプリのエコシステムは、Android が存在してから何年にもわたって着実に進化してきました。これは、ほとんどの人にとって主要なコンピュータ インタラクションとしてモバイルが着実に採用されたことによって促進されています。 多くのユーザーはモバイルのみのライフスタイルに惹かれていますが、それはモバイル上のアプリとアプリのエコシステムがユーザーの特定のニーズを満たすことができたからです。 しかし、デスクトップにアクセスできないのにデスクトップ アプリケーションが必要になったら、どうしますか? ここで、ユーザーがさまざまな OS 上で本格的な Windows アプリケーションを実行できるようにする Windows 互換性レイヤーである Wine が登場します。 Android 用 Wine には、 v5.0になりました、チームからの 1 年分の開発努力を照合します。
Wine は、Windows 用の無料のオープンソース互換性レイヤーであり、Windows 用に開発されたコンピューター プログラムを他のオペレーティング システムでも実行できるようにすることを目的としています。 Wine for Android が Android に Wine をもたらす、 明らかに。 Wine はエミュレータではないので (実際には名前の再帰的な語源です)、実行できるのは アプリケーションのアーキテクチャ固有のバージョン -- Android 用 Wine の ARM バージョンは ARM アプリケーションのみを実行します。 x86ではありません。
Wine 5.0 の安定版リリースのハイライトには、マルチモニターのサポートと Vulkan 1.1 のサポートが含まれます。 アップデートの完全な変更ログは次のとおりです。
Wine 5.0 変更履歴:
- PEモジュール:
- MinGW コンパイラが使用可能な場合、ほとんどのモジュールは ELF ではなく PE 形式 (Portable Executable、Windows バイナリ形式) でビルドされます。 これは、システム モジュールのディスク上とメモリ内の内容が同一であることを確認するさまざまなコピー保護スキームに役立ちます。
- 実際の PE バイナリは、偽の DLL ファイルの代わりに Wine プレフィックスにコピーされます。 これにより、追加のディスク領域を犠牲にして、プレフィックスが実際の Windows インストールに似たものになります。
- PE に変換されたモジュールは、標準のワイド文字 C 関数だけでなく、L"abc" などのワイド文字文字定数も使用できます。 これにより、コードが読みやすくなります。
- まだすべてのモジュールが PE に変換されているわけではありません。 これは進行中のプロセスであり、Wine 5.x 開発シリーズの間も継続されます。
- Wine C ランタイムは、MinGW でコンパイルされたバイナリへのリンクをサポートするように更新されました。 DLL をビルドするときに、MinGW ランタイムの代わりにデフォルトで使用されます。
- グラフィック:
- 動的な構成変更を含め、複数のディスプレイ アダプターとモニターが適切にサポートされます。
- Vulkan ドライバーは、Vulkan 仕様のバージョン 1.1.126 までをサポートします。
- WindowsCodecs ライブラリは、パレット インデックス形式を含む、より多くのビットマップ形式を変換できます。
- ダイレクト 3D:
- フルスクリーンの Direct3D アプリケーションはスクリーンセーバーを禁止します。
- DXGI スワップチェーンは、対応するウィンドウが最小化されたときにアプリケーションに通知します。 これにより通常、アプリケーションは最小化されているときに CPU 使用率を削減できますが、場合によってはアプリケーション ウィンドウを再度復元できるようにするために必要になります。
- 標準の Alt+Enter の組み合わせを使用したフルスクリーン モードとウィンドウ モード間の切り替えは、DXGI アプリケーションに実装されています。
- Direct3D 12 アプリケーションには次の機能が実装されています。
- 全画面表示とウィンドウ表示を切り替えます。
- 表示モードを変更します。
- スケールされたプレゼント。
- 交換間隔。 これらの機能は、以前のバージョンの Direct3D API にすでに実装されていました。
- さまざまなエッジケースの処理が改善されました。 特に:
- アルファおよびステンシル テストの基準値が範囲外です。
- 3D サンプラーを使用した 2D リソースのサンプリング、またはその逆。
- マッピングされたテクスチャとバッファを使用した描画。
- 無効な DirectDraw クリッパー オブジェクトの使用。
- デスクトップ ウィンドウなど、無効な Windows 上で Direct3D デバイスを作成する。
- 最小 Z が最大 Z 以上であるビューポート。
- リソースは、シェーダ リソース ビューとレンダー ターゲットまたは深度ステンシル ビューの両方を通じて同時にバインドされます。
- アルファコンポーネントを含むフォーマットと含まないフォーマットの間のブリット。 適切に動作するアプリケーションはこのようなエッジ ケースに依存しないため、通常はそれぞれ 1 つまたは 2 つのアプリケーションにのみ影響します。 それでもかなりの数があります。
- Direct3D 8 および 9 テクスチャのアップロードでは、ダーティ テクスチャ領域がより正確に追跡されます。
- S3TC 圧縮 3D テクスチャのアップロードに必要なアドレス空間は少なくなります。 3D テクスチャはサイズが大きくなる可能性があり、32 ビット アプリケーションではアドレス空間の枯渇が懸念されるため、S3TC 圧縮された 3D テクスチャは 1 回のアップロードではなくスライスごとにアップロードされます。
- ID3D11Multithread インターフェイスが実装されています。
- 古い DirectDraw アプリケーションに対するさまざまな照明計算の修正と改善が行われました。
- スワップチェーン間のブリットの限定的なサポートが実装されています。
- より多くのシェーダー リフレクション API が実装されています。
- wined3d CPU ブリッターは、圧縮されたソース リソースを処理できます。 圧縮された宛先リソースのサポートは、以前のリリースですでに実装されていました。
- Direct3D グラフィックス カード データベースは、より多くのグラフィックス カードを認識します。
- 新しい HKEY_CURRENT_USER\Software\Wine\Direct3D レジストリ キー:
- 「shader_backend」(REG_SZ) 使用するシェーダー バックエンド。 可能な値は、GLSL の場合は「glsl」(デフォルト)、ARB 頂点/フラグメント プログラムの場合は「arb」、シェーダ サポートを無効にする場合は「none」です。
- "strict_shader_math" (REG_DWORD) Direct3D シェーダーのより厳密な変換を有効 (0x1) または無効 (0x0、デフォルト) にします。パフォーマンスが犠牲になる可能性があります。 これは現在、デフォルトの GLSL シェーダ バックエンドと独自の NVIDIA ドライバを組み合わせた場合にのみ違いが生じます。
- 非推奨の HKEY_CURRENT_USER\Software\Wine\Direct3D レジストリ キー:
- 「UseGLSL」これは、上記の「shader_backend」設定に置き換えられました。
- D3DX :
- S3TC 圧縮を使用したテクスチャ圧縮のサポートが実装されています。
- さまざまな操作、たとえば マッピング不可能なサーフェス上のテクスチャ塗りつぶしがより正確に実装されるようになりました。 以前の実装は、マッピング制限を強制しない、基礎となる Direct3D 実装に依存していました。
- エフェクト フレームワークにさまざまな改善と修正が加えられました。
- カーネル:
- 以前 Kernel32 にあった機能のほとんどは、最近の Windows バージョンのアーキテクチャに従うために KernelBase に移動されました。
- 間違った 32/64 ビットのライブラリは、検索パスで見つかった場合は無視され、パスのさらに先に見つかった場合に正しいライブラリをロードできるようにします。
- カーネル オブジェクトは、カーネル側からオブジェクトを操作することを想定しているデバイス ドライバーに対してより適切にエミュレートされます。
- スピン ロック、高速ミューテックス、削除ロック、リソース変数などのカーネル レベルの同期オブジェクトが実装されています。
- システムのバッテリー状態がアプリケーションに適切に報告されます。
- ユーザーインターフェース:
- 最小化されたウィンドウは、古い Windows 3.1 スタイルのアイコンの代わりにタイトル バーを使用して表示されます。
- 新しいボタン スタイルの分割ボタンとコマンド リンクが実装されています。
- 編集コントロールは、CJK フォントに対してもマージンを正しく設定します。
- デスクトップの統合:
- 対応する Unix ディレクトリへのシンボリック リンクが、「ダウンロード」フォルダと「テンプレート」フォルダに対して作成されます。
- 入力デバイス:
- プラグ アンド プレイ デバイス ドライバーをインストールし、起動時にロードできます。
- ハット スイッチ、ホイール、ガス、ブレーキ コントロールの適切なサポートなど、ゲーム コントローラーのサポートが強化されています。
- Linux バージョン 2.2 より前の古いジョイスティック API はサポートされなくなりました。
- 。ネット:
- Mono エンジンは、Windows Presentation Foundation (WPF) フレームワークの一部を含むバージョン 4.9.4 に更新されました。
- Gecko および Mono アドオンは共有インストールをサポートしており、ファイルはすべての新しいプレフィックスにコピーされるのではなく、/usr/share/wine の下のグローバルな場所から直接使用されます。
- インターネットとネットワーク:
- Gecko エンジンは、最新のツールチェーンをサポートするために更新されました。
- 多数の新しい HTML API が実装されています。
- MSHTML はいくつかの SVG 要素をサポートしています。
- エラー オブジェクトと例外の伝播は VBScript でサポートされています。
- 多数の VBScript 組み込み関数が実装されています。
- JScript EcmaScript 準拠モードが拡張され、より多くの機能がサポートされるようになりました。
- JScript および VBScript スクリプト オブジェクトは、型情報インターフェイスを公開します。
- HTTP プロキシ設定は DHCP 経由で取得できます。
- パスポート HTTP リダイレクトがサポートされています。
- HTTP サービスと対応するクライアント側ライブラリ (HTTPAPI) は部分的に実装されています。
- 暗号化:
- GnuTLS を使用する場合、ECC (楕円曲線) キーがサポートされます。
- PFX BLOB からのキーと証明書のインポートが実装されています。
- PBKDF2 キー導出アルゴリズムがサポートされています。
- テキストとフォント:
- OpenType の位置決め機能は DirectWrite でサポートされており、カーニングを含むラテン文字に対してデフォルトで有効になっています。
- さまざまなデータ テーブルを使用する前に検証することにより、フォント データへのアクセスがより安全になります。
- DirectWrite インターフェイスは最新の SDK に更新され、最新の API 追加機能のいくつかが実装されています。
- オーディオビデオ:
- XAudio2 ライブラリは、互換性を向上させるために、外部 FAudio ライブラリを使用するように再実装されています。
- Media Foundation ライブラリには次のものが含まれます。
- 組み込みおよびユーザーの非同期ワーク キューのサポート。
- 項目の優先順位のサポートにより、定期的なコールバック、待機中の作業項目、スケジュールされた作業項目、および通常の作業項目を送信する機能。
- メディア イベント キューのサポート。
- メディア タイプ オブジェクト、ストリームおよびプレゼンテーション記述子、オブジェクト属性、バイト ストリーム オブジェクト、サンプルおよびバッファを処理するためのさまざまなコア API。
- 初期のソースリゾルバーの実装。
- ソース リーダー API の初期実装。
- サンプルグラバーオブジェクトの実装。
- トポロジ オブジェクトを構築するためのコア サポート。
- 組み込みのプレゼンテーション クロックの実装、メディア セッション機能の実装を開始しました。
- ビデオ キャプチャ フィルタは、非推奨の v4l1 API の代わりに v4l2 を使用するように移植され、v4l1 をサポートしていない一部のカメラを使用できるようになりました。
- mmap() を使用した YUV から RGB への変換と v4l2 デバイスからの読み取りのサポートは削除されました。 これらの両方を libv4l2 に依存するようになりました。
- 組み込みの AVI、MPEG-I、および WAVE デコーダは削除されました。 現在、このようなメディア ファイルをデコードするには、GStreamer または Mac QuickTime Toolkit に依存しています。
- さらにいくつかの VMR7 構成 API が実装されています。
- サウンド ドライバーは、チャンネルごとの音量調整をサポートしています。
- 国際化:
- Unicode 文字テーブルは、Unicode 標準のバージョン 12.1.0 に基づいています。
- Unicode 正規化が実装されています。
- 地理的地域 ID は、現在のロケールに基づいてレジストリに自動的に設定されます。 必要に応じて、HKEY_CURRENT_USER\Control Panel\International\Geo で変更できます。
- シンハラ語とアストゥリアス語のロケールがサポートされています。
- コードページ 28601 (ラテン語/タイ語) がサポートされています。
- RPC/COM:
- typelib マーシャラーは、複雑な構造体と配列をサポートします。
- Windows スクリプト ランタイム ライブラリの初期実装があります。
- Microsoft ActiveX Data Objects (ADO) ライブラリの初期実装があります。
- インストーラ:
- Microsoft インストーラー (MSI) パッチ ファイルがサポートされています。
- WUSA ツール (Windows Update スタンドアロン インストーラー) は、.MSU 更新ファイルのインストールをサポートしています。
- ARM プラットフォーム:
- 例外の巻き戻しは、libunwind ライブラリを使用して ARM64 用に実装されます。
- OLE スタブレス プロキシは ARM64 でサポートされています。
- 開発ツール / Winelib:
- Visual Studio リモート デバッガーを使用して、Wine で実行されているアプリケーションをデバッグできます。
- デバッグ エンジン ライブラリ (DBGENG) が部分的に実装されています。
- Windows ターゲット用にビルドされたバイナリは libwine ライブラリに依存しなくなり、追加の依存関係なしで Windows 上で実行できるようになります。 libwine ライブラリは Windows 用にまったく構築されなくなりました。
- リソース コンパイラと IDL コンパイラは、クロスコンパイル環境でヘッダー ファイルを検索できるようにする「--sysroot」オプションをサポートしています。
- Winegcc は、クロスコンパイラとして、またはカスタム ツールチェーンでの使用を容易にするオプション「--target」、「--wine-objdir」、「--winebuild」、「-fuse-ld」をサポートしています。
- wine/unicode.h ヘッダーは、最終的には削除され、標準の C ランタイム ワイド キャラクタ関数に置き換えられるため、アプリケーションでは使用できなくなります。
- インフラストラクチャの構築:
- MinGW が利用可能な場合、テスト バイナリは PE 形式でビルドされるため、同じテスト バイナリを Wine と Windows の両方で実行できます。 「crosstest」make ターゲットは必要なくなり、サポートされなくなりました。
- 「fastcall」呼び出し規則は仕様ファイルでサポートされています。 Windows ビルドでは正しい名前マングリングが使用されます。
- 「-import」エントリ ポイント フラグは仕様ファイルでサポートされており、インポート サンク用にホットパッチ コード プレフィックスを生成する必要がある関数をマークします。
- Winebuild は、PE バイナリに特別な署名を追加して Wine ビルトインとしてマークするための「--builtin」オプションをサポートしています。
- 内蔵アプリケーション:
- CHCP ツールが実装されています。 コンソールのコードページを設定できます。
- MSIDB ツールが実装されています。 MSI データベースを操作できるようになります。
- パフォーマンスの向上:
- さまざまな時間関数は、利用可能な場合はより高性能のシステム クロックを使用して、多くのゲームのレンダリング ループのオーバーヘッドを削減します。
- ファイル検索では、検索対象のディレクトリで ext4 ファイルシステムの大文字と小文字の折りたたみサポートが有効になっている場合、これを利用します。
- データなしスタイルのリストボックス (LBS_NODATA) は、多数の項目に対してパフォーマンスが向上します。
- スリム リーダー/ライター ロック、キー付きイベント、および条件変数は、Linux 上で futex を使用して、ワインサーバーの往復を回避します。
- 新しい外部依存関係:
- MinGW-w64 クロスコンパイラーは、PE 形式でモジュールを構築するために使用されます。
- FAudio ライブラリは、XAudio2 の実装に使用されます。
- Inotify ライブラリは、BSD プラットフォームでのファイル変更通知に使用されます。
- Unwind ライブラリは、ARM64 での例外処理に使用されます。
- Video4Linux バージョン 2 ライブラリがバージョン 1 の代わりに使用されます。
続きを読む
ソース: ワイン本社
ストーリー経由: アンドロイド警察