「第2回エンペディア大賞」が2月いっぱい開催中です。2024年に作成された記事の中から、お気に入りの記事に投票しましょう!
Wine
ナビゲーションに移動
検索に移動
Wine | |
---|---|
初版 | 1993年7月4日 |
リポジトリ | https://gitlab.winehq.org/wine/wine |
プログラミング言語 | C言語 |
ライセンス | GNU LGPL |
対応OS | GNU/Linux,FreeBSD,ReactOS |
種別 | 互換性レイヤー |
公式サイト | https://winehq.org |
テンプレートを表示 |
Wine(ワイン)は、GNU/LinuxなどでWindowsソフトウェアを動作させるための互換性レイヤー。Wineはエミュレータや仮想マシンではない。Wineは「Wine Is Not an Emulator」の頭字語である。[1]
簡単な説明[編集]
- 例えば、長らく日本語だけで生きてきた日本人が英語を理解するのは困難を極める。
- 似たような感じで、GNU/LinuxとWindowsは仕組みが異なり、GNU/LinuxにとってWindowsソフトウェアは「何を言っているのか分からない」わけで、そのままでは実行できない。
- (逆もしかり、GNU/LinuxソフトウェアはそのままではWindowsで実行できない。Windows Subsystem for LinuxやVirtualBox等を用いる)
- Wineはこれに対し、Windowsソフトウェアが言っていることをGNU/Linuxにも分かるように「翻訳」する機能を提供する。
概要[編集]
- 一般的に、アプリケーションはOSのAPIに対して、アプリがやって欲しいことを指示し、OSはその指示どおりに機能を提供している。
- (「API」とは上記の例えで言う言語のようなもの。WindowsはWindowsAPIという言語しか理解できず、GNU/LinuxはLinuxAPIという言語しか理解できない)
- WineはWindowsAPIをLinuxAPIへ変換する機能を持つ(互換性レイヤー)。WindowsアプリがWineに対してWindowsAPIで話しかけると、WineはWindowsAPIをLinuxAPIへ変換し、GNU/Linuxへ伝える。自分が理解できるAPIで伝えられたGNU/Linuxは、晴れてWindowsアプリを実行できるというわけ。
- 似たような機能を有するものにエミュレーターおよび仮想マシンがある。両者とも「ハードウェアの真似をするソフトウェア」。
- 前者はある特定のCPUを真似する(少し古いゲーム機のエミュレーターを指す場合が多い)、後者はパソコン或いはサーバーのハードウェアを丸々再現する、という違いがある。
- ハードウェアの真似はなかなか重たい処理であり、さらに仮想マシンの場合はハードウェア、そしてその仮想マシンの上にインストールされているWindowsの分まで処理しなければならず、往々にして動きはかなり重たくなる。
- 一方で、Wineはハードウェアの真似をしているわけではなく、強いて言えばWindowsOSの真似をしている。その仕組み上、特に仮想マシンと比べて動作が軽い。
- ただし、言語の変換という処理が挟まる以上、同じパソコンで同じアプリケーションを動かす場合、WindowsよりGNU/Linux+Wineが少しだけ重たくなるのは原理上避けられない。一方で小さい構成のGNU/Linuxは往々にして素のWindowsより元々動作が軽い場合が多く、アプリによってはむしろWindowsよりGNU/Linux+Wineのほうがキビキビと動作する場面も。
- Windowsエミュレーターに特化したOSとしてReact OSがある。ReactOSはWineの技術を大いに参考にしており、ReactOS開発で得られた知見がWineへフィードバックされている。
- なお、FreeBSDでも使うことができる。
ゆっくり、しかし確実な発展[編集]
- 真似する元のWindowsはプロプライエタリであり、詳細な仕様はマイクロソフトにしか分からない。
- そのような秘密に包まれたWindowsの真似をするのは簡単なことではなく、Wineの開発初期段階から長い間、ごく単純なソフトが不完全ながら動作する程度、といった時期が続いた。
- 時代が進み、貢献者が増え、支援する企業も現れ、ゲームやMicrosoft Officeが徐々に動き始める。DirectX相当の機能も実現し、3Dゲームも問題なく動作するようになってきている(DirectX関連APIリクエストをOpenGLやVulkanへ受け渡している)。
- 現在ではハードウェアに直接アクセスするようなもの、デジタル制限管理があるといった難しいものでもない限り、かなりの数のWindowsアプリがほとんど問題なく動作する。
- オンラインゲームなど、アンチチートやデジタル制限管理がかかっているものへの対応は難しいため、確認が必要である。
- また、Microsoft Storeでしか提供されていないソフトウェア[注 2]は使用できないため、仮想マシンを使う必要がある。
Wineツール類と使い方[編集]
- wineコマンド
- 確実に使うには「wine」コマンドにWindows実行ファイル(exe)のパスを与えて使う。
- 例)wine ~/winfiles/winapp.exe
- なお、wineコマンド内にはWindows定番コマンドがあらかじめ含まれている。
- 例)wine cmd (コマンドプロンプトを起動する)
- 例)wine explorer(エクスプローラーを起動する)
- 例)wine notepad (メモ帳を起動する)
- 例)wine regedit (レジストリエディタを起動する)
- 環境によってはWindows実行ファイルの拡張子「exe」がwineコマンドに関連付けられている場合があるが、必ずしもそうとは限らず(初版作成者のLinux Mint環境では、exeファイルをダブルクリックすると何故か「圧縮アーカイブ」として圧縮・解凍ユーティリティが起動する…)、引数つきでwineコマンドを使うほうが確実。
- winecfg
- Wine全般の設定を行う。Wineは規定ではWindows 10を真似るように動作するが、古いWindowsアプリは「最新のWindowsでは逆にバグる」場合が少なくなく、その場合はwinecfgにてWindows 7またはWindows XPを真似るよう設定変更することで、うまく動作する場合がある。
- (非公式)WineTricks
- Wine公式ツールには含まれないものの、Wineを使う上で定番となっている支援スクリプト群。Wineだけでは足りないものをインターネット上からダウンロード・インストールしてくれる。日本語フォントが文字化けしている場合、WineTricks経由で対策フォントを導入することで正常表示できる場合がある。[4]VisualC++ランタイムDLLや.NET Frameworkなども導入可能だが、マイクロソフト公式のランタイムはWindows正規ライセンスを必要とするものがあり、使用にあたってはライセンス違反にならないよう自身で注意が必要。
SteamにおけるProton[編集]
- ここ最近、ゲームのダウンロード販売サイトSteamを運営するValveが、Wineからスピンオフした「Proton」を開発。全てのタイトルではないものの、かなりの数のWindowsゲームがGNU/Linuxマシンで動作するようになっている。
- ValveはArch Linuxを元にした独自のLinuxOSである「SteamOS」を開発、Protonを含むSteamクライアントを標準搭載。さらにそのSteamOSを搭載したポーダブルゲーミングPCである「Steam Deck」を開発・販売。Linux由来でありながら、今まで購入してきたWindows専用ゲームの多くを外出先で遊べるようになるということで、少しずつ売れている模様。
- Protonの互換性を高める開発を絶え間なく続ける、有名大型タイトルに対してProton側でも積極的に対応する、そしてProton開発で得られた知見を本家Wineへフィードバックするなど、ValveのGNU/Linuxゲーミングシーンへの貢献は一定の評価を受けている。
- 弊害として、どうせProtonで動く可能性がある以上、ほとんどのゲームメーカーはわざわざコストをかけてGNU/Linuxネイティブ対応する必要がなくなっている。
- ただでさえ、ゲーム用途であろうとなかろうとWindowsシェア(96.56%(2024/12)[5])はLinuxシェア(2.03%(2024/12)[5])より圧倒的であり、Linuxに金はかけられない、と普通の営利企業は考える。
- 結果としてWindows専用タイトルはいよいよ増え、GNU/Linuxネイティブのタイトルは一向に増えない傾向。
- 一方でGNU/LinuxベースのOSを積んだSteam Deckの発売、およびそれ以前からのProton開発を通したValveの努力・貢献により、最近の調査によるとゲーミングPCのOSのシェアにおいてGNU/LinuxがmacOSを抜いて2位に浮上(とはいっても1位のWindowsのシェアは9割以上だけど)。
- 繰り返すが全てのゲームが完璧に動作するわけではない。Linuxを動かすハードウェアもある程度のスペックは必要である。
- なお、実はLinuxを使っているSteam利用者(2.03%(2024/12)[5])はMacを使っているSteam利用者(1.41%(2024/12)[5])よりも多い。
その他[編集]
これは1編集者の私見。 (編集者:早朝の掃除屋)
つーか Microsoft が意地を張って Windows OS に拘っているためにあるんじゃねぇの?という意見もある。
Windows はシェアが広がりすぎて引っ込みがつかない状態になっているように思う[注 3]。JVE とか Xen とかのように、もう規格で決めてしまい、Pascal の P-Code Engin のように仮装コードをチップ上に実装してしまってもいいとユーザーとしては思うのだが、メーカーとしては「独自性というアドバンテージを失いたくはない」のだろう。