「1970年1月1日0時0分0秒」
これが世界のコンピュータのUNIX時間と呼ばれるもののシステム内時計の開始時刻です。
現在、ほとんどのシステムが32bitから64bitへと移行している中、何故か時計だけは、32bitの整数型で定義されているシステムが多いようです。
SEが2000年問題で、特需がありましたが、2038年問題は、Wikipediaにもある通り、事態はもっと深刻です。この当時は、64bitのシステムの必要性などなかったですから、その可能性は低いですね。
32ビットで最大の整数は、2^(31)-1= 2,147,483,647です。
UNIX時間の開始時刻から、2,147,483,647秒後、即ち、2038年1月19日3時14分7秒(UTC)、日本時間では2038年1月19日12時14分7秒(UTC + 9:00)を1秒でも越えたら、システム内の時計が一斉におかしくなるので、システム内のアプリケーションのうち、32bitで定義されている時計を利用したアプリケーションも一斉に挙動がおかしくなります。
1秒でも越えたら、時計の数字が負の値になるからです。
どのような挙動をするかは、予測不能です。
つまり、32bitの限界なのです。
まずは、32bit版OSを64bit版OSに全面改修しないと話が先に進みません。
64bitシステムで、時計の変数の上限値を扱える最大の整数として定義すると、
2^(63)-1=1,748,636,097,203,079,509
という巨大な最大の整数を扱えるようになります。
これで、西暦3000年までは耐えうる設計になっています。
2038年問題に備えて、銀行などの金融機関は、対応を終えているのかな?
かなり、話は逸れて、香港のことについて書きます。
香港がイギリスへの租借地となる代わりに、100年後の1997年7月1日に、必ず中国へ返還されるよう、締結した李鴻章(り・こうしょう)の思考の素晴らしさ。100年後の未来を見据えている。完全に植民地とさせなかったことが素晴らしい。
この香港の歴史が示す事実を何故か浮かべました。
ごく一部の人達を除いて、誰も100年後の未来なんて見据えていないと思います。
何故ならば、簡潔に述べると、自分が生きている保証がどこにもないからです。
しかしながら、未来は不確定要素のかたまりです。
でも、明るい未来が待っている方が良いに決まっています。
だから、敢えて、起こり得るであろう事象は書きません。
対処可能な問題しか書かないことにします。
書いたところで、予測不可能な大規模な自然災害を防ぐことなど、人間のちっぽけな力では無力で変えようが無いのですから。
そう、未来は明るい方がずっと良い。
そう信じて、前を向いて進んでいれば、明るい未来が近づいて来る。
皆で手をつないで、協力して光を目指して暗い夜道を進みましょう!