現在はLinuxとWindowsで動くサーバー・アプリケーションの差は少なくなってきた。確かにLinuxが登場して間もない1990年代は,商用UNIXやWindowsでなければ動作しないアプリケーションが多かった。しかし現在では,「Oracle Database」や「Notes Domino」といったメジャーな業務アプリケーションの多くがLinuxで動作する(表1)。

表1●UNIX系OSとWindowsの主な実行環境
表1●UNIX系OSとWindowsの主な実行環境

 サーバー製品に限れば,Windowsでしか動作しないアプリケーションはマイクロソフトの製品だけと言っても過言ではない。ただマイクロソフトの「Access」や「MSDE」といったデータベースを組み込んでいることが多い国産のERPパッケージを使いたい場合は,Windowsのみの対応であるケースがままある。

 マイクロソフト製品と好対照を成しているイメージがあるLinuxとWebサーバー「Apache,データベース「MySQL」,そして言語処理系の「PHP」「Perl」で構成される実行環境のLAMPは,実はあまりOSに依存しない。それらソフトウエアがもともとオープンソース開発によるものであるため,WindowsはもとよりLinuxと並ぶUNIX風OSの「FreeBSD」や,FreeBSDのシステム・モジュールを取り入れた「Mac OS X Server」でもApache,MySQL,PHP/Perlのパッケージが存在する。

選べるLinux,選べないWindows

 LinuxとWindowsでまず変わらない違いが価格以外にもう一つある。開発体制だ。Linuxは有志コミュニティによるオープンソース開発。Windowsはマイクロソフトの単独開発である。Linuxはさまざまなベンダー,コミュニティが開発する派生版(ディストリビューション)が数多くある(図3)。対するWindowsは,互換OSと呼べるものは存在しない。

図3●主なLinuxとWindowsのパッケージ
図3●主なLinuxとWindowsのパッケージ
Linuxは商用/無償の派生版(ディストリビューション)が多数あり,それぞれカーネルやシステム・モジュールのバージョンや種類が異なる。Windowsは基本的にカーネルとモジュールは共通で,最大CPU数やメモリー,ライセンス上の制限でエディションを用意している。
[画像のクリックで拡大表示]

 Linuxはソースコードが公開されているため,商用と無償とを問わずパッケージの種類が豊富である。一口にLinuxと言っても,組み合わせるモジュールの種類やカーネルのバージョンによって,アプリケーションの導入や運用管理の手順が違う。メーカーのサポートを受ける必要があれば商用の「Red Hat Enterprise Linux」,インストールの簡単さなら無償の「Ubuntu 」といったように,スキルや目的などに合わせて選ぶ余地がある。

 Linuxディストリビューション以外にも,FreeBSD,Mac OS X Serverなど,実行環境としてLinuxと同等と見なせるOSがある。FreeBSDは,ネットワーク機器の組み込みOSとして広く使われるなど,ネットワーク周りのスタックに定評がある。Mac OS X Serverは,導入が簡単でMacintoshクライアントとの親和性が高い。そうした特徴を重視して選ぶ手もある。

 ただ非LinuxのUNIX風OSは,「Solaris 」に代表される商用UNIXに比べれば商用パッケージの動作環境としてはマイナーである。このため,インテグレータの個別対応や,ソースコードからアプリケーションを構築(ビルド)するスキルが必要になる。そうした環境にあるユーザーであれば,Linux以外のUNIX風OSも選択肢になり得るだろう。

 これがWindowsであれば,選択に迷う要素がほとんどない。機能制限がない「全部入り」か,利用できる機能に制限のあるパッケージのいずれかを選ぶことになる。

 Windows Serverのパッケージは大きくは32ビット版と64ビット版に分かれており,それぞれに大規模向けの「Datacenter」「Enterprise」,中小規模向けの「Standard」といったグレードがある。機能の違いは,CPU数の上限やメモリーの数,負荷分散機能の有無といった,主にハードウエアの構成によって決まる要素が多い。

GUIを省いたWindowsが登場

 ここ1年でぐんと差が縮まりそうなのが,ユーザー・インタフェース(シェル)である(画面1)。Linux対Windowsを語る上で一番目に付きやすかった「コマンド入力がメインのCUIに抵抗がなければLinux,GUIが良いならWindows」という構図が崩れてきている。

画面1●Linuxと次期Windowsサーバー「Windows Server 2008」のデスクトップ
画面1●Linuxと次期Windowsサーバー「Windows Server 2008」のデスクトップ
LinuxはCUI(キャラクタ・ユーザー・インタフェース)が基本でGUI(グラフィカル・ユーザー・インタフェース)は補完的な位置付け。WindowsはGUI一辺倒だったが,2008年の出荷を予定するWindows Server 2008でCUIを前面に押し出した動作モードを追加する。
[画像のクリックで拡大表示]

 まずLinuxは,X Window Systemと呼ぶGUI基盤と,その上で動作するデスクトップ環境である「GNOME」や「KDE」の完成度が向上。Linuxのコマンドを知らなくても,一通りの操作は可能である。

 もちろんコマンドに習熟しているユーザーや,余計なソフトウエアを動作させたくないユーザーであればCUIのシェルを選べる。それらのユーザー・インタフェースはLinuxカーネルからは等価なので,好みに合わせて使い分けられる。

 ところがWindowsのシェルは,ウインドウ描画が前提のGUIアプリケーション「エクスプローラ」である。CUIを提供する「コマンドプロンプト」は,エクスプローラの起動後にWindowアプリケーションの一つとして利用することになる。GUIが主,CUIが従という設計思想だ。どちらか一方だけを動作させることはできない。CUIだけを使いたいユーザーにとっては,GUIはメモリーの無駄でしかない。

 この制約を緩和するために,次期サーバーOSの「Windows Server 2008」では「Server Core」という動作モードを用意する。Server Coreモードでインストールすると,サーバーOSとして必須ではないモジュールは組み込まれない。ログイン画面はこれまで通りGUIだが,ログイン後に起動するのはコマンドプロンプトだけになる。WebブラウザのInternet Explorerなどは省かれ,メモ帳など一部アクセサリをコマンド経由で立ち上げられる程度になる。

 これまで見てきたように,絶対的な差が少なくなってきたLinuxとWindows。ただユーザー管理については,ディレクトリ・サービスの「Active Directory」を標準で持つWindowsに一日の長がある。そこで次回はLinuxで使える無償のディレクトリ・サービス「Open LDAP」と,Windows Server 2008で機能拡張する新Active Directoryの違いを解説する。