このキーワード
友達に教える
URLをコピー

Wineとは?

Wine

Arch Linux上の winecfg

開発元
Wine チーム
【最新版】
5.0 - 2020年1月21日 (2020-01-21)[±]
【最新評価版】
5.9 - 2020年5月22日 (2020-05-22)[±]
リポジトリ
source.winehq.org/git/wine.git
対応OS
UNIXUnix系OS
【種別】
互換レイヤー
ライセンス
GNU Lesser General Public License
【公式サイト】
https://www.winehq.org/

Wine (ワイン)は、オープンソースWindows API 実装を通じて、主としてx86アーキテクチャ上のUnix系オペレーティングシステム (POSIX準拠OS) においてWindowsアプリケーションをネイティブ動作させることを目標とするプログラム群である。

X Window Systemを利用して、16ビット32ビット64ビットWindows向けGUIアプリケーションを動作させることができるほか、MS-DOS用アプリケーションも動作する。x86上のLinux環境を中心に開発されているので、SolarisFreeBSDmacOSなど、他のOSにも移植されているが、それらの環境下では問題が発生する可能性は比較的高い。原理上、カーネルレベルのスレッドに対応しているOSであることが必要である。

名称は、もともとは頭字語であることを意識して、大文字でWINEと表記していたことがあったが、現在はWineと表記するのが正式である。"WINdows Emulator" に由来すると説明されることもあるが、Wine Is Not an Emulator に由来するという、一見してジョークとも取れる、前者とは矛盾する説明がなされることもあり、これは技術的理由による。詳しくは後述する。

ライセンスにLGPLを採用している。フリーソフトウェアである。

かつてはBSDライセンスを採用していた。

概要

Wine 上のMedia Player Classic バージョン 6.4.8.3

Wine以外にLinux上でWindowsアプリケーションを動作させる方法としては、XenVMwareなど、仮想マシンを構築するものが代表的である。Wineはそれらとは異なり、互換レイヤーとして動作する。つまり、Windowsプログラムが要求するDLLの代替品を供給し、また Windows NTカーネルプロセスを再現することによって、Windowsプログラムをネイティブ動作させる。簡単に言えばWineは、Linux上でWindowsを動作させているのではなく、LinuxにWindowsと同じ挙動をさせているのである。したがってWineでWindowsプログラムを動作させる上では、Windowsのコピーもライセンスも必要ではない。ただし、Wineのエミュレーションライブラリが不完全な場合にはWindowsのDLLを利用することで解決できる場合があるが、その場合にはWineを動作させるコンピュータにWindowsのコピーとライセンスが必要である。

ところで、Wineという名称は "Wine" Is Not an Emulator を略した再帰的頭字語であるとも説明される。DOSBoxやzsnesのような典型的なエミュレータと異なり、Wineは基本的にはCPUエミュレーションを行っていない。そのため通常この種のエミュレータに発生する、オリジナル環境と比べた著しいパフォーマンス低下がWineには見られない。このことを強調する開発者の立場から、そのような説明がなされる。実際、アプリケーションによってはWindows上より高速に動作することもあるという。同じく基本的にはCPUエミュレーションを行わない、x86上の仮想マシンにインストールしたWindows環境と比べても、そのような実行速度は優れたものである。しかし、その代償としてプロジェクト規模が巨大化したWineは、人的資源の不足のため本来実装されるべき機能が依然として完全には提供されていない。そのため再現性は仮想マシン上にインストールしたWindowsと比べて大きく劣る。高速化よりはむしろ再現性の向上を第一の目標として開発されている。 なお、ドライバはカーネルモードでの実行が必要であるため、 サポートされない。

Wineに含まれるWindows API実装はWinelibと呼ばれ、これを用いてWindowsプログラムのソースコードからプラットフォームネイティブなバイナリ(実行ファイルやDLL)をビルドすることも可能である。しかしながら、x86環境では付属するバイナリローダー(wineコマンド)からコンパイル済みバイナリを起動すればよく、実用上は実行速度にも大きな差はない。非x86環境でWindowsバイナリを実行するためには、QEMUなどをCPUエミュレータとして利用可能だが、低速である。

歴史

サン・マイクロシステムズPWI (Public Windows Initiative) やWabi(Windows API のパブリックドメインソフトウェアによる完全代替を目指したもの)の影響を受け、ボブ・アムスタッドとエリック・ヤングデイルによりWindowsアプリケーションをLinux上で動作させることを目的としてWineプロジェクトは1993年にネットニュース上で創始された。当初はWindows 3.1用(16 ビット)アプリケーションに主眼を置いたが、現在は 32ビット中心に開発されている。1994年以降はアレクサンダー・ジュリアードがプロジェクトリーダーを務めている。

プロジェクトは困難を極め、なかなか互換性が高まらなかった。特に 1990年代は、日本語環境においてアプリケーションが思うように動かせない状況が続き、Wineのインストールや動作にもそれなりのスキルが必要とされていた。

Wineプロジェクトに着目したコーレルなどの支援によって一時的に状況は好転したが、マイクロソフトのコーレルへの大規模投資が原因となって、この支援は中止された。

現在はCodeWeaversがジュリアードらを雇っている。また、GoogleはLinux版PicasaでWineを利用し、Wineの開発を支援している。

対応アプリケーション

WineにおけるWindowsアプリケーションの動作状態は Wine アプリケーションデータベース (AppDB) で調べることができる。Wine AppDBではWineユーザからの動作報告がデータベース化されており、アプリケーションが動作状況の良い順に "Platinum"、"Gold"、"Silver"、"Bronze"、"Garbage" で格付けされている。一般にWineのバージョン毎に格付けが変わる。

Wine 1.0で

がリリース基準に使われたこともあり、Wine 1.0ではこれらのアプリケーションが問題なく動作すると報告されている。

補足しておくと、WineにDirectXのランタイムをインストールするのは非推奨である。これはDirectXが直接ハードウェアをコントロールすることがあるため、Windowsそのものが存在しているわけではないWine環境においては、CPUやGPUといったハードウェアを破壊しかねない可能性があるためである。また、Wineが搭載しているDirectXのランタイムで大抵のアプリケーションは動く。

付属プログラム

Wineにはwineコマンドを中心として様々なプログラムやツールが含まれている。

wine
一般に Wineがインストールされた環境でWindowsプログラムを起動するにはEXEファイルをダブルクリックすればよい。しかし、場合によってはデバッグなどの目的でコマンドラインからプログラムを起動させたいことがある。wineはこのようなときに用いるコマンドで、引数にWindowsプログラムを指定する。
Wine設定 (winecfg)
Wine全体の設定をGUIで行うためのプログラムである。
Wine File (winefile)
MDI 型のファイルマネージャであり、Windows Explorer に対応する(見た目としてはWindows 3.xのファイルマネージャに近い)。コマンドラインからwine explorerと入力することでも起動する。
Wine Application Uninstaller (uninstaller)
GUIでプログラムをアンインストールするためのツールであり、Windowsの「プログラムの変更と削除」に対応する。
regedit
GUIでレジストリを編集するためのプログラムであり、同名のWindows付属プログラムに対応する。

コマンドプロンプト (cmd)、メモ帳 (notepad)、タスクマネージャ (taskmgr)、マインスイーパ (winemine) やワードパッド (wordpad) コントロールパネル (control) なども含まれている。コマンドラインから起動する場合、cmd、taskmgr、wordpad、controlなど一部のプログラムについては、wineコマンドの引数としてプログラム名を指定して起動する。例えば、ワードパッドを起動するには仮想端末から

$ wine wordpad

と入力する。なお $ は Bash 等のシェルにおけるプロンプトである。

Wine Tools

Wine ToolsはWineに含まれるツール群である。これらはWindows型実行可能ファイルではなく、PerlC言語などで記述されたUnixネイティブプログラムである。

Wine Server (wineserver)
WineにおいてWindowsのカーネルプロセスを再現するためのプログラム。
Wine Message Compiler(wmc)
メッセージファイル(.mc)をコンパイルするプログラム。
Wine C and C++ MinGW Compatible Compiler (winegcc)
Linux上でMinGWの互換コンパイルを可能にするためのgccの実装。
Wine Interface Definition Language (IDL) compiler (wild)
IDLで記述されたインターフェースをコンパイルするプログラム。
Wine DLL Tool (winedump)
DLLを解析し、インポート/エクスポートされている関数を調べ、スペックファイル(.spec)を生成するためのプログラム。
Wine Maker (winemaker)
WindowsのプロジェクトをWine向けにコンパイルするプログラム。
Wine Console (wineconsole)
コマンドラインインターフェースのWindowsソフトウェアを実行するためのプログラム。

ディレクトリ

WineやアプリケーションのEXEファイルやレジストリなどはホームディレクトリ内の.wineディレクトリ下に保存される。保存先は環境変数WINEPREFIXを設定することで変更できる。かつてWineの設定ファイルとしてconfigというファイルがあったが、2005年に廃止され現在は拡張子がregのファイルに設定が保存されるようになっている。

アプリケーションのデスクトップエントリファイルやアイコンなどはホームディレクトリ下の

にインストールされる。これらのディレクトリにインストールされるファイルはGNOMEKDEなどでメニューに使われる。

デバッグ

Wineは環境変数WINEDEBUGを使用することで、様々なデバッグが行える。

構文

$export WINEDEBUG=[ クラス ][+|-] チャンネル [,[ クラス2 ][+|-] チャンネル2 ]

[ クラス ] にはwarn、err、fixme、traceのいずれかを指定する。また、[ +|- ]の指定によってチャンネルの入れるか入れないかを切り替える。

チャンネルにはrelay、dll、heap、allなどがある。詳しくはのList of Debug Channelsの章を参照。

$WINEDEBUG=warn+all,+relay

全ての警告メッセージを表示する。すべての中継メッセージを表示する。

この環境変数の指定によって特定のdllの関数がどのような引数で呼び出されているか、どこでどのような関数が完全に実装されていないかが分かる。

Wineに似た他のプロジェクト

Wine 用のツール

Wineを利用しているソフトウェア

参照

Darling - Wineと同様にOSXのコードをオープンソース実装しようというプロジェクト。

脚注

注釈

  1. ^ 例えばIE6 Service Pack 1のEULAには「本OSコンポーネントは、該当するOS製品の既存の機能をアップデート、またはこれに追加もしくは代替するためにのみ提供されています。」という一文があり、Windowsのアップグレードとしてのみ使用できる。
  2. ^ 例えばIE7のEULAには「お客様は、マイクロソフト Windows XP SP2 and Windows Server 2003 SP1 ソフトウェアの有効なライセンス取得済みの複製 (以下「本ソフトウェア」といいます) ごとに、本追加物の複製 1 部を使用できます。」という一文があり、Windowsのライセンスと同等とみなしている。

出典

  1. ^ Wine 5.0 Released” (2020年1月21日). 2020年1月22日閲覧。
  2. ^ Under what hardware platform(s) and operating system(s) will Wine(Lib) run?
  3. ^ Why do some people write WINE and not Wine?
  4. ^ Wine License
  5. ^ Do I need to have a DOS partition on my system to use Wine?
  6. ^ My program doesn't work, what can I do?
  7. ^ Does Wine emulate a full computer?
  8. ^ Does Wine emulate a full computer?
  9. ^ Win API Stats
  10. ^ [1]
  11. ^ Wine の起動
  12. ^ Wine project status
  13. ^ WABI available on Linux or not
  14. ^ People - Alexandre Julliard
  15. ^ That's all folks: Corel leaves Open Source behind
  16. ^ Google Sponsors Wine Improvements
  17. ^ Wine Release Plan
  18. ^ [2]
  19. ^ [3]
  20. ^ [4]
  21. ^ [5]
  22. ^ [6]
  23. ^ [7]
  24. ^ [8]
  25. ^ [9]
  26. ^ [10]
  27. ^ Maintainer Rating Definitions
  28. ^ Wine 1.0 Release Criteria
  29. ^ Wine AppDB - Photoshop
  30. ^ Wine AppDB - Powerpoint Viewer
  31. ^ Wine AppDB - Word Viewer
  32. ^ Wine AppDB - Excel Viewer
  33. ^ ListofCommands
  34. ^ wine の man ページ
  35. ^ The config File Has Died!
  36. ^ How do I uninstall Windows applications?
  37. ^ [11]
  38. ^ [12]
  39. ^ HOWTO: CJK in Wine (Chinese, Japanese & Korean)

関連項目

外部リンク

・・・・・・・・・・・・・・・・・・
出典:wikipedia
2020/05/30 08:58

HAPPY Wikipedia

あなたの考える「Wine」の意味を投稿しよう
「Wine」のコンテンツはまだ投稿されていません。
全部読む・投稿 

Wineスレッド一覧

・・・・・・・・・・・・・・・・・・
「Wine」のスレッドを作成する
Wineの」
友達を探す
掲示板を探す
このページ
友達に教える
URLをコピー

注目のキーワード

錦織圭/北島康介/2014_FIFAワールドカップ・アジア予選/サッカー日本女子代表/消費税/東京スカイツリー/ダルビッシュ有/イチロー/香川真司/野田内閣/復興庁/石川遼/HKT48/AKB48/ワールド・ベースボール・クラシック日本代表/黒田博樹/尖閣諸島/バレンタインデー/ONE_PIECE

キーワードで探す

 
友達を探す
掲示板を探す
ハッピーWiki
ハッピーメール
ハッピーランド
HAPPY NEWS
2010Happy Mail