Kernel Linux: risolto il bug dell’anno 2038

Il kernel Linux 5.6 è stato rilasciato pochi giorni fa da Linus Torvalds e, nel frattempo, la FSFLA ha rilasciato Linux-libre 5.6, il fork completamente free approvato dalla Free Software Foundation, distribuito con a bordo solo codice libero ed open source. Vi ho raccontato delle numerose novità introdotte da questa nuova versione del kernel, su tutte  l’integrazione della VPN WireGuard v1.0.0 e di una prima implementazione del supporto per l’USB4. Mi è sfuggita però una novità molto interessante, la risoluzione dell’annoso “bug dell’anno 2038“. Questa è la prima versione del kernel che permetterà ai sistemi a 32-bit di funzionare correttamente anche dopo il 19 gennaio del 2038.

Il bug dell’anno 2038

Per chi non lo sapesse il bug dell’anno 2038 è un problema che riguarda programmi che usano la rappresentazione POSIX per calcolare il tempo. La data del sistema è calcolata come il numero di secondi trascorsi dallo Unix Epoch Time 1º gennaio 1970. Questo tipo di sistema è lo standard per i sistemi Unix, e colpisce anche software per altri sistemi operativi che siano stati sviluppati in C. Sulla maggior parte dei sistemi a 32 bit, il valore del dato time.h usato per questo calcolo è un numero intero a 32 bit di tipo signed.

Tra 18 anni non saranno molti i sistemi a 32 bit ancora attivi. Potrebbero però esserci dispositivi che svolgono compiti dedicati – magari device embedded – che per adempiere alle loro funzioni useranno una futura versione di Linux.Di qui l’importanza di gestire il bug

bug dell anno 2038 linux 5.6

L’istante più lontano rappresentabile scoccherà alle ore 03:14:07 del 19 gennaio 2038 (UTC) momento in cui i dispositivi raggiungeranno il valore 231 (231-1 = 2,147,483,647 secondi dopo il 1° gennaio 1970). Dopo questo momento, il contatore supererebbe il valore massimo, e verrebbe considerato come un numero negativo. I computer leggeranno la data non come 2038, ma come 1901 (precisamente, le 20:45:52 UTC di venerdì 13 dicembre 1901), causando errori di calcolo.

Il problema è stato risolto nel kernel Linux 5.6 grazie alle modifiche apportate da Bergmann con una serie di patch dedicate a questo scopo. Le patch prevedono la rimozione dei tipi time_t/timeval/timespec e di alcune funzioni. Il time_t sarà a 64 bit ed è richiesto l’uso di Musl libc 1.2 e GNU C Library 2.32 (o superiori).

sharing-caring-1

Seguiteci sul nostro canale Telegram, sulla nostra pagina Facebook e su Google News. Nel campo qui sotto è possibile commentare e creare spunti di discussione inerenti le tematiche trattate sul blog.

Fonte: https://www.lffl.org/2020/04/kernel-linux-risolto-bug-dell-anno-2038.html

Visited 15 times, 1 visit(s) today
Se vuoi sostenerci, puoi farlo acquistando qualsiasi cosa dai diversi link di affiliazione che abbiamo nel nostro sito o partendo da qui oppure alcune di queste distribuzioni GNU/Linux che sono disponibili sul nostro negozio online, quelle mancanti possono essere comunque richieste, e su cui trovi anche PC, NAS e il ns ServerOne. Se ti senti generoso, puoi anche donarmi solo 1€ o più se vuoi con PayPal e aiutarmi a continuare a pubblicare più contenuti come questo. Grazie!

Hai dubbi o problemi? Ti aiutiamo noi!

Se vuoi rimanere sempre aggiornato, iscriviti al nostro canale Telegram.
Se vuoi ricevere supporto per qualsiasi dubbio o problema, iscriviti alla nostra community Facebook o gruppo Telegram.
Cosa ne pensi? Fateci sapere i vostri pensieri nei commenti qui sotto.
Ti piace quello che leggi? Per favore condividilo con gli altri.
Amazon Music
Scopri le ultime offerte per dischi ssd su Acquista su Amazon
Scopri le ultime offerte per memorie RAM DDR su Acquista su Amazon
Scopri le ultime offerte per Chromebook su Acquista su Amazon
Scopri le ultime offerte per Raspberry su Acquista su Amazon

Potrebbero interessarti anche...

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.