Blog

2038年問題の共有

bokan

2038年問題とは

bokan

Bannière-Unix-linux
現在色んなサイトを見ることが出来るサーバーの多くは
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に戻ってしまうのです。

対策とか

32-64
簡単(?)な対策は、この世の全てのマシンを64bitOSにすることです。

厳密には32bitOSでもOSの基底部分(カーネル)を、それに対応させたものに書き換えれば
数十年は先までしのげるとの説もあります。(理論上は確かに出来そうだけど…)

ただし、64bitOSとマシンが普及したとしても他の周辺機器のドライバ問題(例えばどうしても使いたい古い機器)や、
32bitで作られているアプリケーションが残り続けること。
安定性や今までの普及性によって32bitの方が使いやすいアプリケーションは現在も色々とあります。

あと20余年の間に、そのような移行が問題なく実施されるかは実際にその節目に合わないと解らないかと思います。

余談

古いバージョンの(所謂)Web言語(PHP 5.1.x系など)は、対応出来ていないようです。

古いインフラにずっと固執している企業などはどうなるのか。。若干その辺りが心配です。

2000年問題の時のように、特に大きな問題なく過ぎるといいのですが・・・と言った共有の日記です。

Author Profile

ohba
ランニングと音楽とヲタトーク好きプログラマーです。 数学と英語を勉強中です。 DeepLearning始めました!
» 投稿一覧
  • Launch Cart次世代ECサイト構築システム 初期月額無料
  • LaunchMovie ECに特化した動画制作サービス

Archive

ページTOPへ