製品レビュー
Microsoft Windows Services for UNIX 3.0
日本語版

2.SFU 2.0から3.0へのバージョンアップでの変更点

デジタルアドバンテージ
2002/11/20
2002/11/21 更新


 SFU 2.0から3.0へのバージョンアップにあたって追加された機能、拡張された機能のうち、主要なものをまとめると次のようになる。なお前述したとおり、SFU 3.0にはSFU 2.0の機能が包含されている。下表はこれらの機能を含んでいないが、ユーザーからのフィードバックなどを元に、これらについても一部で改良などが加えられている。繰り返しになるが、SFU 2.0の機能の詳細については、別稿「製品レビュー:Windows Services for UNIX 2.0」を参照のこと。

機能 説明
Interix

UNIXアプリケーション/スクリプトを実行可能にするWindows NTサブシステム。従来のようなWin32サブシステム内でのエミュレーションではなく、独立したOSのサブシステムとしてこれらを実行する。Interixサブシステムの主要な特徴、Interixサブシステムで実現されるUNIX互換環境は次のとおり

  • UNIX APIサポート(POSIXベース。1900種以上)
  • Korn shell/C shellサポート
  • Perl 5.6.0サポート
  • UNIXユーティリティ(awk、grep、sed、tr、cut、tar、cpioなど、350種以上)
  • GNUユーティリティ/コンパイラ(40種以上)
NFSクライアント
  • setuidビット、setgidビット、stickyビットのサポート
  • シンボリック・リンクのサポート
  • パフォーマンスの向上(従来版から約30%以上改善)
  • mountコマンドにおいて、大文字/小文字を区別するオプションを追加
  • 国際化:言語オプションの追加(ハングル文字セット、漢字文字セットのサポート強化)
NFSサーバ
  • パフォーマンス、スケーラビリティの向上(最大6万4000ユーザーを処理可能)
  • NFSサービスを利用したNFS共有に対し、アクティブ/アクティブ・クラスタリングをサポート
  • setuidビット、setgidビット、stickyビットのサポート
  • rootアクセスおよびanonymousアクセスの共有ごとの処理
  • Microsoft Windows NT UNIX許可のマッピングのモデルの向上
  • 国際化の強化
NFSゲートウェイ
  • 国際化の強化
マッピング・サーバ
  • クラスタ対応
  • パフォーマンス、セキュリティ、スケーラビリティの向上
  • 冗長マッピング・サーバのサポート(一部の不具合が全体に波及しないようにする)
  • 国際化の強化
Server for NIS
  • MD5暗号化のサポート
  • スケーラビリティとパフォーマンスの向上
  • ユーザビリティ/管理機能の強化
パスワード同期 Pluggable Authentication Model(UNIX側)によるパスワードの設定のサポート
Telnetサーバ
  • セキュリティとスケーラビリティの向上
  • IPv6サポート
  • ダム(dumb)端末サポート(PDAなど)
Telnetクライアント
  • IPv6サポート
  • 国際化サポート(ハングル文字セット、漢字文字セット[CH-S/CH-T]のサポート強化)
SFU 3.0の主要な新機能、拡張機能

 SFU 3.0での最大の変更は、前述したInterixが組み込まれたことだ。Interixはもともと、Softwayというカナダのソフトウェア会社が開発したもので、1999年秋に米Microsoftに買収された。この合併後、米Microsoftは、Interixの英語版(Interix 2.2)を発売したが、日本語版は発売されなかった。従って日本語版としてInterixが提供されるのは、今回のSFU 3.0日本語版が初めてとなる。

 Interix以外の変更も多岐にわたるが、ほとんどはSFU 2.0既存機能のブラッシュアップである。具体的には、使い勝手の向上(NFSにおけるsetuidなどのファイル属性ビットやシンボリック・リンクのサポートなど)、パフォーマンス/スケーラビリティの向上(NFSクライアント/サーバ、マッピング・サーバなど)、国際化の強化(NFS、Telnetクライアントなど)などである。なお国際化の強化とは、東アジアの各国語対応(台湾、日本、韓国、中国の各国語)のことで、上表には記載しなかったが、Interixについても、日本語版では、抜本的な東アジアの各国語対応が施されている(詳細は後述)。

Interixサブシステム

 Interixは、Windows OSのサブシステムとして実装されたUNIX互換環境である。SFU 2.0までのUNIX互換ツール(コマンドシェルや各種のUNIXコマンドなど)は、MS-DOSの時代からUNIX互換ツールとして販売されていたMKS ToolkitをWindowsに移植したものであった。歴史も古いだけに、UNIXコマンドとしての互換性はかなり高かったが、あくまでWindows上でエミュレーションを行っているのであり、Windowsシステムの制限を超えることはできない。例えば、シグナル(割り込み)の取り扱いは、Windowsシステムがサポートするシグナルしか扱うことができない(コマンドから扱えるシグナルの種類はUNIXの方が多い)。

 これに対し今回提供されたInterixは、エミュレーション環境ではなく、Windows OSのサブシステムとして実装されている。SFU 2.0のMKS ToolkitによるエミュレーションはInterixに置き換えられた。Interixでは、Windows NTカーネルの機能をダイレクトに使えるため、より高い互換性を提供できる。例えば前出のシグナルなら、Interixでは、UNIX互換のシグナル・サポートをほぼ完全に実現している(つまり、Windows環境が実装されるWin32サブシステムは、Windows NTカーネルがサポートするシグナルの一部しか使っていないということだ)。

Interixサブシステム
Interixは、従来のようなWindows OS(Win32サブシステム)内で動くエミュレーション環境ではなく、独立した環境サブシステムの1つとして実装されている。これにより、Windows NTカーネルの機能をダイレクトに使えるため、Win32サブシステムの制限に縛られることなく、より高い互換性を提供できる。「環境サブシステム」はアプリケーション向けのOSインターフェイスを提供するサブシステム、「基本サブシステム/機能サブシステム」はOSの基本的な機能を提供するサブシステムである。

 Windows NT 4.0やWindows 2000、Windows XP(そして現在開発中のWindows .NET Server)のベースOSであるWindows NTカーネルでは、アプリケーションから呼び出されるネイティブなOSの各種サービスをサブシテムという単位で提供するようになっている。例えばWindows 2000では、Win32(Windowsアプリケーションを実行するためのサービスを提供するサブシステム)、POSIX(Portable Operating System Interface for UNIX。「ポジックス」。POSIX仕様のUNIX互換インターフェイスを提供するサブシステム)、OS/2(マイクロソフトとIBMがMS-DOSの次期バージョンとして共同開発したOSのサブシステム)が標準で提供されている。これらの環境サブシステムは、基本的にはそれぞれが等価に、アプリケーション向けのサポートを提供できる(ただし、Win32だけは特別なサブシステムで、これなしではWindows OSは実行できない)。サブシステムとしての要件を満たしているなら、さらに新しいサブシステムを追加することもできる。こうしてSFU 3.0によって追加されるのがInterixサブシステムである。

 図中のPOSIXサブシステムは、初期のWindows NTから組み込まれていたものだ。POSIXは、移植性の高いUNIXアプリケーションを開発可能にすることを目標として、IEEEによって考案されたアプリケーション・インターフェイス(ライブラリやコマンドの仕様)である。1980年代の中盤から後半にかけて、米国政府機関のコンピュータ・システムの導入要件として、POSIX準拠であることが要求されたため、Windows NTにサブシステムとして組み込まれたという経緯がある。

 SFU 3.0で追加されたInterixサブシステムも、POSIXをベースとするアプリケーション・インターフェイスを提供している。ただし、Windows NTやWindows 2000のPOSIXサブシステムがサポートする初期のPOSIXインターフェイスは非常にミニマムなものだったが、InterixがサポートするのはAPIセットなどが大幅に拡張されたもので、UNIX 97程度のレベルにあるとされる。マイクロソフトの担当者の説明によれば、まだコンフォーマンス・テスト(conformance test=適合テスト)はパスしていないが、Single UNIX Specification(さまざまな情報の相互運用を目的として標準化などを進めているOpen Groupコンソーシアムによって策定されたUNIX仕様)に準拠する方向で作業を進めているとのことだ。実際には、POSIXをベースとしてBSDやGNUの機能も一部に取り込んでおり、ソース・コード・レベルの互換性は高いとされる。これについては、実際に後編で、GNUプロジェクトのプログラム・コードを試験的にInterix環境に移植して検証してみることにする。


 INDEX
  [製品レビュー] 
  Microsoft Windows Services for UNIX 3.0 日本語版
    1.SFUとは何か?
  2.SFU 2.0から3.0へのバージョンアップでの変更点
    3.Interixプロセスと、Win32プロセスのシームレスなプロセス間通信も可能
    4.SFUのインストールとユーザー環境
    5.wgetの移植
    6.bashの移植
 
更新履歴
【2002/11/21】表「SFU 3.0の主要な新機能、拡張機能」にある「Telnetクライアント」の項目において、当初はサポートされる文字セットとして「EUC-KR、EUC-TW」を表記しておりましたが、「EUC-KR、EUC-TWには未対応」でした、お詫びして訂正させていただきます。
【2003/01/15】表「SFU 3.0の主要な新機能、拡張機能」の直後にある段落で、「米Microsoftは、SFU 2.0とInterixを統合したSFU 2.2を発売した」とありましたが、正しくは「Interix 2.2という独立した製品がSFU 2.Xとは別に提供されていた」の誤りでした。お詫びして、該当個所を訂正させていただきます。

 製品レビュー


Windows Server Insider フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Windows Server Insider 記事ランキング

本日 月間