Linux-kernel ondergaat moderniseringsslag
De kernel van Linux is geschreven in C. Maar C heeft een groot aantal varianten van herzieningen van de standaard uit 1989, die nu wordt aangeduid als C89. Inmiddels is er ook al een C23-herziening in de maak, waarover komend jaar wordt gestemd. Zo modern is de Linux-kernel echter niet. Sterker nog, Linus Torvalds heeft altijd vastgehouden aan de C89-standaard.
Daar komt nu verandering is, meldt ZDNet. Er vindt een overschakeling plaats naar C11 (uit 2011). Maar Linus Torvalds kwam eerst met een minder vergaande opwaardering.
De reden dat de al jarenlange discussie in het team nu toch tot een verandering leidt, is dat Torvalds stuitte op een beveiligingsprobleem dat alleen viel op te lossen door een zijpaadje in te bouwen. Of in de woorden van Torvalds: We hebben historisch gezien geen mogelijkheden om 'C99-style declare variables in loops' te gebruiken. Dus bij ' list_for_each_entry() - en alle anderen' - lekt per definitie altijd de laatste HEAD-entry uit de loop, eenvoudigweg omdat we de interator variable niet in de loop zelf kunnen vastleggen."
Gelijk maar doorstoten
Dus, zegt Torvalds, is de tijd aangebroken om te kijken naar een overgang naar de C99 standaard - die is nog altijd 20 jaar oud maar heeft in ieder geval genoeg mogelijkheden voor het gebruik van 'block-level variable declarations'." De aanpassing is geen dramatische verandering, stelt ZDNet. C89 wordt nog nagenoeg overal ondersteund. Elke C compiler kan overweg met eerdere versies.
Maar daarop gingen gelijk stemmen op om dan maar door te stoten naar de wat recentere versie C11. Volgens Linux kernel developer, Arnd Bergmann is C99 namelijk nooit erg populair geweest. C11 biedt bovendien ondersteuning voor gestandaardiseerde multithreading. Bovendien heeft C11 iets meer beveiligingsmogelijkheden. Daar ging Torvalds in mee en kondigde aan dat C11-code in maart in Linux-kernelversie 5.18 opgenomen kan worden. Het 'merge window' komt eraan, dus zou in maart al C11-code kunnen worden opgenomen. Tenminste, dat is het geval als er geen onverwachte dingen gebeuren als er een overgang plaatsvindt naar een nieuwe versie van de C-standaard, waarschuwt Linux kernel developer en journalist Jonathan Corbet.
Reacties
Om een reactie achter te laten is een account vereist.
Inloggen Word abonnee