製品レビュー
|
||
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互換環境は次のとおり |
NFSクライアント |
|
NFSサーバ |
|
NFSゲートウェイ |
|
マッピング・サーバ |
|
Server for NIS |
|
パスワード同期 | Pluggable Authentication Model(UNIX側)によるパスワードの設定のサポート |
Telnetサーバ |
|
Telnetクライアント |
|
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の移植 | ||
更新履歴 | ||
|
製品レビュー |
- Azure Web Appsの中を「コンソール」や「シェル」でのぞいてみる (2017/7/27)
AzureのWeb Appsはどのような仕組みで動いているのか、オンプレミスのWindows OSと何が違うのか、などをちょっと探訪してみよう - Azure Storage ExplorerでStorageを手軽に操作する (2017/7/24)
エクスプローラのような感覚でAzure Storageにアクセスできる無償ツール「Azure Storage Explorer」。いざというときに使えるよう、事前にセットアップしておこう - Win 10でキーボード配列が誤認識された場合の対処 (2017/7/21)
キーボード配列が異なる言語に誤認識された場合の対処方法を紹介。英語キーボードが日本語配列として認識された場合などは、正しいキー配列に設定し直そう - Azure Web AppsでWordPressをインストールしてみる (2017/7/20)
これまでのIaaSに続き、Azureの大きな特徴といえるPaaSサービス、Azure App Serviceを試してみた! まずはWordPressをインストールしてみる
|
|