新・闘わないプログラマ No.54

何をいまさら「2000年問題」


この話題は、もういろんなところで取り上げられてますし、いまさら取り上げるのもなんだかなぁ、という気がしていたものでずっと避けていたのですが、ちょっとだけ書いてみます。←今週は他にネタを思いつかなかっただけだったりする(^^;)

Cisco Systems(シスコシステムズ)という会社があります。コンピュータネットワークに多少なりとも興味のある人以外には、あまり馴染みの無い会社だと思います。ネットワーク機器を作っている会社で、その中でも特に「ルータ」という製品については「ルータといったらシスコ」と言われるほどです。コンピュータネットワーク機器における、マイクロソフト/インテルといったところでしょうか。
ルータって何者か、というと、ネットワークとネットワークを接続するための中継装置の一種です。インターネットっていうのは、その言葉どおり、ネットワーク同士を接続していったもので、そのインターネットにおける接続装置(中継装置)がまさにルータなわけです。ですから、シスコはインターネットを裏で牛耳っている、と言えなくもありません(かなり強引ですが)。
そのルータ、実際にどんなことをやっているか、ですが、ある雑誌の用語解説で「ルータ : 2台以上のパソコンで同時にインターネットを利用するためにISDNに接続する装置」なんていうようなことが書いてあるのを見て、のけぞったことがあります。
あのなー、そりゃないだろ、そりゃ。確かに、そういうときに使うこと「も」あるけど、だからってそれはルータの定義でもなんでも無いじゃないか。あんたが仮に電話を、女の子をデートに誘うことにしか使っていなかったとしても、だからって「電話 : 女の子をデートに誘うときにつかう装置」ってことはないだろー(^^;)
すみません、それはどうでもいいのですが、ルータの本来の仕事は、来たデータの宛名を見て、それを正しい方向へ転送してやることにあります。インターネットを流れているデータは「IPパケット」と呼ばれるかたまりになっていますが、ルータは受け取ったIPパケットの宛先(IPアドレス)を見て、それをどこに流してやればいいかを判断して、その先に送ります。この仕事をルーティング(routing)と呼び、それを行う装置なのでルータ(router)と言うわけですね。
ルータ自体は(例外はもちろんありますが)、このルーティングという処理に適した構造を持っているコンピュータの一種です。ですから、実際にこの処理を行っているのはソフトウェアです。シスコのルータではこのソフトウェアをIOSと呼んでいます。余談ですが、ルーティング処理自体はソフトウェアで出来ますから、普通のコンピュータにソフトウェアを入れて、ルータにすることも出来ます。UNIXには昔からそういう機能を持っていましたし、WindowsNTも出来ますね。まぁ、専用のルータよりは性能が劣ることが多いですが。

おーい、2000年問題はどこ行った?
すみません、盛大に脇道に逸れて・・・・と見せかけておいて、実は関係があるんです。シスコは、そのIOS、古いバージョンだと2000年以降は動作保証をしない、と言っているんですね。バージョンの11.0以降だったかな、保証しているのは。
でね、ここからが問題なのですが、ルータって、やってきたIPパケットの宛先を見て、はい君はそっち、はいあんたはあっち、ってやっているだけ(いや、実際はもっといろいろやっているけど、それはここでは本質では無い)なんですね。どう考えたって、こんな仕事が2000年になったからと言って、急に動かなくなるってことは考えにくいです。
「いや、実はルータの中には小人さんがたくさん入っていて、毎日交代で仕事をしているんだよ。小人さんのスケジュール表の何年というころは二桁しかなくて、だから二千年の元旦になると、小人さんが混乱してしまって仕事が出来なくなってしまうんだよ」
ルータは、一応時計を持っていて、何かしらには使っていると思うのですが、とにかくルータの本来の仕事には一切関係ないはずなのですが・・・・でも、2000年になって問題が起きても知らないよ、なんてメーカーは言っているし、IOSのバージョンアップって有料なんだよなぁ・・・。

2000年問題って、結構いろいろ騒がれていますけど、でも、あんまり騒ぎすぎるのもなんだかなぁ、という気がします。なんか、メシの種にしようと騒いでいる人間もいるようだし、結局なるようになる、という開き直りも必要かな、と思います。正確なタイトルは忘れましたが「2000年問題の衝撃 〜 2000年1月、あなたの会社のコンピュータが発狂する」なんて感じの、いかにもなタイトルの本が売られていたのを見たことがありますが、まぁ、なんと言うか。
実は、日本ではもう2000年問題とよく似たことを既に経験しているんですよね。この話、あまり話すと危ない方向に行きそうなので、ちょっとだけにしておきますけど、いわゆる「年号問題」というやつでした。日本の場合、和暦が必要とされるところが多く、コンピュータのデータベース内も、年を西暦ではなくて和暦で持っているシステムも多かったのです。で、このデータベースに年号の情報も持っていればよかったのですが、そうは言っても、コンピュータというものが出来て以来、10年ほど前までは、ずーっとおんなじ年号だったわけで、わざわざそんなものを入れていないデータベースも多かったわけです。
この対応はかなり大変でした。一番の問題は2000年問題と違って、いつそういうことになるか誰にも分からない、ってことなんですね。しかも、おおっぴらに対策を練るわけにもいかない、それに比べれば、堂々とやれるだけ2000年問題の方がマシ、とも言えるかもしれませんね。
とにかく、その時の経験から言えば、まー、なるようになるんじゃないの、というところでしょうかね(^^;) 最近はもう、どうでもいいようなものまで問題視されていて、「パソコンのBIOSが対応していない」なんてのがあったのですが、そんなん2000年になってから一度だけ日付をセットし直せばいいだけ、というだけだったりして、騒ぐほどのことでも無いような気がします。そもそも、そんな古いパソコン、2000年まで使うつもり? :-)

ところで、プログラマの立場から言えば、プログラマの葛藤が表面に出たのが、2000年問題と言うことも出来ます。どういうことか、と言いますと、年を4ケタで持つか、それとも2ケタにするか、ということなんですけど、プログラマは常にこういう葛藤があるんですね。
「2ケタにすれば、効率がいいし、計算も速くなるだろう。でも、もしこのプログラム、2000年まで使われるようだったらどうする。いやいや、まさかいくらなんでもその頃にはもう使われていないだろう。でも、もし使われていたらどうしよう。あ、そうか、その頃には俺も偉くなっていて、プログラミングはしてないかな。いやいや、それより1999年の7月には世界は滅亡するから、だいじょうぶ」

[前へ] [次へ]

[Home] [戻る]


mailto:lepton@amy.hi-ho.ne.jp