Linux Daily Topics

Debian⁠32ビットの「2038年問題」対応へ

Debianプロジェクトのプロジェクトリーダー Steve Langasekは2月2日、Debian開発者向けメーリングリストに「64-bit time_t transition in progress」というタイトルで投稿し、2038年問題(Y2038)に対応するための作業の進捗について報告を行った。Debianは現在、2025年以降のリリースが予定されている「Debian 13 "Trixie"」の32ビットアーキテクチャが2038年以降も動作できるように取り組んでおり、とくに32ビットarmアーキテクチャへの対応にフォーカスすることを明らかにしている。

C言語で時間を表現するための型として使われている「time_t」は、世界標準時で1970年1月1日午前0時0分0秒からの経過秒数(エポック秒)を格納する。このtime_tが32ビット変数であらわされていると、2^31-1=21億4,748万3,647秒(約68年)後となる2038年1月19日午前3時14分7秒以降にエポック秒がオーバーフローしてしまい、システムで日付や時刻を正しく表示できない可能性が高くなる。いわゆる「2038年問題」といわれているこの問題がやっかいなのは「2038年1月19日までには発生しない」わけではなく、プログラムの内部で2038年1月19日を超える日付データを扱う場合にも発生する可能性が高い点だ。

2038年まではあと14年だが、5年後、10年後の日付を扱うケースは数多くある。もちろん64ビットアーキテクチャを採用している場合はこの問題は発生しないが、残念ながら世界にはまだ少なくない数の32ビットシステムが残っており、そしてその多くが「⁠⁠ほかのディストリビューションが32ビットサポートをすでに終了していることから)DebianをOSとして選択する可能性が高い」とDebianプロジェクトは懸念している。とくにarmhfアーキテクチャ(FPUありの32ビットARM)に関しては「今後10年に渡って引き続き重要な場面で使用される」という見解を示しており、プロジェクトとして対応を決断する必要に迫られていた。

議論の結果、Debianプロジェクトはi386を除くすべての32ビットアーキテクチャに対し、アーキテクチャ内でのABI移行(64ビットtime_tへの移行)を実施することを決定した。Langasekは「1,200を超えるライブラリパッケージがデータ型の変更(32ビットtime_t→64ビットtime_t)によってABIが破壊される可能性がある。これはDebian史上最大のクロスアーカイブのABI移行」とコメントしており、現在は、開発中のパッケージをテストする「experimental」リポジトリ上に対象パッケージの移行を開始している。2/2の時点では500のパッケージをexperimentalに移行したという。2025年以降に登場するとみられるTrixieは、2038年問題に耐えうるOSとしてのプレッシャーを受けながらこれからの開発が進められていく。

おすすめ記事

記事・ニュース一覧