2000年問題

「2000年問題」が取りざたされていますが,これはどのようなものなのでしょうか。


世界的な慣習として,西暦年号は下2桁表現がとられてきました。当然,コンピュータシステムにおいても,ハードウェア,ソフトウェアを問わず,下2桁の年号の大小比較で判定ロジックを動作させているものが多数存在します。
 しかし,2000年1月1日を迎えたとたん,1900年であるか2000年であるかコンピュータは判定できなくなります。したがって,これを放置しておくと,2000年到来前後に多数の情報処理システムで年号の桁落ちが発生し,日付をもとにした大小判定や期間計算結果,利息計算などで不正な結果を出力することになり,多くの業務で大問題となると危惧されています。これがコンピュータシステムにおける「2000年問題」と呼ばれるものです。
 使用コンピュータまたはソフトウェアに対して,とにかく早期の対策が必要ですが,そのための労力と費用が莫大であることがとくに大きな問題点となっています。2000年問題は歴史的にはかなり古くから指摘されていて,業務用メインフレームなどの大型機では昔から騒がれていました。

ハードウェアの対応
 さて,それではPCにはどのような影響が現れるでしょうか。PC/AT互換機になってから('84年8月〜)は,PCは二つの日付を持つようになりました。ハードウェア構成要素内の日付(リアルタイムクロック。以下RTC)とOS(DOSやWindowsなど)内の日付です。OS内の日付は,PCの起動ごとにRTCの日付を変換(BIOSを経由する)して作成されます。問題はRTCです。RTCは年号が下2桁(CMOSアドレス9)で維持されています。それを補うため,世紀を保存する部分(CMOSアドレス50d)も一応存在しますが,ハードウェア的に2000年代にはロールオーバーされません。
 したがって,2000年になると1900年なのか2000年なのか結局区別できずに年号がおかしくなってしまうわけです。OS上(DATEコマンドなど)で正確な日付に再設定すれば一時的には直りますが,電源を切ると戻ってしまいます。そこで,最近のBIOSでは,2000年を越えた場合にRTCが1900年代になっても,OSには2000年代をきちんと渡すように改善されているものが多いようです(ただしBIOSメーカーから公開されている情報ではありません)。
 お持ちのマシンが2000年対応しているかどうかは,以下のような実験をすれば分かります(OSはDOS)。
(A)RTC Rollover TEST
@日付を1999-12-31にします。
c:\>DATE 1999-12-31
A時刻を23:58にします。
c:\>TIME 23:58
B日付と時刻が設定されているのを確認。
CPCの電源を切り,3分ほど待ちます。
D再度電源を入れて,DOSを起動します。
E日付を確認します。正常であれば,2000 -01-01となっているはずです(画面1,2)。だめな場合は,1980-01-04などになっているでしょう(RTC内は1900-01-01となるのですが,BIOSが1980-01-04と変換してしまうようです)。

(B)RTC 2000 Set TEST
@日付を2000-01-01にします。
c:\>DATE 2000-01-01
A日付が設定されていることを確認します。
BPCの電源を切り,1分待ちます。
C再度電源を入れて,OSを起動します。
D日付を確認します。正常であれば,2000 -01-01になっています(画面3,4)。

 以上のテストをパスすれば,基本的な部分で2000年対応が施されています。そしてさらに細かく知るために,もう一つ実験があります。実は,2000年はうるう年ですので,2月29日が存在するのです。そこで,2000-02-29という日付を設定してみます(画面5)。ここで,設定ができないというエラーが出た場合には,BIOSサイドに問題があります。逆にこの実験もパスした場合には,ハードウェアに関してBIOS部分までは2000年対応が施されていると考えていいでしょう。
 もし,2000年対応が施されていなかった場合には,YEAR2000.COMという世紀補正用の常駐プログラム(DOS,OS/2共用)をOS起動とともに使用すると回避できます。年号が50未満の場合には,2000年代となるように自動設定するプログラムで,原理的には2049年まで対応できます。応急処置としては,十分な期間だと思います。入手先は,http://www.RighTime. com/となっています。
 また,注意しなければならないのは,2000年を越えるとPCが起動できなくなるわけではなく,単に日付が正常に示されなくなるということです。したがって,2000年対応がなされていないマシンであっても,2000年を越えると動かなくなるわけでは「ない」ことは確認しておいてください。

OSの対応
 さて,いくらハードウェアが2000年対応していても,ソフトウェア側(OS,アプリケーション)が対応していないことにはどうしようもありません。
 まずOSサイドですが,マイクロソフトのOS(Windows 95/NT)に関しては次世紀にわたって(2099年またはそれ以降),正確な日付を表示します(http://www.microsoft.co.jp/info/releases/2000-5.htm)。またIBM OS/2 Warp V4に関しても,2000年対応済み(http://www.ibm.co.jp/ad2000/1doc051.html)とのことなので,とりあえずは安心といったところでしょうか。そのほかのOS(フリーのOSなど)についても,2000年対応の作業を急いでいると思われます。詳細は,各作者グループ,メーカーに問い合わせてみてください。

アプリケーションの対応
 OS上で動くアプリケーションで2000年対応になっていないものが多く存在するのは大きな問題点です。現在,ハードウェアやOSよりも,むしろアプリケーション側の対応の遅れが問題となっています。例えば年号の2桁入力時において,Access 95は1999年まで,Excelは2019年までしか対応できません(1997年に順次アップデート予定)。そのほか従来の(つまり最新ではない)ソフトウェアに関しては,全滅といってもいいでしょう。また,このような未対応アプリケーションで作成されたデータ(データベースなど)に関しても2000年対応は不可能となるために,ダブルパンチを余儀なくされます。したがって,企業の大規模なデータベースなどは,大きなダメージを受けるでしょう。
 また今回調べてみて分かったのですが,多くのメーカーは2000年対応/未対応のOSやアプリケーション名をきちんと公開していません。自分の使用するソフトウェアが2000年対応であるか未対応であるかを正確に知ることができれば,被害を最小限に抑えることができます。そういう意味で,ぜひともソフトウェアメーカーはホームページなどを通じて情報を積極的に公開してほしいものです。
 以上,ハードウェアとソフトウェア両面で2000年問題について述べましたが,やはりソフトウェアに関する問題が一番厄介です。いかに早く対応するかのみならず,これまでの膨大で複雑な2000年問題未対応データをいかに修正もしくは無理やり対応させるかといったノウハウの勝負にもなります。
 この2000年問題は,ハードウェア,OS,そしてその上で稼働するアプリケーションが三位一体で対応して初めて解決する問題です。2000年まであと3年を切ってしまった現在,とにかく早急に各メーカーが対応する以外に回避する方法はありません。
 なお,以下に2000年問題対策関連サイトをいくつか挙げておきますので(画面6),そういったところからも情報を得るといいでしょう。
http://www.ibm.co.jp/ad2000/
http://www.neis.co.jp/ad2000/ad2000.html
http://www.year2000.com/
http://www.RighTime.com/
など。
(伊勢雅英)

画面1 日付と時間を1999年の12月31日,23時58分に設定。
  
画面2 時間を置いて電源を入れて,きちんと2000年になっていればOK


画面3 日付を2000年1月1日に設定
  
画面4 電源を切って再起動しても設定が残っているかどうかを確認

画面5 2000年はうるう年なので,2月29日に日付を設定できるかどうかでもテストできる


画面6 このようなホームページで情報を集めておくのも大事。画面はhttp://www.year2000.com/