web analytics

Linux 5.10 sarà LTS: il problema dell’anno 2038 si sposta al 2486

torvalds

Linux 5.10 è sotto intenso sviluppo, vi ho già rivelato alcuni dettagli emersi contestualmente all’arrivo della prima release candidate. Oggi entriamo un po’ più nello specifico per vedere quali sono le principali novità dal punto di vista tecnico.

Linux 5.10 LTS

Detto della storica modifica che coinvolge il kernel (ovvero la rimozione di set_fs(), funzione per la gestione della memoria presente da oltre 30 anni) ci sono tante altre novità in cantiere. Innanzitutto Linux 5.10 sarà una Long Term Release come confermato su Twitter dal mantainer Greg-Kroah Hartman.

Supporto per AMD Zen 3 & Intel Rocket Lake

La nuova lineup AMD, ovvero i processori Ryzen 5000, saranno supportati in Linux 5.10 e nella prima RC ci sono già le prime modifiche in questo senso. Gli sviluppatori sono già al lavoro anche per supportare la nuova famiglia di processori Intel (Rocket Lake) attesa per il Q1 del 2021.

Driver per le GPU AMD RX 6000

La grande sfida dell’anno è tra le nuove Radeon RX 6000 e le NVIDIA RTX 3000, con le prime che paiono superiori sotto diversi aspetti. Dopo tanti anni forse AMD si riprenderà il trono in ambito schede video. I primi driver open source per le schede RX 6000 sono in sviluppo e dovrebbero essere a bordo di Linux 5.10.

Altre novità

Ci sono diverse novità minori:

  • Supporto mainline per lo smartphone Purism Librem 5;
  • Ottimizzazioni per diversi file system;
  • Supporto per Creative SoundBlaster AE-7 e per il controller di Nintendo Switch.

Il problema dell’anno 2486

bug dell anno 2038 linux 5.10

Curiosa la patch per il filesystem XFS riguardante il problema dell’anno 2038 (Y2K38 problem) su cui sta lavorando Darrick J. Wong.

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. 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. 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 è già stato risolto nel kernel Linux 5.6 grazie alle modifiche apportate da Bergmann con una serie di patch dedicate a questo scopo. A partire da Linux 5.10 grazie a una nuova serie di patch XFS leggerà correttamente i timestamp fino all’anno 2486.

sharing-caring-1Seguiteci 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.