mswin32版rubyとは、32bit版Windows(Windows95・Windows98・WindowsMe・Windows NT・Windows 2000・WindowsXP・Windows 2003 Server・Windows Vista・Window Server 2008、以下Windowsと表記)上で動作するRubyのバイナリの一つです。
Windows上で動作するRubyとしては、現在、6種類のバイナリが存在します。これらはそれぞれmswin32版・cygwin版・mingw32版・bccwin32版・interix版・djgpp版と呼ばれています。
それぞれの違いをまとめると以下のようになります(事実誤認があればお知らせください)。
- mswin32版
- VC++でコンパイルされる。Windowsから見ればもっとも「普通」のバイナリと言えるが、反面、Rubyが持つUNIXで特徴的な機能の一部が使用できない。1.7.3以降はmingw32版と拡張ライブラリについてはバイナリ互換性がある。 RUBY_PLATFORMは*-mswin32。
- cygwin版
- gccでコンパイルされ、cygwin環境で動作する。cygwin環境がUNIXライクな環境をWindows上で構築するものであるので、当然、cygwin版rubyは一般のUNIX用のものとだいたい同じように動作する(ことが期待できる)。 RUBY_PLATFORMは*-cygwin。
- mingw32版
- gccでコンパイルされる。ソースはほとんどmswin32版と共通であり、ランタイムライブラリも共通(MSVCRT.dll)なので、動作も(おそらく)mswin32版とほぼ同じ。1.7.3以降はmswin32版と拡張ライブラリについてはバイナリ互換性がある。 RUBY_PLATFORMは*-mingw32。
- bccwin32版
- BC++でコンパイルされる。ソースはかなりの部分がmswin32版と共通ではあるが、ランタイムライブラリが異なるので、細かいところで挙動がmswin32版とは異なる(はず)。1.7以降でサポートされる(が、1.9.1以降はサポートが打ち切られた)。 RUBY_PLATFORMは*-bccwin32。
- interix版
- gccでコンパイルされ、SFU(Services for UNIX)環境上で動作する。SFUはPOSIX互換サブシステムなので、interix版rubyは一般のUNIX用のものとだいたい同じように動作する、と言いたいところだが、SFU環境自体が現在の一般的なUNIXとはいろいろ違っているということもあり、類似の位置づけとなるcygwin版ほどには一般のUNIX用rubyとは互換性は高くない。 使っている人があまりいないため、ちゃんとサポートされているとは言い難い状況。 RUBY_PLATFORMは*-interix*。
- djgpp版
- DJGPPでコンパイルされる。DOS用のバイナリなので、もちろんDOSでも動作する。反面、WindowsにあってDOSにない機能の多くが使えない(ネットワーク関連など)。 1.9以降はサポートが打ち切られた。 RUBY_PLATFORMは*-msdosdjgpp。
このサイトでは、上記のうちmswin32版のみを扱っています。
なお、cygwin版・mingw32版・djgpp版についてはわたなべさんのRuby binariesから入手可能です。bccwin32版については小西さんのRubyから入手可能です。interix版については、interixのTool Warehouseから入手可能です。
mswin64版ruby
1.9.0から、新たに64bit版Windows(Windows XP・Windows 2003 Server・Windows Vista・Windows Server 2008それぞれのx64版)のサポートが追加されました(IA64版もサポートされているはずなのですが、未だかつて誰もコンパイルを試したことすらなさそうです)。
このmswin64版についての情報も、このサイトで扱っています。