2038年問題の共有

2038年問題とは

現在色んなサイトを見ることが出来るサーバーの多くは
UNIXというOSをベースにしたLinuxに属するマシンの中で動いています。
UNIXはC言語というプログラミング言語で組まれており
このC言語に限らず、多くの(当初の)プログラミング言語では
時間の基点を1970年1月1日0時0分0秒となっています。
2038年1月19日を過ぎた時点で、この「経過時間」を表すことが32bitでは不可能となるのが原因です。
32bitとは、今でも稼働しているPCのCPUが一回の処理で演算できる単位量です。
32bit=2^32 です。つまり (2^31 = 2,147,483,648)です。
同時に1970年1月1日0時0分0秒からの経過時刻が、これを超えると0に戻ってしまうのです。
対策とか

簡単(?)な対策は、この世の全てのマシンを64bitOSにすることです。
厳密には32bitOSでもOSの基底部分(カーネル)を、それに対応させたものに書き換えれば
数十年は先までしのげるとの説もあります。(理論上は確かに出来そうだけど…)
ただし、64bitOSとマシンが普及したとしても他の周辺機器のドライバ問題(例えばどうしても使いたい古い機器)や、
32bitで作られているアプリケーションが残り続けること。
安定性や今までの普及性によって32bitの方が使いやすいアプリケーションは現在も色々とあります。
あと20余年の間に、そのような移行が問題なく実施されるかは実際にその節目に合わないと解らないかと思います。
余談
古いインフラにずっと固執している企業などはどうなるのか。。若干その辺りが心配です。
2000年問題の時のように、特に大きな問題なく過ぎるといいのですが・・・と言った共有の日記です。
Author Profile

スターフィールド編集部
SHARE