Debian: jön a 64 bites time_t 32 bites rendszerekre

A Debian elkezdte a felkészülést 2038. január 19-re azzal, hogy elindította a 32 bites rendszereken a 32 bites time_t lecserélését 64 bitesre. A Trixie már így jöhet!

Debian logó
Debian logó

A Debian elkezdte a felkészülést 2038. január 19-re azzal, hogy elindította a 32 bites rendszereken a 32 bites time_t lecserélését 64 bitesre. A Trixie már így jöhet!

2038. január 19. 03:14:07 (UTC) egy különleges időpont lesz. A 32 bites rendszereken a time_t adattípus értéke ekkor éri el a maximumát, majd egy másodperccel később túlcsordul. Ez jobb esetben csak egy vicces időutazást jelent(het) 1901. december 13. 20:45:52 (UTC)-re (ami mellesleg péntek :)). Rosszabb esetben viszont rendszerösszeomlásokat okozhat. Ezt röviden Y2K38 Bug / 2038-probléma néven is illetik.

Mi okozza a problémát?

A time_t az az adattípus, amely az 1970. január 1. óta eltelt másodperceket tartalmazza (ismerheted még unix timestamp, unix epoch, unix idő). 32 bites rendszereken ennek az értéke legfeljebb 2.147.483.647, azaz ennyi másodperc (kicsit több, mint 68 év) lehet, mivel úgynevezett előjeles egész szám a típusa (signed integer). Ennek érünk a végére.

Ha elég idős vagy, emlékezhetsz, mekkora őrület volt 2000 előtt, amikorra szintén összeomlást jósoltak. Akkor az volt a gond, hogy az éveket tipikusan két számjegyben tárolták, tehát 1998 → 98, 1999 → 99 és így 2000 → 00, ezt nevezik/nevezték Y2K Bugnak is. Emiatt a spórolós évjelölés miatt sokan nagy rendszerösszeomlástól tartottak, de végül, hála a jól felkészült mérnököknek, nem történt semmi érdemleges.

A modern világban ez miért probléma?

Már most szinte mindenki 64 bites rendszert használ, 15 év múlva pedig már csak múzeumban fogják mutogatni a 32 bites rendszereket – mondhatnád. A hagyományos értelemben, a jelenlegi ismert klasszikus „számítógépet” (tehát x86 architektúra) alapul véve még igazad is lehet.

Ugyanakkor vannak olyan, jelenleg is széleskörűen elterjedt 32 bites architektúrák, amik még hosszú ideig velünk maradnak. A Debian elsősorban az armhf architektúra miatt aggódik, hiszen ezt mondhatjuk a legnépszerűbbnek. Számos eszköz tartalmaz ilyen architektúrával rendelkező chipet és valószínűleg elég sok fog még ebben az évtizedben. De ott van még az i386, az armal és a mipsel is, hogy a népszerűbbeket említsük. Így nem vehető félváról a probléma.

Mekkora munka lesz?

Hatalmas. Steve Langasek Debian fejlesztő csupán minden idők legnagyobb ABI változásának hívja. Számszerűsítve, a 35.960 darab Debian csomagból 6424 forrásában van hivatkozás a time_t-re. Ez azt jelenti, hogy az összes komponenst egyszerre kell migrálni az új time_t-re.

Mely architektúrákon változik a time_t?

Kezdjük azzal, ami nem fog. A klasszikus i386 nem fog, mégpedig a meglévő x86-os binárisokkal való kompatibilitás megtartása okán. Ráadásul az i386 ideje amúgy is meg van számlálva.

Az i686 ugyanakkor megkapja az új, 64 bites time_t variánst, valószínűleg egyéb újdonságokkal együtt.

Természetesen az armhf a fő célpont, de elkészülnek armel és mipsel architektúrákhoz is a változatok.

Végül, de nem utolsó sorban vannak a szerencsés architektúrák, ahol a time_t már most 64 bites, így nincs munka: x32, riscv32 és loong32.

Mikortól várható?

A tervek szerint a Debian 13 Trixie már a megfelelő módosításokkal jön. A Trixie valamikor 2025-ben jelenik meg, így van elég idő az átállás lefejlesztésére.

Mit jelent ez számodra?

Semmit. Felhasználóként teljesen transzparens lesznek számorda változások.