Ruby-mswin32 (ja)

mswin32版rubyとは?

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版についての情報も、このサイトで扱っています。

at 2003-10-28 00:37 / permalink / back

Trackback

PingURL:

Comment

name:
E-Mail (not open to the public):
text:

referer |702|37|22|22|20|17|14|13|13|10|6|6|3|3|3|3|3|3|2|2|

Generated by Tulip 0.0.6
Powered by ruby 1.8.7 / mod_ruby 1.2.6
You're using IPv4