ITアーキテクトのひとりごと
第54回 「デフォルト値」

 

何から何まで全てを理解して動かすことができるコンピュータの時代は、NECが1976年に発売したTK-80というボードコンピュータ以降、存在しない。

コンピュータを構成するCPU、I/O、割り込み回路、メモリの一挙手一投足を理解し、LSIの挙動を理解してデバッグするのは今や限られた一部の人達だ。巨大なオペレーティングシステム(OS)の上で巨大なアプリケーションを作るためには、細部を抽象化したり、捨象しないと効率的な作業ができない。

OSをソースコードレベルでコンパイルし、カーネル、ライブラリをビルドする(こんな作業のことを "make" と呼んだりする)なんて、今や正気の沙汰じゃない。十数年前まではSunOSのカーネルをmakeしていたのが懐かしい。そんな懐かしい環境を満喫できるのは今やLinuxやオープンソースの世界にしかないが、そのmakeコマンドもいつもおきまりの手順で呪文のように打っているだけで、その中身をしっかりと理解するどころか、その中身を読んでみることもなくなった。

その一方で、OSやデータベース、ミドルウエア、そしてアプリケーションソフトのマニュアルは巨大な百科事典のように膨らみ、そのオプション設定というトッピングの多さには目眩がする。設定ファイルやコマンドにある沢山の選択肢の中には、普段は考えたことも無いようなものも多い。改めてオプションの説明を読むと、フムフム、なるほど、ほぉーと関心することばかりだが、そこで得た知識が役に立つ可能性はゼロに近い。そんなオプションに詳しくなってしまっても、決して、その知識を光らせてはいけない。役に立たないことを一生懸命やっているタダのオタク自慢になるだけだからだ。

山のようなオプションの世界では、何も設定しないというデフォルト値や、何やら勝手に設定してくれるデフォルト値やらがあるが、そのデフォルト値でいいのか、なんて聞かれても、はて、その値はダメと言えるほどの自信もないし、大丈夫と言える自信もない。だからデフォルトになっているんだよ、と逆ギレする作戦もあるが、ここは理論的、紳士的に突破しないといけない。

沢山のオプションがあるのは、システムが複雑になり、様々な事態に対応する必要性が増えたからだ。オプションは、マニュアルに書かれているもの、トラブルで問い合わせると出てくる隠しオプション、ディープな知識が必要で理解させるのが難しいので説明したくなくて出てこない隠しオプションと千差万別だ。

何でもできるように、という要求がシステムを複雑にし、オプション設定も複雑にしている。何でもできるようにという親切心は、時々セキュリティ上の脆弱性を呼び寄せる。犯罪者はその親切心につけ込んでいる。空き巣に度々入られる家には何かしらのスキがあるらしいが、それと同様の発想でコンピュータシステムもスキを見せないように腐心するが、ちょっとしたオプション一つ、ちょっとしたモジュール一つの設定でドアが半開きになったとたんに犯罪者は飛んでやってくる。

こんなリスクを避けて適切なオプション選択をするために最も大事なことは、何が必要か、という要求を明確にすることだ。複雑なオプション選択を組み合わせて、何でもやらせよう、というハッピーなシステム構築の時代は終わった。今の時代の最適なデフォルト値の選択は、何もできないシステムを作ることだ。便利さ、器用さはリスクと隣り合わせだ。隙間から眼を出して注意深く周りを見回しながら、そっと差し出した細い糸を相手のシステムと絡めて、何かあったら直ぐにその糸を切ってしまう、という時代は、ぶっきらぼうで簡単な事しかできない、デフォルト値もほとんどないような単純だけど高性能なシステムが求められている。

JDSF データ・マネジメント・ソリューション部会
株式会社エクサ 恋塚 正隆
リンクが張られていない、タイトルだけの記事は、最新号のメルマガ記事です。次回 のメルマガが配信された時点で記事にリンクが張られます。メルマガ登録すると次回 から最新記事を読むことができます。メルマガ登録は無料、非会員でも登録できます。登録はこちらから