第2回エンペディア大賞」が2月いっぱい開催中です。2024年に作成された記事の中から、お気に入りの記事に投票しましょう!

Wine

出典: 謎の百科事典もどき『エンペディア(Enpedia)』
記事をシェア:
X(旧Twitter)にシェアする
Threadsにシェアする
Facebookにシェアする
はてなブックマークにシェアする
LINEにシェアする
ナビゲーションに移動 検索に移動

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 LinuxVirtualBox等を用いる)
Wineはこれに対し、Windowsソフトウェアが言っていることをGNU/Linuxにも分かるように「翻訳」する機能を提供する。

概要[編集]

一般的に、アプリケーションはOSAPIに対して、アプリがやって欲しいことを指示し、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リクエストをOpenGLVulkanへ受け渡している)。
現在ではハードウェアに直接アクセスするようなもの、デジタル制限管理があるといった難しいものでもない限り、かなりの数のWindowsアプリがほとんど問題なく動作する。
オンラインゲームなど、アンチチートやデジタル制限管理がかかっているものへの対応は難しいため、確認が必要である。
ひどい場合はOSごとアンチチートなどで排除していることもあるため、[2]仮想マシンが必要。
Microsoft OfficeはOffice 2016までであれば、CrossoverあるいはPlayonlinux(Wineベース)で動作する。[3][注 1]Excel、Powerpoint、Word以外を2016以前で動作させたいか、2016以降動作させる必要がある場合、Microsoft Officeを仮想マシンから使う。
また、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 のように仮装コードをチップ上に実装してしまってもいいとユーザーとしては思うのだが、メーカーとしては「独自性というアドバンテージを失いたくはない」のだろう。

日本は「マイクロプロセッサを作れないからメモリに特化している」と判断されがちだが、そもそも i4004 は i8080A や Z80A の設計者は日本人である。ISO でマイクロプロセッサの命令セットなり OS のシステムコールなりの規格を制定してくれれば、それで話はつくのだが。

脚注[編集]

注記[編集]

  1. なお、Word,excel,powerpointのみである
  2. ダウンローダーはあるものの、appx、appxbundleがダウンロードされるため。wineではこれらは動作しない
  3. このあたりは WikiPedia や MediaWiki も同じかもしれないが。

出典[編集]

関連項目[編集]

外部リンク[編集]

  • WineHQ - Wine公式サイト(英語)
  • ProtonDB - LinuxでSteamを遊ぶユーザーによる非公式動作確認データベース(英語)