特集
Windows 9x or Windows 2000?

1.イントロダクション

デジタルアドバンテージ
2000/07/18

 Windows 2000は、フル32bit OSとして新規開発されたWindows NTの後継OSであり、メモリ管理やプロセス管理、ファイル システムなど、Windows 9xのそれから大幅に信頼性や機能性が向上されている。従来のWindows NT 4.0(以下NT 4.0)は、プラグ アンド プレイに未対応だったこと、そして何より、PCカード サポートが実質的に用意されていないなど、特に日本国内では多くのユーザーが存在するノートPCでの利用が困難だったことから、広く普及するには至らなかった。しかしこれらほとんどの欠点は、Windows 2000で克服されている。実際問題として、Windows 9xから比較した機能的なデグレード(見劣り)などはWindows 2000でほとんどなくなったため、企業でのクライアント用途はもちろん、家庭用途としても、多くの場合はこれといった問題もなく使えるだろう。しかしだからといって、無条件に既存のWindows 9x環境をWindows 2000にアップデートするとか、新規導入時には無条件でWindows 2000を選択すればよいというわけではない。

 また先ごろマイクロソフトは、現在のWinodws 98 SEの後継として、2000年内にもWindows Meを発売すると発表した(Windows Meの詳細については別稿の「Insider's Eye:Windows Meの全貌」を参照)。現Windows 9xユーザーは、次はWindows 2000に行くべきか、それともこのWindows Meに行くべきか?

Windows 9xか、Windows 2000か?

 すでに述べたとおり、Windows MeはWindows 98 SEの後継であり、OSコアはWindows 98 SEと基本的に変わらない。以下本稿では、今なお一部に16bitコードを含むWindows 9xラインアップのOS、具体的には、Windows 95、Windows 98、Windows 98 SE、Windows Meのすべてをまとめて「Windows 9x」と表記することにする。特に断りなく「Windows 9x」と表記されている部分は、これらすべてのOSに当てはまるものとお考えいただきたい。

 さて、Windows 9xとWindows 2000の比較だが、まず第一に、Windows 9xに比較すると機能性で大きく勝る分、一般的に言ってWindows 2000のワーキング セット(必要物理メモリ量)は大きく、Windows 9xよりも多くのメモリやディスクが必要になる。また基本的には、Windows 2000でも従来のDOSアプリケーションや16bitのWin16アプリケーションとの互換性は維持されているが、内部的な設計の問題から、Windows9xと比較すると、ものによっては正しく実行できないケースもありうる(この理由の詳細については、本記事で後述する)。そして何より、過渡的な問題ではあれ、Windows 2000のデバイスドライバ サポートはまだ十分とは言えない。使えるドライバが用意されていなければ、周辺機器はまったく使用不能になってしまう。これはOSの信頼性や機能性うんぬん以前の問題だ。

 それでは、既存のWindows 9x環境はWindows 2000に移行すべきなのか、それとも移行せずに現状を維持すべきか?PCを新規導入する場合、OSにはWindows 2000を選ぶべきかどうか?個人ユーザーが自分1人の環境を選択するなら多少の失敗は許されるかもしれないが、ITプロフェッショナルなどが組織的に新たなOSの導入を決断するとなると、この答えを導き出すのは簡単ではないだろう。

 もちろん、結論をここで一刀両断することは不可能だ。最終的には、個別のケースに応じて、ユーザーが自分自身で判断しなければならない。Windows 2000がWindows 9xと比較して勝っている点は具体的に何なのか?その違いは自分の仕事にどう影響を及ぼすのだろうか?あるいは逆に、Windows 9xにできて、Windows 2000でできないことは一体何だろうか?以下本稿では、両OSの内部構造を踏まえながら、この疑問に答えていくことにする。

似て非なるOS、Windows 98とWindows 2000

 下の画面は、Windows 98 SE(上)とWindows 2000(下)のデスクトップである。アプリケーションの起動など、Windows 環境における多くの操作の起点となる[スタート]メニューや(画面左下)、その時点で実行されているアプリケーションをボタンとして一覧表示し、これをクリックすることで、テレビのチャンネルを切り替えるようにしてアプリケーションを切り替えられるようにしたタスクバー(画面下部)、現在時刻やかな漢字変換プログラム、バッテリ、電子メールの到着など、Windows環境のさまざまな状態を表示するインジケータ領域(画面右下、「システム トレイ」と呼ばれることもある)、ファイルやフォルダを操作するエクソプローラなど、少なくともユーザーの視点からこれらを見比べても、違いはほとんど感じられない。これらのユーザー インターフェイスは、いずれもWindows 95で新たに導入されたものがベースとなっている。

 またいずれもWin32という共通のアプリケーション インターフェイスを提供しているので、特殊なデバイス ドライバに依存したり、低レベルなシステム機能に依存する一部を除けば、同じアプリケーションをどちらの環境でも実行できる。

 マイクロソフトは、Windows 2000 Professional(以下Proと略)プレインストール モデルの設定を主要PCベンダに積極的に働きかけており、多くのベンダがこれに応じて、自社のハイエンド モデルにWindows 2000 Proをプレインストールして販売している。つまりこの原稿を執筆している2000年7月現在、PCショップの店頭には、「少々高いがマイクロソフトの新しいWindows OS(Windows 2000 Pro)を搭載したPC」と、「少々安いが、一世代前のWindows OS(Windows 98 SE)を搭載したPC」が並んでいるわけだ。そして両者のデスクトップは下のとおりそっくりである。混乱がなければよいのだがと、老婆心ながら心配してしまう。

98
Windows 98 SEのデスクトップ
[スタート]メニューやタスク バーなど、基本的なユーザー インターフェイス要素はいずれもWindows 95で確立されたものである。

2000
Windows 2000のデスクトップ
上のWindows 98 SEとの明らかな違いといえば、[スタート]メニューに表記されたOSの名称くらい。ユーザー インターフェイスとしては常にWindows 9xにリードを許してきたWindows NTだが、NT 4.0から、Windows 9xとのインターフェイスの共通化が達成された。

 しかしこの見た目とは裏腹に、OSの内部構成はまったくといってよいほど両者で異なっている。

 たとえば読者がWindows 98を使っているなら、アプリケーションで何らかの時間がかかる処理を実行しているとき、マウス ポインタの形状が砂時計マークになったまま、ただじっと待つしかない場面が少なくないことを知っているはずだ。しかしWindows 2000では、このような待ち時間でも別のアプリケーションをアクティブにして、そちらを操作できる可能性が高い。これなどは、OSの内部構成の違いが、使い勝手の差として現れた一例である。

 それでは、なぜ外見はそっくりでありながら、内部構成のまったく異なるOSを開発し、かつ両者を並売しなければならなくなったか。この理由を理解するには、両Windows OSがこれまでに歩んできた歴史的な背景を知る必要がある。

16bit環境との互換性を最優先させたWindows 9x

 Windows 9xとWindows 2000を比較検討する第一歩として、両OSの土台となっているWindows 95およびWindows NTの開発背景をまとめてみよう。両OSの開発にあたって掲げられた設計目標を比較すると次のようになる。

  Windows 95の設計目標 Windows NTの設計目標
1
広く普及したWindows3.1からスムースに移行できること 市場ニーズの変化に応じて、コードを拡張・変更可能な拡張性を持たせること
2
MS-DOSや16bit Windows環境(Windows 3.x)向けに開発された多数のアプリケーションとの完全な互換性を維持すること Intel x86アーキテクチャだけでなく、必要に応じて他のプロセッサ アーキテクチャにも移植可能であること
3
セットアップや利用、管理が容易な環境であること システムの内部的な障害、および外部からの干渉からシステムを守り、信頼性と堅牢性を確保すること。OSがシステム全体を掌握し、アプリケーションによってシステムが破壊されたりしないようにすること
4
システムの基本機能を大幅に向上させ、このメリットをWindowsアプリケーション プログラマに提供すること。より大量のメモリとリソースを提供し、時代のニーズに合った高性能で、複雑なプログラムもサポートできること ユーザー インターフェイスやAPIは他のWindows環境(Windows 3.x/Windows 9xなど)との互換性を維持すること
5
Windows 95と同時に開発が進められていたWindows NTやWindows for Workgroups 3.11との互換性を最大限維持すること 他のゴールを達成したうえで、できる限り高い処理性能を実現すること

 現在のWindowsの成功を支えた大きな要因の1つは、新機能の追求というハデな部分に目を奪われるばかりではなく、そうした新機能を取り入れながらも、過去の資産との互換性維持に神経を使ってきたからだろう。MS-DOSからWindows 1.x、2.x、3.x、そしてWindows 95へと、よりリッチな環境をと先走るプログラマからは落胆の声が聞こえるくらい、マイクロソフトは過去の資産を重視してきた。実際、Windows 95(開発コード名Chicago(シカゴ))の開発が公にされた1994年当時、Windows 3.1はすでにPC市場で主流のOSに成長しており、これに対応したアプリケーションが多数販売されていた。「マイ コンピュータ」や「ごみ箱」をオブジェクトとして配置したデスクトップ、前出の[スタート]メニューや[タスク バー]、インジケータ領域など、現在のWindowsインターフェイスの原型はこのWindows 95で形作られたといってよい。それだけエポック メイキングなOSでありながら、Windows 95の設計目標の最初の2つには、「過去の資産との互換性」が並んでいる。どれだけ優れたユーザーインターフェイスやOSカーネルであろうと、既存の資産を投げ捨てなければ移行できないのでは、到底受け入れられないという判断である。つまりWindows 95の設計指針を一言でいえば、「過去の資産を最大限活かすという前提で、新しいインターフェイスやOSの機能をどこまで拡張・強化できるか」ということになるだろう。結果からいえば、この方針がWindows OSの大躍進を支えることとなった。

拡張性やスケーラビリティ、堅牢性を重視したWindows NT

 一方のWindows NTはどうだろうか。NTの開発が始まった1980年代後半から1990年代前半、PCに搭載されたマイクロプロセッサは、16bitプロセッサの80286(1982年発表)から32bitプロセッサのi386(1985年発表)、i486プロセッサ(1989年発表)への移行期にあった。すでにパーソナル コンピュータは、ビジネス シーンでも不可欠な存在であったが、残念ながらグラフィカルなマルチウィンドウ システムを構築するには、システム性能はまだまだ非力と言わざるを得ず、PCではビジネスの要求に応えられない場面も少なくなかった。ビジネス シーンでは、以前よりUNIXなどをベースとするワークステーション(国内では「オフコン(オフィス コンピュータ)」などと呼ばれた)が広く使われており、当時のワークステーションは、高価ではあったが、PCでは不可能な機能性やスケーラビリティを提供してくれていた。

 こうしたUNIXワークステーションは、MIPSのRシリーズやDEC(現Compaq)のAlpha、SunのSuperSPARC、Motorola/IBMのPowerPCなどのRISCプロセッサを搭載していた。Intel x86プロセッサがボトムアップ式でワークステーション市場を狙う一方で、こうしたRISCプロセッサ ベンダは、コストパフォーマンスを向上させることで、トップダウン式に低価格だがパイは大きいPC市場を狙っていた。

 Windows NTの設計目標の1.や2.は、このような背景を反映したものだ。すでにマイクロソフトは、Windows 3.xを広く普及させることに成功していたが、Windows 3.xのカーネルは、性能が重視される部分でアセンブリ言語が使われているなどIntel x86アーキテクチャに強く依存しており、他のプロセッサに移植することは事実上不可能だった。よって万が一、ビジネス コンピューティングのハイエンドをRISCプロセッサに押さえられるようなことになれば、Windowsの市場はローエンド向けのみに制限されてしまう。こうした脅威を回避して、どのようなコンピュータ システムに対しても、必要に応じて容易にWindows OSを移植できる体勢を整える必要があったわけだ。

 Windows NT開発のもう1つの大きな目的は、OSの信頼性や安全性、セキュリティ機能を向上させ、ミッション クリティカルなビジネスでの利用にも耐えられるようにすることだ。これがWindows NTの設計目標の3.である。故意か事故かによらず、アプリケーションがどのような悪さをはたらいても、システムが自身を守れるようにするには、OSの機構をまったく新しく設計し直したり、防御機構をシステムの随所に組み込んだりしなければならない。しかしWindows 3.xおよびその後継であるWindows 9xでは、性能が低く、メモリやディスク容量も制限的なPCでも利用できるように、信頼性や安全性といった要素は後回しにせざるを得なかった。

 Windows 9xカーネルとWindows 2000 Professionalカーネルの基本仕様を比較すると次のようになる。

  Windows 9x Windows NT
対応プロセッサ Intel x86 Intel x86/Alpha*1
カーネル構成 KERNEL(32bit)/GDI(一部16bit)/USER(ほとんど16bitのまま) フル32bit
最大物理メモリ
4Gbytes
1プロセスあたりの論理メモリ空間 4Gbytes(32bit) 4Gbytes(32bit)
マルチタスクのタイプ プリエンプティブ プリエンプティブ
マルチスレッド サポート
マルチプロセッサ対応
×
システム リソースの制限 あり ほとんどなし
プラグ アンド プレイ
ノートPCサポート
API Win32(一部16bitによる制限あり) Win32(フル32bit)
システムのリエントラント性(再入可能性) KERNEL(リエントラント)/GDI(一部リエントラント)/USER(ほとんどは非リエントラント) 完全リエントラント
対応ファイルシステム FAT16/FAT32 NTFS/FAT16/FAT32/HPFS
ファイルの暗号化
×
○(NTFSボリュームのみ)
ファイルの圧縮 ○(ボリューム単位)
○(NTFSボリュームのみ)
ファイルのアクセス セキュリティ
×
○(NTFSボリュームのみ)
アプリケーション サポート DOS/Win16/Win32 DOS/Win16/Win32/POSIX
/OS/2 1.x
複数のWin16アプリケーションの処理 すべてのWin16アプリケーションを同一VM、同一メモリ空間にて実行 Windows 9xと同等の方式に加え、各Win16アプリケーションごとに独自のVM、メモリ空間を割り当てることが可能
16bitデバイス ドライバの実行
×
OS内部での文字コード表現 ANSI/Shift JIS Unicode
ユーザー モード アプリケーションによるシステム破壊の可能性 可能性あり 基本的になし
MS-DOS、Windows 3.xアプリケーションとの互換性 行儀の悪いアプリケーションを含め、互換性維持に最大限の配慮がなされている 基本的な互換性を提供するが、行儀の悪いアプリケーションなどは実行できない
Windows 9xとWindows 2000の基本仕様比較
*1:現在はサポートが打ち切りになってしまったが、従来のWndows NTは、MIPS Rシリーズ、IBM/Motorola PowerPC、DEC Alphaプロセッサ搭載システム上で稼働していた。

 この表を見ただけでは、意味がよく分からない項目があるかもしれない。さてそれでは、それらの解説も含めて、Windows 9xとWindows 2000の内部に踏み込んでみることにしよう。

関連記事(Windows Server Insider)
  Insider's Eye:Windows Meの全貌
     

 INDEX
  [特集]Windows 9x or Windows 2000?
   1.イントロダクション
     2.Windows 9xカーネルの概要
      コラム:Windows歴史、メモリの歴史(1)
      コラム:Windows歴史、メモリの歴史(2)
     3.Windows 2000カーネルの概要 (1)
     4.Windows 2000カーネルの概要 (2)
     5.プロセス管理の概要
     コラム:Windows 3.xのマルチタスク システム
     6.Windows 9xのプロセス管理メカニズム (1)
     7.Windows 9xのプロセス管理メカニズム (2)
     8.Windows 2000のプロセス管理メカニズム (1)
     9.Windows 2000のプロセス管理メカニズム (2)
 
 特集


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

注目のテーマ

Windows Server Insider 記事ランキング

本日 月間