
Sappiamo tutti che Linux è scritto in C. Quello che potresti non sapere è che è scritto in un dialetto C obsoleto da tempo: la versione del 1989 dello standard del linguaggio C, C89.
Questo è anche noto come ANSI X3.159-1989, o ANSI C. Linus Torvalds ha deciso che sposterà Linux alla versione del C standard C11 del 2011.
Questa non è una transizione così grande come potrebbe sembrare. C89 ha ancora un supporto quasi universale. Poiché qualsiasi compilatore C è compatibile con le versioni precedenti, non avrai problemi a compilare o eseguire un programma C89. Quindi, un compilatore conforme a C11 non avrà alcun problema con alcun codice legacy C89.
Avvio delle iscrizioni al corso Cyber Offensive Fundamentals Vuoi smettere di guardare tutorial e iniziare a capire davvero come funziona la sicurezza informatica? La base della sicurezza informatica, al di là di norme e tecnologie, ha sempre un unico obiettivo: fermare gli attacchi dei criminali informatici. Pertanto "Pensa come un attaccante, agisci come un difensore". Ti porteremo nel mondo dell'ethical hacking e del penetration test come nessuno ha mai fatto prima. Per informazioni potete accedere alla pagina del corso oppure contattarci tramite WhatsApp al numero 379 163 8765 oppure scrivendoci alla casella di posta [email protected].
Se ti piacciono le novità e gli articoli riportati su di Red Hot Cyber, iscriviti immediatamente alla newsletter settimanale per non perdere nessun articolo. La newsletter generalmente viene inviata ai nostri lettori ad inizio settimana, indicativamente di lunedì. |
Allora perché preoccuparsi? La modifica apportata non include funzionalità utili che appaiono nelle versioni più recenti.
La situazione è giunta all’attenzione di Torvald quando, al fine di correggere un potenziale problema di sicurezza con le funzioni di esecuzione speculativa primitiva della lista collegata del kernel, è stato rivelato un altro problema nella patch.
Mentre risolveva questo problema, Torvalds si rese conto che in C99 l’iteratore passato alle macro list-traversal doveva essere dichiarato in un ambito esterno al ciclo stesso.
Torvalds ha scritto alla Linux Kernel Mailing List (LKML) che
“l’intera ragione per cui questo tipo di bug non speculativo può verificarsi è che storicamente non si erano dichiarate variabili in loop in stile C99. Quindi list_for_each_entry() – e tutte le altre – fondamentalmente perde sempre l’ultima voce HEAD fuori dal ciclo, semplicemente perché non potevamo dichiarare la variabile iteratore nel ciclo stesso.”
Infine, passare da C89 a un C standard più recente che rende questo tipo di problema non può verificarsi. Quindi:
“era giunto il momento di passare allo standard C99 che ha ancora più di 20 anni, ma è almeno abbastanza recente da consentire dichiarazioni di variabili a livello di blocco”.
Lo sviluppatore del kernel Linux, Arnd Bergmann, ha convenuto che ciò fosse fattibile. Ha aggiunto che dovrebbe essere possibile passare allo standard C11 del 2011. Dal momento che C99 non è mai stato così popolare e C11 ha introdotto il supporto multithreading standardizzato e ha reso il linguaggio un po’ più sicuro, sembra sia una buona mossa.
Anche questa sarebbe una mossa facile da fare. Il compilatore C minimo del kernel Linux, GCC versione 5.1 supporta già C11. Questo funziona per Torvalds.
“Mi piacerebbe davvero andare avanti finalmente su questo, considerando che è stato collaudato per molti molti anni”.
Quindi, dopo essersi assicurato che il nuovo standard C funzionasse senza problemi nel kernel, Torvalds ha deciso di premere il grilletto.
“Proviamo all’inizio della finestra di unione 5.18 .”
Poiché la finestra di unione della 5.18 è quasi arrivata, potremmo avere il codice C11 nel kernel già a marzo.
Ti è piaciuto questo articolo? Ne stiamo discutendo nella nostra Community su LinkedIn, Facebook e Instagram. Seguici anche su Google News, per ricevere aggiornamenti quotidiani sulla sicurezza informatica o Scrivici se desideri segnalarci notizie, approfondimenti o contributi da pubblicare.

CulturaLinus Torvalds, il creatore di Linux, ha espresso una posizione ferma e senza mezze misure riguardo al dibattito sull’integrazione e l’uso di strumenti di intelligenza artificiale nella scrittura e revisione del codice del kernel di…
CybercrimeNel mondo di oggi la tecnologia non è più un mero strumento di efficienza o comodità, ma una leva geopolitica di primaria importanza. L’accesso a infrastrutture digitali, piattaforme cloud e sistemi di comunicazione non è…
CybercrimeImmaginate una situazione in cui Internet sembra funzionare, ma i siti web non si aprono oltre la prima schermata, le app di messaggistica sono intermittenti e le aziende sono in continuo cambiamento. Secondo gli autori…
CulturaRecentemente, una bobina di nastro magnetico è rimasta in un normale armadio universitario per mezzo secolo, e ora è improvvisamente diventata una scoperta di “archeologia informatica del secolo“. Un nastro con la scritta “UNIX Original…
CybercrimeUn massiccio archivio digitale contenente le informazioni private di circa 17,5 milioni di utenti Instagram sembrerebbe essere finito nelle mani dei cybercriminali. Qualche ora fa è stato segnalato l’allarme dopo che diversi utenti su Reddit…