2024-12-27 Fri
普通は日本の年号なんかで管理しないから起きない。コンピューターは日本の仕様ではなく、符号付き32ビットで1970年1月1日からの秒数で管理。それを越えては独自管理。前後に約68年分だから2038年問題がある。現在のパソコンでは符号付き64ビット秒数にて宇宙の年齢より長く管理できるため問題は起きないが、古いプログラムが改修されてなければ残り続ける。
私が使ってるソフトウェアにも2038年までの上限が残ってる。元のプログラムとしては既に期限切れてるのだがバイナリープログラムを書き換えて延命させてる。それでも2038年までは使わない。
32ビット(4バイト)で日付管理をしていれば2000年問題は起きなかったが、1970年から前後に約68年間では扱える範囲が狭すぎた。
商品の在庫管理では過去を管理する必要もなく、導入後に年月日のみで小売り販売店じゃないから時刻まで記録に使っていなかったた。
年:7ビットで0から127まで、月:4ビットで0から15まで、日:5ビットで0から31までと半分の16ビット(2バイト)で年月日を表せた。入出庫と複数の年月日の記録は必要だから10万点も管理したら年月日が4バイトのところ2バイトなら1MBとか削れたのが大きい。1MBは当時のフロッピーディスク(2HD)1枚分の容量。
パソコンの歴史を探ると1979年NEC PC-8001 RAM16KB、1981年PC-8801 32KB、1982年PC-9801 384KB。1982年の日立のスーパーコンピューターの主記憶は32~256MBだった。
2024年の今はメインとサブ機が両方32GBで、テレビ録画用の小型PCでさえ8GB搭載。
40年前のスーパーコンピューターは今のパソコンの何百分の1の計算能力、そして記憶容量も倍、倍と増えてきたから問題を感じないが当時は1ビットでも削る必要に迫られていた。
西暦がスマートでデータ量も減ると思っていたが、年号管理でプログラムした奴がいたかもね。
私が関わった時代でも大きくは変わっておらず、プログラムが複雑になっても保存するデータ量を削らないと収める場所がなかった。任天堂ファミコンのゲームだって本体に記憶できず呪文のようなパスワードを紙に書いてた。
1970年を基準とした符号付き32ビットの秒数では1800年代を表すことができないのも最近まで残ってたコンピューター内蔵の32ビット時間管理が使えなかった理由。「きんさん、ぎんさん」が話題になったよう1990年代の時点で1800年代の生まれを捨てることはできなかった。
年号+年数の管理は非効率で絶対的な西暦で管理して年号に変換して表示するのが最適と考えたのを思い出すが、決まった管理法は無いためプログラミングした人によって違ってる。
21世紀に入ってから作ったのでも2038年問題は残ったたが、私が小僧の頃に作ったプログラムでさえ、とっくに使われてないから責任は残ってない。
≪ 続きを隠す
| emisaki | 2024-12-27 Fri 20:42 | 生活::コンピューター・電気 関連 |
先頭へ △