システムの安定性とは?


一部で Linux は(ヰンドウヅよりも)安定していると言えるのか? という議論があるらしい. 俺は, こういう疑問が発生する余地があると思う. なぜなら, Linux が動作している状況はとても多様だからだ. ハードウェア, カーネル, 使っているディストリビューション, そして, 鎖の最後に繋がるのが人間だ.

まず, 現時点で Linux を日常的に使っている人は, ヰンドウヅを日常的に使っている人に比べて仙人の様に技術と知識と経験が豊富 な場合が多いということを忘れてはならないと思う. そりゃ, そんな奴が運用するコンピュータは安定して動作するだろうさ.

結局, 具体的な使用状況を明らかにしないことには, 「どっちが安定か」 とか言っても無駄だって事さ.使うのが誰かという事も含めてな. 安定性の代名詞みたいに言われる Linux のカーネルにしても, 公式ディストリビューションに含まれているものですら, どのドライバを有効にするかで, ずいぶん安定性が変わる. 俺の経験では, パラレルポートに繋ぐ zip のドライバ ppa.c というのがあるが, これが原因でカーネルごと 凍り付いたことが何度かある.パラレルポート越しの書き込み/読みだしは あまり速くないので, イラついてコピーや移動をいっぺんにやると, システム負荷が すぐ 7 とか 8とかになり, 運が悪いと死ぬ. SCSI のブロックデバイスのドライバでコケたら, カーネルごと「ゴキッ」である.青画面どころじゃない. カーネルを自分で勝手に拡張した場合に関しては, 言うまでもなかろう.

いわむや Xサーバをや, である. 後輩のノートに初期の neomagic を使った製品があるが, これと XF86 の相性が最悪で, 何かするとぶっとぶらしい. Xサーバがぶっとんだら, 大概の周辺機器の入出力は全部止まってしまい, 「電源ブチ」しか方法がない.なんせ, X は root権限で動いとるからのう.

そんなときにも Linux では ネットワークが生きていて telnet あるいは ssh から復帰可能だったりもするのだが, こういうことができる Linux を「安定している」というべきか, こういうことをしないといけない Linux を「不安定である」というべきかで, 意見が別れて当然であろう. 「Linux はカーネルなんだから, X が死んでも知らんがな.」 というひとも居るだろうし, まあそりゃそうなんだけど, システムはカーネルだけで存在えしないから, ディストリビューションというも のが存在するのだ.そこら辺を無視してテクニカルな事を言い張っても虚しいと 思うがどうか.

ユーザ/グループ/その他 というモデルは unix のセキュリティと安定性の 根幹をなしており, これは普通のヰンドウヅには無い重要な特長だ. しかし, Linux はこのモデル故に安定なのだ, ということを考えている奴が居るとすれば, それは間違っておる. どんなにカーネルがしっかりしていても, root 権限で動いてるプログラムがおかしくなったら, Linux といえどもイチコロなのである. そこんところを忘れた安定性論争など, 全く無意味だ. マルチユーザ, マルチタスクが完璧だということは, 安定稼働の必要条件であり, 十分条件ではないのだ.

つまり, どういう構成で, どんなプログラムが動いているか, によるわけなんですね. i386 アーキテクチャで, カーネルに 2.0.38 を使い, ドライブは普通の IDE でネットワークカードは 3com とかその辺の枯れた奴, メールサーバで qmail ヱブサーバに apache, ネームサーバに bind-8.1.2 で リモートアクセスには ssh2, telnet ftp nfs は使わないという構成なら, Linux はハードディスク が壊れるまで, あるいは停電するまで動いてるだろう. しかし, こういう使い方を ヰンドウヅでできない以上, Linux は ヰンドウヅ よりも安定しているとか, してないとか考える意義は無い. 無意味な喧嘩が始まるだけでしょう.

サーバをうまく運用するための心得が, ちょっと前の unix magazine に 載っていて, 面白かったなあ.

流布している unix ならどれでも, 上の原則にしたがって運営してれば, 毎週再起動とか, 毎日再インストールとかしなくてすむはず. ただ, これは俺の趣味なんだけど, たまに弾を食らうのも良いもんです. つうか, あんまり安定してると面白くねえよ.