Microsoft Windows 2000 Server のカーネル

『Introducing Windows 2000 Server』 (Microsoft Press) の第 1 章より抜粋

トピック

カーネル アーキテクチャの進化 カーネル アーキテクチャの進化
Zero Administration for Windows Initiative のサポートのための変更 Zero Administration for Windows Initiative のサポートのための変更
クラスタリング クラスタリング
ターミナル サービス ターミナル サービス
多言語対応 多言語対応
要約 要約

カーネル アーキテクチャの進化

Microsoft® Windows® 2000 (以下 Windows 2000) は相互に作用する多数のレイヤ (階層) で構成され、それらをユーザーから見たとき、全体として 1 つのオペレーティング システムの形をとります。このアーキテクチャの中心にあるのがカーネルです。カーネルをシステムで実行されるプロセスの 1 つにすぎないと考えるのは正しくありません。カーネルはシステムのハードウェアに対する特別な権限を持っており、アプリケーションにメモリを割り当てる、デバイス ドライバと通信する、いつ、どのプロセスを実行するかを決定するなどの役割が与えられています。

アプリケーションはカーネルの助けを借りてメモリ、プロセッサ時間、ハードウェア リソースを獲得します。Windows 2000 Server のカーネルは、Microsoft® Windows NT® 4.0 (以下 Windows NT 4.0) のカーネルから直接進化したものです。Windows NT 4.0 のカーネルは、以前のバージョンの Windows NT から図 1-1 のような進化を遂げてきました。ユーザー、管理者、開発者の要求が変化するとともに、逐次新しいバージョンが作られてきたのです。

introf1

図 1-1: Microsoft Windows 2000 Server の進化の歴史

これまで Microsoft は、アプリケーション開発者がカーネルにない機能を要求するようになったとき、その要求を満たすべくカーネルを変更してきました。たとえば、プロセッサ クオータとプロセス アカウンティングの機能が追加されたのは、まさに Internet Information Services 5.0 (IIS) に対応するためでした。現在は、カーネルのマルチユーザー サポートが改善されたおかげで、システムを大幅に変更しなくてもターミナル サービスをインストールできるようになっています。これは開発者にとって、必要な機能を付加的に組み込むことができるという利点をもたらします。結局、管理者やユーザーも、そうした変更の恩恵を受けることになります。

また、特に管理者の要求を満たすために、カーネルのいくつかの側面も変更されました。Windows 2000 Server になってスケーラビリティが Windows NT よりずっと拡大したのはその 1 つです。ネットワーク アプリケーションの信頼性も向上し、しかも以前より効率的に動作するようになりました。多言語対応の面でも改善が見られ、ユーザーはオペレーティング システムやアプリケーションを自国語環境でより快適に使うことができます。

さまざまなサービスがどう改善されたかを知るためには、まずカーネルがどう変更されたかを理解することが大切です。実際、サービスの改善点はカーネルの変更によるところが多いからです。

プロセッサ クオータとアカウンティング

インターネット サービス プロバイダ (ISP) では、同じ Web サーバーを多数の顧客が共有することは珍しいことではありません。これまでは、ある顧客の Web サイトにシステムのプロセッサが占有され、ほかの顧客のパフォーマンスが低下するという事態も考えられました。同様に、あるユーザーの ASP コードの障害のせいで、イントラネット サーバー全体が機能しなくなることもありました。IIS には帯域幅を絞り込むスロットリング機能がありますが、各 Web サイトに与えるプロセッサ時間をオペレーティング システムは効率的に制御することができませんでした。

効率的なマルチユーザー環境を実現するために、プロセッサ アカウンティングと CPU スロットリングという 2 つの機能が新たに追加されました。プロセッサ アカウンティングを使用して IIS は個々の Web 要求で消費されたプロセッサ サイクル数を記録します。これにより ISP はプロセッサの利用率に基づいて課金でき、開発者は最適化の効果が最も現れるページを特定できます。CPU スロットリングは、プロセス外のアプリケーションによって大量のプロセッサ時間が奪われ、その結果、ほかの Web サイトが正常に機能できなくなるという事態を防ぐ機能です。

プロセッサ アカウンティングと CPU スロットリングを支えるテクノロジに、ジョブ オブジェクトがあります。ジョブ オブジェクトの働きを理解するためには、アプリケーションやサービスでプロセスがどう使われるかを理解する必要があります。IIS のようなサービスは多数のプロセスを生成するため、いくつものタスクを同時にこなすことができます。複数のプロセスはパフォーマンスの改善に寄与する一方で、プロセスとタスクの対応関係の追跡を複雑にする面もあります。IIS 4 では、多数の仮想サーバーが同じアプリケーション空間を共有できましたが、それぞれの仮想サーバーでのプロセッサ リソースの消費量の監査、管理はできませんでした。

ジョブ オブジェクトは、オペレーティング システムが複数のプロセスを 1 つの単位として管理できるようにします。これによりアプリケーション レベルでタスクごとに消費されるプロセッサ時間を監視し、絞り込むことがずっと簡単になります。この機能は、複数の顧客が同じサーバーを共有するような環境では欠くことのできないものだといえます。

メモ 簡単にいえば、1 つまたは複数のプロセスで 1 つの特定のジョブ (ジョブ オブジェクトで表現される) を遂行できるということです。

スピン カウント

スピン カウントは、マルチプロセッサ システムで複数のプログラムが同じリソースに同時にアクセスする際のパフォーマンスを改善するしくみです。スピン カウントは、プロセスがリソースに何回までアクセスを試みたら待ち状態に移行するかを制御します。これを理解するには、データベース アプリケーションにおいて複数のクエリが別々のプロセッサで同時に実行されているケースを考えるとよいでしょう。今、クエリ 1 が特定のテーブルの特定の行に書き込みを行おうとしたところ、クエリ 2 がその行をロックしていたためにアクセスを拒否されたとします。もしスピン カウントがなければ、クエリ 1 は実行を中断してしばらく待つことになります。一方、スピン カウントがあれば、クエリ 1 はクエリ 2 が目的の行をすぐに解放してくれることを期待して何回か書き込みを試み、試行がすべて拒否されたときだけ待ち状態に移行します。

これはマルチプロセッサ システム以外では効果を発揮しません。複数のプロセスが同時に実行できる点が重要だからです。単一プロセッサ システムでは各プロセスは互いに実行待ちを強いられ、同じリソースに繰り返しアクセスを試みても、ほかのプロセスに実行チャンスが与えられるまでアクセスが成功することはありません。単一プロセッサ システムでスピン カウントを使用しても、アプリケーションのパフォーマンスが低下することはありません。だだ何の効果もないだけです。

Scatter/Gather I/O

Scatter/Gather I/O は、ネットワーク上のアプリケーション サーバーのパフォーマンスを改善するため Windows 2000 Server で新たに追加された機能です。この機能について、システム管理者は意識することはありません。この機能は、特別に設定しなくてもアプリケーションから利用できるからです。このテクノロジにより、システムの RAM 上に不連続に置かれたデータをディスク ドライブ上の連続領域に容易に移動できます。この機能を利用するためには、アプリケーション側でのコーディングが必要です。したがって、既存のサービスはこの機能の恩恵を受けることができません。

このテクノロジは、Windows NT サービス パックの一部として最初に導入され、Microsoft SQL Server のパフォーマンスを改善するため使われていました。Windows 2000 Server は、このテクノロジを標準で組み込んだ Microsoft 社の最初のオペレーティング システムです。

タイマの制御

クォンタムはスレッドのプロパティの 1 つで、次のスレッドに制御を渡すまでスレッドがどれだけの期間にわたって実行できるかを指定するものです。管理者や開発者は、クォンタムのタイプと長さについて以前よりもきめ細かい制御が可能です。複数のスレッドの間で CPU を切り替えるのはある程度時間がかかることから、スレッドのクォンタム長を大きくするとアプリケーションのパフォーマンスが改善されることがあります。ただし、スレッドのタイム スライスを大きくすると、マルチタスキングが多少ぎくしゃくします。

クォンタムのタイプとして固定長か可変長を選択することもできます。これを設定するには [パフォーマンス オプション] ダイアログ ボックス (図 1-2) を使います ([システムのプロパティ] ダイアログ ボックスの [詳細] タブをクリックする) 。[アプリケーション] を選択すると短い可変長のクォンタムが割り当てられ、マルチタスキングがより円滑に行われるようになります。一方、[バックグラウンド サービス] を選択すると、長い固定長のクォンタムが使われ、ネットワーク サービスのパフォーマンスが改善されます。Windows 2000 Server では [バックグラウンド サービス]、Windows 2000 Professional では [アプリケーション] がデフォルト値となります。

introf2

図 1-2: クォンタムのタイプと長さを構成できるようになった

Windows ドライバ モデル

ドライバとは、オペレーティング システムがハードウェアの一部分と通信するためのソフトウェア要素です。ビデオ カードが違えば、その機能や通信方法も異なります。ドライバは、Windows 2000 とビデオ カードの仲介役を果たします。ネットワーク カード、SCSI カード、モデム、スキャナ、プリンタといった付加的なハードウェアはいずれもドライバを必要とします。以前のバージョンの Windows では、オペレーティング システムごとに異なるドライバが必要でした。これはドライバを作成するハードウェア ベンダにとって重荷となっていました。もちろん、複数のオペレーティング システムを扱う管理者にとっても厄介な問題でした。

今回新たに登場した Windows ドライバ モデル (WDM) は、Windows 2000 システムと Windows 98 システムの間で同じドライバを使えるようにするものです。このテクノロジのおかげで、ハードウェア ベンダは 2 種類のドライバを開発する必要がなくなりました。このことは Microsoft のハイエンド オペレーティング システムの互換性が向上するという意味で、ユーザーにとっても価値があります。もちろん、管理者は Windows 98 ユーザーと Windows サーバーのために別々のドライバを管理しなくて済むわけです。

WDM には別の利点もあります。デバイス ドライバを作成するために必要な作業の大部分が、Microsoft 側ですでに行われていることです。ハードウェア ベンダは自社の製品のために小さなミニドライバを作成する必要がありますが、プログラミングに要する時間は大幅に削減されます。

WDM のストリーム アーキテクチャはリアルタイム ストリーム メディアのパフォーマンスを改善するものです。以前のバージョンの Windows では、ストリーム メディア アプリケーションの大部分の処理をユーザー モードで実行する必要がありました。それらの機能の多くがカーネル モードに移され、そこでより高速に実行されるようになったわけです。しかし、WDM のカーネル ストリームを利用するためにはアプリケーション側でコーディングが必要なので、以前のアプリケーションはこの機能の恩恵を受けることができません。

WDM の静止画像アーキテクチャは、オペレーティング システムのレベルでスキャナとデジタル カメラをサポートするものです。このサポートが Windows 2000 に組み込まれたことで、スキャナやカメラなどの画像処理関係の機器用に、一貫性のある統合されたユーザー インターフェイスを利用できます。以前のバージョンの Windows では、ハードウェア開発者が自社の機器をオペレーティング システムに組み込むために、ソフトウェアを自ら書く必要がありました。

エンタプライズ メモリ アーキテクチャ (EMA)

大規模なアプリケーション サーバーでは、物理メモリ量がボトルネックになることがよくあります。これは特に、何百ギガバイトものデータを扱う巨大なデータベース サーバーで問題となります。Windows 2000 Server の改善点の 1 つであるエンタプライズ メモリ アーキテクチャ (EMA) は、64 ビットのプロセッサを持つサーバーで最大 32 ギガバイトのメモリを利用できるようにする機能です。たいていのサーバーはこれほど大量の RAM を必要としませんが、ハードディスクを使わずメモリ内でデータを高速に処理できるのでデータ ウェアハウスには理想的です。この大規模メモリ モデルをどのコンピュータ システムでも使えるという状況に現在まだなっていませんが、Alpha チップと Pentium II Xeon チップはすでに互換性があります。

VLM (Very Large Memory) API を使うためには、アプリケーション側でコーディングが必要になります。Microsoft SQL Server はこの機能向けにコーディングされています。ほかのリレーショナル データベース サービスも、おそらくこの新しい API を使うように修正されることでしょう。ほとんどのアプリケーションは、RAM を 4 ギガバイト以上に増設しただけでは、この機能の恩恵を受けることはできません。

マルチプロセッサ サポートの改善

サーバーではプロセッサ速度がボトルネックとなっていました。そこで、Windows 2000 Server はマルチプロセッサ サポートを大幅に改善しました。Windows NT も、これまでずっとマルチプロセッサをサポートしてきましたが、この新世代サーバー ソフトウェアはマルチプロセッサをより効率的に利用するようになっており、マルチプロセッサ システム上で実行されるすべてのマルチスレッド アプリケーションのパフォーマンスが向上します。開発者が特別なコードを書かなくても、スケーラビリティの改善がそのままパフォーマンスの向上につながるわけです。

Windows 2000 Server は 2 プロセッサの同時使用をサポートしており、Windows NT 4.0 Server の既存のユーザーが Windows 2000 Server にアップグレードする場合は 4 プロセッサの使用が可能です。Windows 2000 Advanced Server は 4 プロセッサの同時使用をサポートしており、Windows NT 4.0 Server Enterprise Edition の既存のユーザーが Windows 2000 Advanced Server にアップグレードする場合は、引き続き 8 プロセッサの使用が可能です。Windows 2000 Advanced Server では、使用可能な最大プロセッサ数が以前の倍になり、16 プロセッサの同時使用が可能です。ハードウェア ベンダはこれをさらに拡張し、32-way の並行処理をサポートすることもできます。

Windows オペレーティング システム上でプロセスを実行する際に、特定のプロセッサと関連付けて実行できます。管理者はタスク マネージャを使って、特定のプロセッサとプロセスとの関係付け (アフィニティ) を設定することができます。これにより、プロセスはその特定のプロセッサだけを使うように強制され、プロセスがプロセッサ間でいつも切り替えられているようなとき、プロセッサ キャッシュのフラッシュ回数が減るのでパフォーマンスが向上することがあります。ただし、この機能は注意して使う必要があります。空いているプロセッサにプロセスを移動できないために、パフォーマンスが低下することもあるからです。

I2O サポート

I2O (インテリジェント I/O アーキテクチャ) はシステムの CPU に対する負荷を軽減し、I/O パフォーマンスを改善する新しいテクノロジです。I2O では入出力用に最適化された専用プロセッサを使用します。このテクノロジにより、リアルタイムのオーディオとビデオなど、多くの帯域幅を必要とする作業を能率的に処理できます。

ソートの改善

Windows 2000 Advanced Server ではソートが改善されました。これにより、大規模データベース アプリケーションやデータウェアハウス アプリケーションのパフォーマンスの向上が図れます。このようなアプリケーションでは、プロセッサを多用するアルゴリズムがカーネル側に移され、パフォーマンスの大幅な向上が実現されます。この新しい API を利用するには、アプリケーション側でコーディングが必要になります。最新バージョンの Microsoft SQL Server はすでにこの機能に対応しています。

ページのトップへ ページのトップへ

Zero Administration for Windows Initiative のサポートのための変更

Zero Administration for Windows Initiative については第 3 章で詳しく述べますが、ここではアーキテクチャ上の変更点を簡単に紹介します。プラグ アンド プレイがサポートされたことにより、管理者はハードウェアの構成やトラブルシューティングに時間を費やさなくて済むようになりました。Advanced Configuration and Power Interface (ACPI) は、すべての Windows 2000 システムの電力使用効率を改善し、必要な電力を直接減らすことでコストの削減をもたらします。ディスク クォータ機能は、管理者によるディスク スペースの節約を支援し、余計なハードウェアを買わなくて済むようにします。また、リモート ブート機能を使うと、デスクトップ システムのインストールを以前では考えられなかったような速いペースで進めることができます。

プラグ アンド プレイ

ハードウェアの構成は、コンピュータ ネットワークの管理作業のなかでも特に面倒な作業の 1 つです。以前はハードウェアの構成には割り込み、I/O ポート、ダイレクト メモリ アクセス (DMA) についての詳細な知識が必要でした。ハードウェアの構成作業を単純化すべく登場したプラグ アンド プレイ テクノロジは、すべてのオペレーティング システムで完全にサポートされているわけではありませんでした。Windows 95 と Windows 98 はプラグ アンド プレイのプロトコルを完全にサポートしていますが、Windows NT 4.0 は必要最低限の部分しかサポートしていません。

Windows 2000 Server のデバイス マネージャとハードウェア ウィザードは、以前のどのバージョンの Windows よりも強力になっています。これらのツールは、ハードウェアの競合を以前よりも確実に検出して解決してくれるので、管理に要する時間が少なくなります。つまり、ネットワーク カード、モデム、ハードディスクなどを増設するとき、管理者がハードウェア構成をいつまでもいじらなくて済むので、サーバーの稼働時間が長くなります。次ページの図 1-3 にデバイス マネージャを示します。

オペレーティング システムは起動時に自動的に新しいハードウェアを検出し、管理者がログインしたとき、ハードウェア ウィザードを実行します。多くの場合、検出された競合は自動的に解決され、管理者がハードウェアの問題を手動で解決しなければならないときは、その状況に応じたオンライン ヘルプ ファイルがすぐに表示されます。

introf3

図 1-3: デバイス マネージャによるハードウェアの構成とトラブルシューティング

OnNow/ACPI

OnNow/ACPI により、システムの電力消費をきめ細かく制御できます。この恩恵を受けるのは何といってもラップトップ ユーザーです。一般に管理者はサーバーの消費電力にあまり関心を抱かないものです。この新しい標準は Windows ドライバ モデルの一部として実装されているため、Windows 2000 Server をはじめ、その他の Windows 2000 ファミリと Windows 98 でもサポートされています。

ディスク クォータ

Windows にあわせ、NTFS ファイル システムのバージョンも新しくなりました。なかでも興味深いのは、特定のパーティションでのユーザーのディスク スペースを制限する機能です。これを使うと、ファイル サーバーや Web サーバーの管理者がユーザーによるファイルの保存を厳密に管理することができます。特定のパーティションにユーザーがファイルを保存できないようにドライブを構成することもできます。

リモート ブート

Windows 2000 Server に新たに組み込まれたリモート ブート機能により、デスクトップ システムの電源投入を簡単に制御することができます。一般に、サーバーの電源は常に入れたままにされますが、ユーザーのシステムは業務終了後に使わなければ電源を切るべきです。中央のサーバーからシステムの起動を制御できれば、わざわざ現場まで行って電源投入や構成の作業をしなくて済むので、多数のデスク トップ システムを簡単に構成できるというメリットがあります。

当然、リモート ブートをサポートするための変更は、ネットワーク カードとそのドライバ内に実装されていなければなりません。また、ネットワーク カードは、システムの電源が入っていなくても起動要求をリッスンできなければなりません。Microsoft は、この機能の標準化に力を尽くし、それに対するサポートをオペレーティング システムに組み込みました。リモート ブートの詳細については、「第 3 章 Zero Administration for Windows」を参照してください。

ページのトップへ ページのトップへ

クラスタリング

ネットワークに依存する組織では、非常に長いアップタイムが要求されます。ダウンタイムは TCO (総所有費用) を増大させる要素の 1 つだからです。ダウンタイムは次のようなイベントが原因となって引き起こされます。

  • ハードウェア障害

  • アプリケーション障害

  • 構成変更後の再起動

  • アップデートとパッチ

Windows 2000 Datacenter Server で新たに登場したクラスタリング機能は、2 つのサーバーが互いに相手をバックアップできるようにするものです。一方のサーバーがダウンしても、フェイルオーバーという手続きによって、もう一方のサーバーがわずかな時間で相手のサービスを自動的に引き継ぐことができます。モニタ サービスが障害を検出し、バックアップ サーバーに仕事を引き継ぎます。

スケジュールされたダウンタイム イベントについては、一方のサーバーがオフライン中のサーバーをカバーします。この手続きはローリング アップグレードと呼ばれ、パッチをあてる際のダウンタイムを最小限にすることができます。業務の終了を待たずにアップグレードできることは、管理者にとって大いに価値があります。結果、ネットワーク サービスの信頼性が非常に高くなり、TCO も削減されます。

複数のコンピュータの間で処理要求の負荷を分散させることで、スケーラビリティをより堅実なものにすることもクラスタリングの目標の 1 つです。Microsoft はフェイルオーバー機能による稼働時間の改善にクラスタリングの焦点を置いていますが、オペレーティング システムのさまざまな要素について負荷を分散させることができます。たとえば、ファイル共有とプリンタ共有を複数のシステムの間でミラー化することができます。また、複数のシステムに要求を自動的に分散させることもでき、その場合、クライアントはクラスタ内のサーバーが故障したとき、自動的に別のサーバーを選択するようになります。

クラスタ サービスは、オペレーティング システム自体に組み込まれています。これによりサードパーティのソフトウェア開発者は COM (Component Object Model) に基づき、可用性を高める独自のソリューションを実装することができます。クラスタに対応した管理ツールは、複数のサーバーの設定を同時に変更できるのでクラスタの扱いは難しくありません。サードパーティの多くのソリューションと違い、Windows 2000 Server は高価なハードウェアや標準外のハードウェアを必要としません。特別な機器を購入しなくても、Windows 2000 Server のクラスタリング機能をフルに活用することができます。クラスタ内のサーバーのハードウェア構成が同じである必要はないので、バックアップ用に低価格のシステムを購入すればコストを抑えることも可能です。

クラスタ内のシステムの間のフェイルオーバーをサポートするために標準的なコンポーネントのいくつかが改良されています。

  • WINS (Windows Internet Name Service)

  • DHCP (Dynamic Host Configuration Protocol)

  • Dfs (Distributed File System)

これらの分散サービスの詳細については、この文書のほかの章を参照してください。

ページのトップへ ページのトップへ

ターミナル サービス

Windows 2000 Server は、ターミナル サービスが組み込まれて出荷された最初の Windows オペレーティング システムです。これらのサービスにより、クライアントはリモート サーバーで対話型のアプリケーションを実行することができます。クライアント システムは入力を受け取り、ユーザーに出力を表示する以外のことは行いません。クライアント システムとサーバーの間のデータのやり取りにはネットワーク インフラストラクチャが使われます。すべての処理はサーバー側で遂行されます。この様子を図 1-4 に示します。Windows 2000 Server では、このテクノロジのことを開発プロジェクトの名前にちなんでしばしば Hydra と呼びます。

この新しい機能により、シン クライアントが利用できるようになり、ネットワークの TCO を削減する効果があります。シン クライアントとは最低限のハードウェアしか装備していないデスクトップ システムのことです。エンド ユーザーのシステムが、高速のプロセッサと大量の物理メモリと大容量のハードディスクを装備していなくても、ターミナル サービスがその代わりを果たします。シン クライアントはサーバーに要求を転送する以外のことは行いません。ユーザーから見れば、フル装備のデスクトップ システムを使用しているのと同じような感じになります。クライアントのハードウェア要件は最低限でかまいません。しかも、ターミナル サービスはデスクトップ システムのタイプも選びません。

introf4

図 1-4: ターミナル サービスはアプリケーションの処理をサーバー側に移すことでクライアントの負荷を軽減する

クライアント側の装備がハードウェア要件が低くてすむのは、旧式のハードウェアを持つ組織にとっても都合がよいことです。既存の Windows for Workgroups 3.11 システムや Windows 95 システムを、オペレーティング システムをアップグレードせずにそのままクライアントとして利用できるからです。古いデスクトップ ハードウェアで新しい 32 ビット アプリケーションを実行できるので、ハードウェアの寿命が延びます。もちろん、Windows 2000 Server には Windows NT 4.0、Windows 95、Windows 98、Windows 2000 Professional のそれぞれに対応したターミナル サービス クライアントが含まれています。

当然のことながら、サーバーはネットワーク上にあるクライアントのすべての負荷以上のものを引き受けるので、ターミナル サービスはより強力なハードウェアを必要とします。しかし、その分のコストはクライアント側の要件が軽くなることで相殺されます。このアーキテクチャには、これ以外の面でもコスト削減効果があります。アプリケーションがサーバーに置かれるので、変更が必要なとき、管理者のアップデートするコンピュータが少なくて済むことです。すべてがサーバーに置かれるので、ユーザーの環境を管理しやすいというメリットもあります。

ターミナル サービスに対応するために、Windows 2000 のカーネルにも設計上の工夫が加えられています。従来の Windows オペレーティング システムは対話セッションが 1 つだけであることを前提としていました。すなわち、コンソールで 1 人のユーザーがコンピュータを直接操作することが想定されていました。ネットワーク上の複数のユーザーにそれぞれセッションを割り当てることができるようにするために、Windows 2000 では Win32 サブシステムが大幅に改良されています。新しい Win32 サブシステムは、複数のユーザー セッションを独立したものとして別々に追跡することができます。キーボード入力とマウス入力の送り先として、アプリケーションだけでなくセッションも考慮されます。各ユーザーはそれぞれ自分のセキュリティ上の制限の範囲で作業します。以上の相違点を次ページの図 1-5 に示します。

introf5

図 1-5: Windows 2000 の Win32 サブシステムは複数のユーザー セッションを管理できる

この新しいアーキテクチャについて考えるとき、これは理にかなった方法だといえます。具体的にはユーザー セッションごとに別の Win32 プロセスが生成されます。これはユーザー セッション間でアプリケーションの通信が生じないことを保証し、結果としてユーザーのプライバシを保護することになります。こうしたカーネルの変更は、ターミナル サービスを使わない管理者には影響しません。しかし、それらを利用するつもりなら、以上の変更点について十分に理解することが重要です。

ページのトップへ ページのトップへ

多言語対応

Microsoft のオペレーティング システムは、元々は米国向けに作られていました。それらはアルファベットと英語のテキストだけをサポートし、ほかの言語圏向けのアプリケーションを作るための機能は備えていませんでした。しかし、Windows が世界中で使われるようになると、ほかの言語圏向けのアプリケーションも開発され始めました。オペレーティング システムが多言語対応を想定して作られていなかったため、この開発は簡単ではありませんでした。その後、Windows は代を重ねるにつれて、ほかの言語圏のユーザーをサポートする機能を増やしてゆき、それらのユーザーのためのアプリケーションを開発する環境も整備されてきました。現在、Windows 2000 オペレーティング システムは、今までのどの Windows オペレーティング システムよりも充実した多言語対応の機能をサポートしています。

Windows 2000 のカーネルは特に多言語対応を意識して設計されています。オペレーティング システム内部の全要素で Unicode が使われているので、オペレーティング システムを複数の国語に簡単に対応させることができます。NLS (Native Language Support) は地域および言語に関する情報をレジストリに保存できるようにし、アプリケーションから照会できる統一的なローカライズ インターフェイスを提供します。これらの機能を利用して、開発者はさまざまなロケールで動作するアプリケーションを作ることができ、ユーザーは各自の要件に応じて自分の環境をカスタマイズすることができます。

Unicode

Unicode とは、Unicode Consortium (世界中のシステムが通信できるようにする標準の作成を目的に設立された組織) によって作られた標準の 1 つです。この標準は、ANSI 標準と同じように文字とバイトの対応関係を定義するものです。これは 1 つの文字セットですべての言語をカバーする点で ANSI よりも優れています。ANSI では言語ごとに別の文字セットが必要とされます。

メモ Unicode Consortium の詳細については、Web サイト(英語) を参照してください。

Unicode は ANSI よりも多くの文字に対応しています。ANSI は 8 ビット文字を使用しているため、256 個の文字をサポートできます。しかし、これは多くの言語で大文字と小文字を含む文字セットをカバーするには足りません。Unicode は 16 ビット文字を使用しているため、65,536 個の文字をサポートできます。現在、38,887 個の文字がコード化されており、それらはアフリカ、インド、アジア、ヨーロッパ、中東、北アメリカ、南アメリカの主要な言語をサポートしています。

Unicode フォント
Unicode は約 40,000 文字をサポートしています。しかし、これらのすべてを表示できるフォントはありません。さまざまなフォントが Unicode 文字セット全体を部分的にサポートしているため、今もなお言語ごとにロケールに固有なフォントをインストールして使う必要があります。

Windows 2000 は Unicode をサポートしており、オペレーティング システム内部の全要素で使われています。たとえば、NTFS ファイル名は Unicode 文字で構成されます。これによりオペレーティング システムのロケールとは関係なく常に同じファイル システムを使うことができます。Unicode を使うようにアプリケーションをコーディングすることができますが、すべてのアプリケーションでそうする必要はありません。

Native Language Support (NLS)

Native Language Support (NLS) により、管理者はロケール固有の情報でオペレーティング システムを構成できます。この API は、Windows NT の最初のバージョンから組み込まれていました。これは約 100 個の設定をレジストリに保存し、その情報にアクセスするインターフェイスを提供するため、特定のシステムでどのロケールに固有の設定を使えばよいかをアプリケーションから簡単に調べることができます。

ロケール固有情報は、ユーザーの好みの言語を記憶しなくて済むようにします。国が違えば日付、時間、週、月などの形式も異なります。標準の API セットを提供することで、ユーザーが各自の環境に応じてアプリケーションをいちいち構成しなくて済むようになります。オペレーティング システムさえ構成されていれば、どのアプリケーションからもオペレーティング システムの設定を照会できるからです。

その特定の言語圏で必要なファイルだけをインストールするだけですみます。それらのファイルに必要な領域は、Windows 2000 のサポート対象となっているすべての国語をインストールする場合と比べすっと小さくてすみます。

ページのトップへ ページのトップへ

要約

Windows 2000 Server の中心をなすのがカーネルです。このカーネルは、Windows NT Advanced Server 3.1 と同じアーキテクチャに基づいていますが、最近のネットワークに関する要件の変化も取り入れて発展してきました。このカーネルにより、オペレーティング システムのスケーラビリティが拡大し、最大 32 プロセッサと 32 ギガバイトの物理メモリがサポートされます。また、Microsoft SQL Server のようなデータベース アプリケーションでは、そうした大規模なハードウェアを活用し、機能の一部をカーネルに移すことでパフォーマンスの向上を図れます。プロセッサ クォータやプロセス アカウンティングといった機能により、Windows 2000 Server は Web ホスト環境向きの非常に魅力的なプラットフォームとなっています。カーネルにクラスタリング機能が組み込まれたことにより、冗長度を高めてネットワークの稼働時間を大幅に改善することが可能となりました。また、Windows 2000 Server の多言語対応とローカライズの機能はどの Windows オペレーティング システムよりも優れており、言語およびロケールに関する機能の柔軟性に特色があります。

以上の記事はマイクロソフト プレス日本語版に所有権があります。

Copyright 1999, Microsoft Corporation.

本書に記載されている情報は、発行時点で議論されている問題点に関する Microsoft Corporation の最新の見解を示しています。Microsoft は変化する市場状況に対処しなければならないため、本書の内容を Microsoft の確約事項として解釈してはならず、Microsoft は発行日以降に提示された情報の精度についてはいかなるものであれ保証致しません。

本書は、情報の通知のみを目的としており、Microsoft は本書に記載されている情報について明示的にも暗黙的にも一切の保証を致しません。

Microsoft、Active Directory、Windows、Windows NT は米国 Microsoft Corporation の米国およびその他の国における登録商標または商標です。

その他、記載されている会社名および製品名は、各社の商標および登録商標です。

International rights = English only.

ページのトップへ ページのトップへ