「UNIXとMicrosoft Windows NT Server 4.0の比較文書」修正版

1999年2月11日更新

・Update
"ソフトの導入コスト"の部分にちょっと追加しました。(1999/2/11)
"開発コストは?"の部分に追加しました。(1999/2/11)
DNS関連で修正をしました。(1999/1/24)
その他多少文章の修正。(1999/1/24)
リモートメンテナンスでVNCの事を追加しました。(1999/1/21)
セキュリティ関連でちょっと追加しました。(1999/1/22)

・始めに。
UNIXとWindows NTを比較した文章は時々見掛けますが、最近インターネットニュースでMicrosoftがこの種の文章をWWWで公開していると聞き早速見てみましたが、 あまりの内容の酷さにびっくり。
この文章は、 明らかに悪意を持ってUNIXを扱き下ろしています、そしてWindows NT Serverを事実以上に素晴らしい物として宣伝をしています。
何も知らない人がこのページを読んで、それを信じてしまったらとても悲しい事です。 そこでこのページ(以下オリジナル文章と記述)を修正して正しいUNIXとWindows NT Serverの比較をしてみたいとおもいます。
なおJohn Kirch氏による「UNIXとWindows NT Server 4.0の比較」という素晴らしい文章があります。 日本語訳はこちら

Microsoftのオリジナル文章からの引用は「」で括って文字色を赤にしています。 オリジナルは表組してありますが、 修正版は文章の量がオリジナルより多いので表に組み込むと読みづらいと思いましたので表からはずしています。
なおここで言うUNIXとは商標としてのUNIXではなく、UNIX互換のオペレーティングシステム全体を指すこととします。


「UNIXは、1980年代後半頃から、ハードウェアの技術革新とともに、エンジニアリング向けワークステーションとして発達してきたサーバーOSです。」 UNIXはサーバ用OSではありません、サーバとして使うと優れた性能をだすのでサーバとして使われることが多いだけで、クライアントとしても使われています。
「一方、Microsoft Windows NT Server4.0はUNIX に比べて後発であるもの の、従来のOSにとらわれず、ネットワークOSとして新たに開発されたものです。」 この後に少し追加してみます。
Windows NTは後から作られたもののUNIXなどの古くからあるOSの良いところを使い悪いところを捨てるという作業に失敗してしまいました。 これはWindows 3.x、Windows 9xがMS-DOSとの互換性を持たす必要から古い作りを 引き摺ってしまったのと同様に、Windows NTもWindows 3.x、Windows 9xとの互換性を持たす必要から自由な設計ができなかったからではないでしょうか? そして、Microsoftの製品がつねにそうであるように、どんどん肥大化して行ってしまいました。 その結果OSとしての一番大切な、安定性、速度に問題のあるOSになってしまいました。

アプリケーションの種類は多い?
Windows NT ServerUNIX
Microsoft
修正評価
UNIXアプリケーションの数は非常に多く、なぜ△の評価なのか謎です。実際 UniForum の会員に送られてくるUNIX Products DirectoryというUNIXのアプリケーションカタログは、1800ページ以上もあり数多くの製品が載っています。(1995年版、現在はCD-ROMになりました)
そもそも「アプリケーションの種類は多い?」という設問自身がナンセンスで数を比べても意味がありません。 使う人により必要なアプリケーションは違うので、この設問はユーザ毎に答が変わるものです。

フリーソフトの使いやすさは?
Windows NT ServerUNIX
Microsoft
修正評価
まずオリジナル文章で書かれている、UNIXでは「一般の利用者が恩恵を受けるケースはほとんどない」といのは大嘘である。 例えば、一般の利用者でいまや電子メール、WWW、データベースを使わない者は非常に少数であろう。UNIX上では、これらのサーバ、クライアント共にすぐれたフリーソフトウェアがあり使われている。
さらに、クライアントとしてWindowsを使っている人でさえも、インターネットへアクセスした瞬間にUNIX上で動いているフリーソフトウェアの恩恵を知らず知らずに受けています。
「自分のマシンにあわせて改造が必要のため、プログラム知識がないと使えない。」 というのも嘘である。 実際は"ソースコードが提供されているので改造ができる"であり、改造しないで使うのが普通でプログラミングの知識は必要ではない。
FreeBSDやLinuxでは実行形式で提供されていて(もちろんソースコードも提供される) コンパイルといった作業は不要になっており扱いは楽である。

買い求めやすさは?
Windows NT ServerUNIX
Microsoft
修正評価
UNIXワークステーションが欲しければ、 伊藤忠テクノサイエンス日商エレクトロニクス などの大手商社に電話をすればすぐに営業が来ます。 FreeBSDやLinuxが欲しければ書店でCD-ROM付の書籍や雑誌ですぐに手に入ります。 Windows NT Serverは小さなパソコンショップでは無いことが多いですが、入手に苦労することもないでしょう。

マニュアル
Windows NT ServerUNIX
Microsoft
修正評価
UNIXでは 「書籍の種類も少なく、比較的高価である。また、高度な技術者レベルでなければ 使いこなせない。初心者向けは存在しないに等しい」 これも大嘘です。 UNIXの書籍は非常に多く、大きな書店に行けばわかりますが、Windows NTについて書かれた書籍よりもUNIXについて書かれたものの方が多く出版されています。
最近FreeBSDやLinuxが流行しているため、初心者向けの本が多く出版されています。 初心者向けの本ばかりが出版されていて物足りなく感じるのは私だけでしょうか?
一方Windows 95,98の初心者向けの書籍は大量にありますが、Windows NTの書籍(特にNT Server)は初心者向けの本が少なく技術者向けの書籍が目につきます。 価格について言えば、技術者向けの書籍はUNIX向けもWindows NT向けもどちらも高価であります。

操作は簡単か?
Windows NT ServerUNIX
Microsoft
パソコン初心者
上級者
GUIの出来
CUIの出来
この設問は答を別けました。
UNIXでは 「一般的には、文字入力によってプログラムを操作するCUI(キャラクタ・ユーザー・インターフェイス)を採用している。」 このコメントは数少ない本当の事です。:-P
UNIXではGUIで操作をしない部分が多いのは本当です、そのため初心者にとって取っつきにくいという面は否めません。 ではなぜGUIで操作できる部分が増えないのでしょうか? 答は、GUIなら操作しやすいということはないからです。CUIの方が操作がしやすいケースはたくさんあります。
例えば、100個のファイルの処理をし、名前を変えてセーブするようなケースでは、 UNIXではシェルスクリプト等を使えば5分もかかりません。(シェルスクリプトを書く時間も含めて、ただし処理が数秒程度ですむ場合) 同じことをGUIでやれば30分以上かかった挙げ句、ファイル名をいくつも間違えるのが関の山です。
GUI=操作性が良い、CUI=操作性が悪いというのは間違いです。
Windows NTではCUIの部分が非常に弱く、そのため上級ユーザには不満が出ます。 またそのため、この次の設問の"運用管理"で大きなハンデとなっています。 "要するにGUIがすべて"であるようなユーザインターフェースは使い易くないという事です。(特に上級者に) GUI、CUIともに必要と考えます。 (因にUNIXワークステーションを販売しているSUN Microsystems、Hewlett Packard、 Silicon Graphicsなどは皆Windowsのエクスプローラのようなインターフェースを持つプログラムを持っています。)
さて、GUIとCUIの比較とは別に初級者では◎とした評価を上級者では△とした理由のもう1つの大きな理由は、カスタマイズ機能が貧弱な事を挙げておきます。 例えばWindowsであるウィンドウをアイコン化しようとして、右上の小さな□ボタンを押そうとしてイライラしたことはないでしょうか? Windowsでは、こういった基本的な操作のカスタマイズは不可能です。(もしやり方を知っている方は教えてください)
UNIXでは、この操作を含め、ほとんどの操作をユーザが好きなようにカスタマイズできるので上級者にとって非常にありがたい事です。 ユーザ事に操作環境をカスタマイズするという点ではUNIXはWindowsと比較して大きく優れています。

管理者の操作は簡単か?
Windows NT ServerUNIX
Microsoft
修正評価どちらも同じレベルの知識を必要とする
ユーザインターフェースという部分では、これは前の設問と同じことなのでちょっと違う見方をしてみます。 UNIXまたはWindows NT Serverをサーバとして使う場合の設定に関する知識はどちらも同じレベルのものが要求されます。
例えば、"IPは何であるとか、DHCPサーバを設定するには動的に割り当てる部分がXXで静的に割り当てのはここで"とか"ネームサーバは何でメールサーバはこう設定して"とかいった知識です。
これらはOSの操作を学習するよりも難しい部分であります。 UNIXの操作は普通の大学生が普通に使っているぐらいなので、学ぶのはそれほと難しいわけではありません。「高度な専門知識を必要とする」は嘘です。
ユーザとして注意するのは、コンピュータの専門家(あるいはSEなど)と称する人間が、 "UNIXを使うのは難しい"と言っているのを聞いたら、それより難しい事はおそらく(まともに)出来ないであろうと思って警戒する事です。

ネットワーク関連の運用は?
Windows NT ServerUNIX
Microsoft
修正評価設問の回答が不明なため評価できず
この設問では、オリジナル文章の説明は理解できませんでした。
まず、「DHCPという機能を使って自動的に割り当てたり、データベースを管理するDNSの管理を簡略化することができる。」 という部分では、DHCP(に限らずほとんどのネットーワーク関連の)の実装(動くプログラムを作るという事です)はUNIXが先で、Windows NTの優位性にはなりません。
「DHCPという機能を使って自動的に割り当てたり...」の部分ですが、これはMicrosoftのDNS + WINS + DHCPの組み合わせで、WINSの情報を自動的にDNSに登録する(この機能はOFFにできない?)機能の事だと思いますがこれはなかなか凄まじいもののようです。(笑)
例えば、"のーてくさーば"という日本語のホスト名を付けると、シフトJISのまま"のーてくさーば.xxx.co.jp"などとDNSに登録されます。外部向けのネームサーバにシフトJISのホスト名なんかが登録されていると恥ずかしいので (笑) NT Serverを使っている人は注意が必要です。
普通はクライアントとして使われるPCのユーザはホスト名をいい加減に付けてくれます。ですので日本語のホスト名や同じホスト名を付けれくれたりといろいろやってくれまして、WINSの情報をDNSに自動的に登録されるとDNSの情報が滅茶苦茶になります。ですので、ホスト名の付け方は管理部門でしっかり管理しておかないとだめです。要するに管理の手間は減らないという事です。
他にもMicrosoftのDNSはちゃんと動かないという話は良く聞きます。なかでも、"上手く動かない(設定が悪いのではなく、バグで動かない)ので色々やっているとDNSの設定プログラムが突然死んで、DNSのデータベースが消滅した"という例を教えた下さった方がいました。
UNIXユーザには信じられない事故ですが、DNSがちゃんと動かないからWindows NTをLinuxにリプレースしたという話(別の話です)はうなずけるものがあります。
一方UNIX側は、「データベースの監視機能は? ストアドプロシジャのデバッグ機能が存在していないので、データベースとの問い合わせが予想どおりに動作していない時でも、データベースを視覚的に監視する手段がない」とあります。 なぜかアプリケーションプログラムであるデータベース機能の事が書いてあるように見えますが、これはどのデータベースプログラムの事でしょうか?
OSの比較をしているのになぜか関係のない物が混ざっています。 オリジナル文章を書いた人は何を書いていいのか良く分からないので適当に何かを書いたとしか思えない内容です。
さて回答不明というのもおもしろくないので、"管理者のネットワークでの運用性はどうか?"として評価してみます。
管理者のネットワークでの運用性(リモートメンテナンス性)はどうか?
Windows NT ServerUNIX
事実
Windows NTはリモート(遠隔操作)でのメンテンスは、ほぼ不可能と考えてよいです。 リモートメンテナンスをするための市販のソフトウェアも存在していますが使い物にはなりませんでした。
実際に使ってみた結果は(製品の名前は伏せておきます)、このソフトを使うとWindows NTが頻繁に落ちました。その結果リセットボタンを押しに現場に行かなくてはなりません。(このケースでのクラッシュでファイルシステムまでクラッシュしたというケースも聞いています)
例えこの不安定さがアプリケーションによるものであってもOSがクラッシュするというはお粗末なかぎりです。 また10Mbpsのイーサネットで使用してみましたが、非常に遅くイライラさせられます。 ですのでインターネット経由やモデムでの使用はかなりの忍耐を必要とするでしょう。
また、セキュリティの観点から言うと、この手の製品はNetBIOSのポートを空けておく必要があり、このポートを空けておくのはセキュリティ・ホールを空けておくのと同じことなので使うわけにはいきません。
と書いておいたら
VNCはNetBIOSを使わないと指摘されました。 自分でも使ったことあるのですが、すっかり忘れていました。(苦笑)
これもとても遅いのですが、最初からネットワーク経由で使われることを想定して作られたX Window Systemと違って、この手のソフトはビットマップデータを転送しなくてはならないので遅いのは仕方がないのです。10Mbpsのイーサネット以上の速度がないと使えないでしょう。
でもVNC動かすとWindows NTってシングルユーザのOSだなって実感しますね。
中企業以上の規模になるとオフィスが1個所でなくなるので、サーバを複数台置くとどうしてもリモートでのメンテナンスが必要になってきます。 さもなければ、オフィス毎にメンテナンス要員を置くかメンテンスをしないかどちらかの選択になります。 基幹業務に使う場合はメンテナンスをしないわけにはいかないですから非常にコストがかかることになってしまいます。
UNIXは遠隔操作でのメンテナンスは非常に楽でtelnetでログインして(インターネットを経由した場合は通常セキュリティの観点から ssh (Secure Shell) 等を使います)行うことができます。Windows NTではCUIが貧弱なためtelnetによるメンテンスは難しく、また設定ファイルがテキスト形式ではないため、このようにGUIのない環境では設定の変更は不可能です。
リモート(遠隔操作)でのメンテンスでは、UNIXはWindows NTに対して圧倒的なアドバンテージがあります。

ソフトウェアの開発ツールは?
Windows NT ServerUNIX
Microsoft
修正評価
一般的に開発に関してはUNIXは素晴らしいという評価が定着しているのですが、何故か△です。:-P
UNIXでは 「一般的には、C言語をはじめとして用い、プログラミング設計書を元にした従来型のプログラミング開発となるため、専門知識を必要とし、開発時間も掛かる。高価なシステムになってしまいがちである。対話的なプログラム開発は、不可能。」 とありますが、専門知識無しでソフトウェアの開発ができるのでしょうか? Windows上でのプログラミングでVC++を使うにしろVBにしろプログラミングにはWindowsに関するかなりの知識を要求されます。
気になるのは最近VBのプログラミングは易しくC言語によるプログラミングは難しいという風潮です。C言語は特に難しい言語ではありません。
JAVAを始めとしてC言語に似た文法を持った言語が多いことを考えると、C言語はポピュラーな言語である事がわかります。
ユーザとしてはC言語が難しいからVBを使っているという開発者(社)は警戒する必要があります。XXが難しいからと逃げている人(会社)は腕が悪いと考えて警戒したほうがよいでしょう。
さて、開発ツールに関してはUNIXではC言語の事しか書かれていませんが、実際には実用になる多くの言語がUNIX上で使えます。
例えばperlを始めとして Tcl/Tkpython、それに色々なシェルなど多くの言語や開発ツールがあります。
Windowsも開発ツールとして良いものもあると思いますが、開発用の言語、ツールの質や量、情報(書籍の多さやフリーソフトウェアのソースを参考にできる)の多さなどを考えるとUNIXの方がずっと優れているのでUNIXとの比較から△にしました。
UNIXの開発ツールが素晴らしいというのは、UNIX上で動作する素晴らしい数々のフリーソフトウェアにより実証されていると思います。

Webサーバーの構築は?
Windows NT ServerUNIX
Microsoft
修正評価
UNIXの 「教材となる市販本も少なく、構築は難解である。利用者の環境にあわせてカスタマイズする必要がある。」とあるのは、
"情報が豊富で、設定もカスタマイズしないで動かしてもうまく動く"と修正します。 「UNIXは、ソース形式の配布なので、管理操作や、インストールは、エディタなどを利用してキーボード入力を行いテキストファイルを編集することになる。」 とありますが、フリーソフトウェアの設問に書いた通り実行形式で配布されるものも手に入りますし、 テキストエディタで簡単に設定ができるのでリモートメンテンス性に非常にすぐれています。
テキストエディタも使えない人がWWWサーバを運用するとも思えないですし、この点によるデメリットは少ないと考えています。
Netscape社のWWWサーバはWWWベースで設定ができるので、こういった設定方法が好みならこれを使えばよいかと思います。
安定性と性能では、 John Kirch氏のウェブ・ページを読むと分かる通り UNIX + apacheがWindows NT Server + IISを圧倒的に引き離しています。
また、WWWサーバとしてはフリーソフトウェアであるapacheが圧倒的なシェアを獲得していて、そのシェアをさらに伸ばしつつあり、そのほとんどはUNIX上で動作しており、 MicrosoftのIISはシェアを減らし始めているという事からもオリジナル文章の評価は信用できない事がわかると思います。
NETCRAFTによる調査では、 1999年1月現在apacheが54.22%のシェアを持っていて0.44%の増加だそうです、 一方MicrosoftのIISは23.33%のシェアを持ち0.17%減らしています

イントラネットは構築できるか?
Windows NT ServerUNIX
Microsoft
修正評価
まずイントラネットという用語ですが、これはインターネットで使用できる技術を使い社内(学内など)だけで使う事を言います。 ですので独自技術のネットワーク(プロトコルも含めて)を使った物はイントラネットとは言いません。
ここでも、またもやという感じですが、UNIXの方のコメントには、"難解"、 "専門知識を要する"などの言葉が使用されており、 必死にUNIXは難しくNTは易しいというイメージをでっち上げようとしています。
さて、「BackOfficeファミリー製品を連携することにより、 データベースとWebとの連携や電子メールが簡単にでき、校内のイントラネットを構築できる。」 とありますが、BackOfficeを買うと何ができるのでしょうか?
データベースとWWWと連携させて実用的なシステムを組み上げるのにはそれなりの技術とコストがかかりますが、BackOfficeを買いさえすればそういったシステムがすぐにでも使えるような錯覚をおこさせるような書き方がされています。
この部分ではUNIXもWindows NT Serverもどちらも手間が掛りますが、UNIXの方が開発コストが低いし、性能がよいのでその結果で修正評価を決めました。
UNIX側のコメントである、「データベースとWebとの連携や電子メールの設定など、 校内のイントラネットを構築するには、高価なパッケージを購入するか、難解なプログラミングが必要となる」この中の、 「高価なパッケージを購入するか」を"BackOfficeを購入して"と読み替えるとWindows NT Serverを使った場合どうなるか正しく認識できます。

セキュリティは万全か?
Windows NT ServerUNIX
Microsoft
修正評価
1998年にWindows NTに対して行われた数々の攻撃により、 Windows NTが使用不能攻撃に対して脆い事はすでに実証されています。
新たなセキュリティホールが見つかった場合は、パッチが出るまでに時間がかかるため(もしサービスパックなどを待っていたら半年以上セキュリティホールが空いたままになる)その間は攻撃され放題です。
この点ではUNIXは各ベンダにより変わりますが、自分の知る限りではLinux、FreeBSD、 BSD/OSでは数日中にパッチが出る。もしかするとセキュリティホールが発見された日のうちにパッチが出るかもしれません。(実際にそういう事があったと聞いています)
セキュリティを強化するというのは技術的に難しいことですが、 経験を積んだUNIX技術者はフリーソフトウェアを組み合わせて安価に強固なシステムを作り上げる事が出来ます。
例えば不要なサービスはすべて停止し、データも暗号化してネットワークへ流し、 不正なアクセスを監視するなどです。
これに対して、Windows NTの場合は完全に不要なサービスを停止する事ができません。 例えば、インターネット上でサーバとして使うマシンにはNetBIOSの機能は不要であるがNetBIOSを完全に停止することは出来ない。(出来る方法があったら教えてください)
NetBIOSへのアクセスはルータでフィルタリングすることにより保護する事ができるが要らない物が動いていること自体セキュリティホールが有るという不安要素となります。
さらに(非常に)高価なソフトウェアを購入する必要があるなどコスト面でも不利です。(こういったソフトウェアはUNIX用も高価である)
参考までに、セキュリティを強化していないUNIXとWindows NTは共にC1クラスのセキュリティになる。Windows NT 3.5はC2セキュリティの認可を取っているが(ただしネットワークに接続しないという条件付きなので無意味)NT 4.0は取っていない。 UNIXは各ベンダにより異なる。なおC2クラスではセキュリティの監査機能があるだけでセキュリティ自身は強化されない。 クラスBレベルのさらに強固なセキュリティを求めるなら自動的にUNIXを選択することになる。 自分はWindows NTはBクラスのセキュリティの認可を受けるのは不可能と考えています。(以下で述べるgetadminというプログラムの存在が理由です)

※ここで書かれているC2やBといったセキュリティクラスは米国のNCSC(National Computer Security Center)の発行した文書、通称オレンジブックと呼ばれるもので定義されています。
このなかでセキュリティクラスはA,B,C,Dの4つがあり、Aが一番厳しいセキュリティガイドラインで、Dクラスはセキュリティ機能のないWindows 9xやMacintoshがこれにあたります。それぞれのクラスの後ろに付く数字は数字が大きいほどセキュリティが厳しくなります。

もう一つ決定的とも言えるWindows NTのセキュリティの欠陥を指摘してくれた人がいますので書いておきます。
Windows NTは\WinNTとか\Program Filesというシステムディレクトリやその中のファイルが誰でも書き込み可能な状態になっているという事です。(ためしにguestでログインして\WinNT\Systemの下のファイルを消してみると、現在ロードされていないファイルは消せてしまう。酷いなこれは。)
これでは、一旦ログインしたらだれでもOSを壊せます。OSをこんな状態にしておいてセキュリティ云々という資格はありません。
因にMS Officeは、このセキュリティに大穴があいた状態でないと動作しないそうです。 (開いた口が塞がらない)

セキュリティ保護機能の優位性は?
Windows NT ServerUNIX
Microsoft
修正評価
これは上記の設問と同じ事であるので詳しい説明はしません。オリジナル文章のコメント に対してだけコメントをつけておきます。
「アクセスする権限のない利用者が不正にアクセスした場合、自動的にマシンを使えなくする自動利用停止や」 不正アクセスをしたらコンピュータが止まってしまうとは恐ろしい事です。 使用不可能攻撃に対するカモです。
これはおそらく
"getadmin" というプログラムに対する処置の話かと思います。 "getadmin"とは一旦一般ユーザとしてログオンされたらシステム管理者の権限を取られてしまうという恐ろしいセキュリティホールを突いたプログラムで、 Microsoftはこれへの対策はずいぶんと苦労したようです。
getadminのやっている事はログインプロセスに自分のコードをアタッチさせて、 次にログインしたときに管理者の権限を取るというものです。これはプログラムのバグによるセキュリティホールではなくセキュリティの設計上のバグですので簡単に直らなかったのでしょう。(Bクラスのセキュリティはこのような設計を許しません)
現在はgetadminを動かすとWindows NTが停止してしまうのですが、普通は不正アクセスを拒否してその記録を取ればよいのですが、 推測ですがこれができなかったのではないでしょうか? それでしかたなく停止させてしまうのではないでしょうか?
「メッセージは暗号化されずに配信される。また、不正にアクセスしたユーザーは目視によって防ぐしかない等」 メッセージという言葉が何を意味しているのはちょっと良く分からないのですが、一般的な話として、暗号化していないというのはWindows NTも同様でしょう。暗号化することはUNIXもWindows NTも両方できます。 またUNIXでは不正アクセスがあった場合は管理者にメールを送るなどの処置もできます。

ハードの導入コストは?
Windows NT ServerUNIX
Microsoft
修正評価
ハードウェアについてはLinux、FreeBSD、BSD/OSは旧式の486マシンでもかなり使い 物になります。
したがって、使われなくなった古いマシンを持ち出して使う事もできるし、高価で高性能なワークステーションを購入することもできる。 この事をスケーラビリティがあるといいます。
Windows NT 4.0では旧式の486マシンでは使い物にならず、高価で高性能なワークステーションもない。 この事をスケーラビリティがないといいます。
Windows 2000はさらに高価なハードウェアを要求するであろうからスケーラビリティはさらに狭まる傾向にあります。

ソフトの導入コストは?
Windows NT ServerUNIX
Microsoft
UNIXワークステーション
Linux,FreeBSD,BSD/OS
UNIXワークステーション向けのソフトウェアはWindows NTのものと比較してたしかに高価で売り物のソフトウェアを買うだけというケースではUNIXワークステーションは不利です。 しかしフリーソフトウェアを利用して商用のWWWサイトを運営している身としてはWindows NTの方が高くつくケースもあるという事を書いておきたいと思います。
BSD/OS(フリーではない) + apache(WWWサーバ) + PostgreSQL(データベースサーバ) + sendmail(メールサーバ)の組合わせで商用のWWWサイトを運営していますが、 これはMicrosoft製品で組み上げた Windows NT 4.0 + IIS + SQL Server + Exchange Serverよりもずっと安価にできました。 買ったソフトウェアの値段だけの差ではなく、開発に掛るコストを入れるとかなりの差になると考えています。詳しくは後述します。
またBSD/OSの方では1台のマシンでapache,PostgreSQL,sendmailを動かしていますが、Windows NTでは1台のマシンでSQL ServerとExchange Serverを同時に動かして運用するのは無理があるので、2台のマシンが必要になりハードウェアとOSのコストは倍になります。
性能面で言うなら、安定性ではBSD/OSはWindows NTとは比較になりません。Windows NTは問題外です。 速度でも圧倒的に勝っていると考えています。

開発コストは?
Windows NT ServerUNIX
Microsoft
サーバ用
クライアント用
Windows NTでは「技術者の養成も容易であるためコスト安である。」と書かれていて、UNIXでは「技術者の養成も困難であるため、コスト高となる」とあるのは大嘘です。
すぐれた技術者はUNIXだろうとWindows NTだろうと使いこなします。 また能力のない技術者は何を使わせてもダメです。
これは技術者の養成はOSとは何の関わりもない事を示しています。人間の資質と教育の質により左右されると考えます。
開発コストは選んだOSにより変わります。これは同じ技術力と労力でも得られる結果がOSによって違うからです。
ここでも評価を開発コストをサーバ用とクライアント用の2つに別けましたが、 比較対象がWindows NT Serverであることを考えるとサーバ用の評価だけでよいのかも知れません。
1つ前の設問でBSD/OS上で商用のWWWサーバを作ったと書きましたが、もしWindows NT Serverを使ったらどれぐらい余計にコストが掛かるか例を挙げてみます。

他にも色々ありますが、これだけ違えばSUNの安いワークステーション1台分ぐらいは違ってしまいます。
さて、フリーのLinuxやFreeBSDを使わなかった理由ですが、BSD/OSは何年も使っていて使い慣れているからです。LinuxやFreeBSDでも同等の信頼性と性能を出せると考えています。

あと、時々UNIXの方が開発コストがかかるという話も聞くことがあるかと思いますので、それの説明をちょっとしておきます。
ここで言われるUNIXとは1つのプラットフォームではなく、Solaris(SUN)、HP-UX(HP)、AIX(IBM)等の複数のプラットフォームを指します。この例だと3つのプラットフォームでの開発になり、1つのプラットフォームと比較して開発コストがかかるというわけです。ただし、この3つのOSは別のものですが似ていますのでWindowsとMacintoshの両方の開発をするよりはずっと楽でしょう。
もう1つUNIXはサポートコストが掛るという話も聞いたことがあるかもしれません。この理由はUNIXは古いバージョンでもちゃんと見捨てること無くサポートされるので開発側は色々なバージョンの機械を用意しておかなくてはならないというため手間が掛るのが理由です。
自分の仕事をしている所でも、未だにBSD/OSの2.1を使っていて、これで十分です。(2.1、3.0、3.1、4.0が出ているので3つ古いバージョン)ユーザは一旦動かしたら(トラブルが出たらいやですから)必要のないかぎりバージョンアップなどはしたくないものです。 (自分は4.0上で1.1や2.1の時に作られたバイナリをいまだに使っています)
それに対してMicrosoftは1つ前のバージョンでさえサポートを打ち切ってしまします。 これは企業(学校でも同じ)で大量に導入した場合非常に迷惑です。
例を挙げると、自分の友人が勤ているある金融機関では、Windows NT 3.5を使っているそうですが、そろそろWindows NT 3.5が動くハードウェアが手にはいらなくなってきたので苦しいそうです。(メーカが売らないのではなくて、NT 3.5が新しいハードウェアで動かないからです)それでNT 4.0を混ぜると今度はNT 3.5との非互換性で苦しむ事になります。そうかといって全部NT 4.0にするとNT 4.0は重いのでハードウェアも買い換えなくてはならないため、べらぼうな金額になるのと今まで動いていたものが動かなくなるというトラブルに見舞われるのは必定なためどうするか難しい所だそうです。その友人はメインフレームに戻った方がよいかも知れないと言っておりました。
どうですか? UNIX側はサポートにコストが掛るのではなくて、まじめに商売をやっているだけだと思いませんか?
それに対してWindows側は負担を顧客に押し付けてしまっているので、その分のサポートコストが浮いているのです。酷い話だと思いませんか?
Windows NTを大量に導入するとこういう目に会います。お気をつけください。

管理コストは?
Windows NT ServerUNIX
Microsoft
修正評価
管理コストに大きな影響を与える部分に、サーバの台数、サーバの安定性、メンテナンス性があると考えます。
つまり管理コストが増大するのは、サーバを沢山置いたり、 そのサーバがよく落ちたり、遠隔操作によるメンテナンスができないのでいちいち現場にいかなくてはならない場合です。
これはWindows NT Serverを導入したケースそのものではないですか。:-)
UNIXを使う場合、高価でも高性能なサーバを1台にするという選択もできますし、 安いサーバを複数台置き、メンテナンスは遠隔操作することにより専任の技術者に任すことができます。
遠隔操作によるメリットは中企業以上の規模や大学などの様に広い敷地を持つ場合はかなり大きくなるでしょう。
そして一番大事な安定性です。サーバが落ちてその間業務がとまったら大きな損失になりますし、よく落ちるマシンをたくさん使っていればメンテナンス要員が多く必要になります。 また、安定していればメンテナンスなどしないで放っておくこともできます。 バックアップを自動で定期的にとっておく設定をしてあとは何もしないのです。
Windows NT Serverは安定性ではUNIXに全く及びません。Windows 2000になってもこれは解決されない(どころかもっと悪くなる可能性がある)でしょう。
なぜならばコードの量とバグの多さは比例します。Windows 2000はWindows NT 4.0の何倍ものコードで構成されているそうです。 安定性を求めるにはコードの変更量を少なくしてしっかりテストをするしかありません。Microsoftの仕事のやり方はこの正反対を行っていますので安定性を求めるのはむずかしいのです。 いくら管理ツールを充実させても、基本的な要素である、台数の少なさと安定性をクリアしなければ管理コストは減りません。

結論
「UNIXは (中略) 開発コスト、運用コストがかさみ、高価なシステムになりがちです。」 と書かれているのは、ここまで読んでくれば、これは大嘘であることがわかるかと思います。
そして、「Microsoft Windows NTServer4.0の方が、コストパフォーマンス、サポート面において優位かつ信頼できるシステムであるといえるでしょう。」 という部分も大嘘で、よくここまで書けるなと感心します。
さて、結論に少し追加してみます。
昔メインフレームを使っていると非常にコストが掛り処理も遅いという現実から分散処理という事が言われ、メインフレームをもっと小さなコンピュータにリプレースするのが流行りました。
そして実際に分散処理をするためコンピュータの台数を増やしてみると今度は管理コストが馬鹿にならないぐらいかかることもわかってきました。
そして1999年現在、分散処理から再び一極集中型のモデルが見直されています。
Windows NT Serverを沢山置くというのはこの現在の時代の流れに逆行します。

UNIXが時代の流れに乗れなかった時期はWindows 3.0が登場する少し前に遡ります。 この時代はデスクトップもUNIXが制するとまで言われた時代です。 このとき各UNIXワークステーションベンダはインテルのプロセッサを積んだ、俗にいうPCの高性能化と低価格化に付いていけなかったのです。 そのためデスクトップ市場ではWindowsに完全に負けました。
さて1999年現在流れは再びUNIXの方に向いてきました。LinuxやFreeBSDを使うとかつてのワークステーションが競争力をなくした原因である価格の問題がクリアできるからです。性能では依然としてUNIXが勝っています。

情報システムの責任者としては現在の性能やコストを考えるだけではなく、 これから何年も使い続けていくものですから、時代の流れを読み適切な選択をするのが重要になります。


この文章に対する、バグレポート、コメント、誹謗中傷は
こちらまで
著者のプロフィール