<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>ULLM (Utilisateurs de Logiciels Libres du pays Martégal) &#187; C99</title>
	<atom:link href="http://www.ullm.org/tag/c99/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.ullm.org</link>
	<description>Un site utilisant WordPress</description>
	<lastBuildDate>Mon, 19 Dec 2022 09:43:33 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Linus Torvalds va faire passer le noyau de Linux à une version plus moderne du langage C</title>
		<link>https://www.ullm.org/linus-torvalds-va-faire-passer-le-noyau-de-linux-a-une-version-plus-moderne-du-langage-c/</link>
		<comments>https://www.ullm.org/linus-torvalds-va-faire-passer-le-noyau-de-linux-a-une-version-plus-moderne-du-langage-c/#comments</comments>
		<pubDate>Tue, 01 Mar 2022 06:33:21 +0000</pubDate>
		<dc:creator>tuxoulipo</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[C11]]></category>
		<category><![CDATA[C99]]></category>
		<category><![CDATA[Linus-Torvalds]]></category>
		<category><![CDATA[Logiciels-Libres]]></category>
		<category><![CDATA[Noyau]]></category>
		<category><![CDATA[Noyau-Linux]]></category>

		<guid isPermaLink="false">http://www.ullm.org/?p=4705</guid>
		<description><![CDATA[Le noyau Linux est fondé sur l’ancienne norme C89 du langage C. Mais Linus Torvalds aimerait passer à la norme C11, plus moderne, qui date de 2011. Nous savons tous que Linux est écrit en C. Ce que vous ne savez &#8230; <a href="https://www.ullm.org/linus-torvalds-va-faire-passer-le-noyau-de-linux-a-une-version-plus-moderne-du-langage-c/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Le noyau Linux est fondé sur l’ancienne norme C89 du langage C. Mais Linus Torvalds aimerait passer à la norme C11, plus moderne, qui date de 2011.</p>
<p><a href="http://www.ullm.org/wp-content/uploads/2022/03/Linus-Torvalds-B__w630.jpg"><img class="aligncenter size-medium wp-image-4706" title="Linus Torvalds B__w630" src="http://www.ullm.org/wp-content/uploads/2022/03/Linus-Torvalds-B__w630-300x199.jpg" alt="" width="300" height="199" /></a></p>
<p>Nous savons tous que Linux est écrit en C. Ce que vous ne savez peut-être pas en revanche, c’est que Linux est écrit dans un dialecte C dépassé depuis longtemps : la version 1989 de la norme du langage C, C89, également connue sous le nom de ANSI X3.159-1989, ou ANSI C. Pour le fondateur de Linux, Linus Torvalds, il est temps pour le noyau de faire passer son langage C officiel à la norme C11, qui date de 2011.</p>
<p>Reste que le C89 bénéficiera toujours d’un support quasi universel. Comme tout compilateur C est rétrocompatible avec les versions antérieures, vous n’aurez aucun problème pour compiler ou exécuter un programme C89. Ainsi, un compilateur conforme à C11 n’aura aucun problème avec le code C89 hérité. Alors, pourquoi s’en préoccuper ? D’autant que la modification apportée n’inclut pas les fonctionnalités utiles qui apparaissent dans les versions plus récentes.</p>
<p>La situation a été portée à l’attention de Linus Torvalds lorsque, pour corriger un problème de sécurité potentiel avec les fonctions primitives d’exécution spéculative de la liste liée du noyau, un autre problème a été révélé dans le patch. En corrigeant ce problème, Linus Torvalds a réalisé qu’en C99, l’itérateur passé aux macros de parcours de liste doit être déclaré dans une portée en dehors de la boucle elle-même.</p>
<h2>C99 ou C11 ?</h2>
<p>Pour le fondateur du noyau Linux, « la raison pour laquelle ce genre de bug non spéculatif peut se produire est que nous n’avons pas historiquement avec le style C99 « déclarer des variables dans les boucles ». Ainsi, list_for_each_entry() – et toutes les autres – laissent fondamentalement toujours échapper la dernière entrée HEAD de la boucle, simplement parce que nous ne pouvions pas déclarer la variable iterator dans la boucle elle-même ». La réponse ? Passer enfin du C89 à un C standard plus récent qui fait que ce genre de problème ne peut pas se produire.</p>
<p>Ainsi, « le temps était venu d’envisager le passage à la norme C99 – elle a toujours plus de 20 ans, mais elle est au moins assez récente pour permettre les déclarations de variables au niveau du bloc », fait valoir l’informaticien.</p>
<p>Arnd Bergmann, développeur du noyau Linux, convient que c’est faisable. Et d’ajouter qu’il devrait même être possible de passer à la norme C11 de 2011. Etant donné que C99 n’a jamais été très populaire et que C11 a introduit le support standardisé du multithreading et rendu le langage un peu plus sûr, cela semble être une bonne idée.</p>
<h2>Un retard à combler</h2>
<p>Ce serait également une décision facile à prendre. Le compilateur C minimum du noyau Linux, GCC version 5.1, supporte déjà C11. Cela fonctionne pour Linus Torvalds. « J’aimerais vraiment aller enfin de l’avant sur ce sujet, considérant que cela a été brassé pendant de nombreuses années. »</p>
<p>Puis, après s’être assuré que le nouveau standard C devrait fonctionner sans problème dans le noyau, Linus Torvalds a décidé d’appuyer sur la gâchette. « Essayons juste au début de la fenêtre de fusion 5.18. » Comme la fenêtre de fusion 5.18 est presque là, nous pourrions avoir du code C11 dans le noyau dès le mois de mars.</p>
<p>Ou pas. Pour Jonathan Corbet, développeur du noyau Linux et journaliste, « il faut cependant garder à l’esprit que beaucoup de choses peuvent se passer entre la fenêtre de fusion et la version 5.18. Le passage à une nouvelle version de la norme de langage pourrait révéler un certain nombre de surprises dans des endroits obscurs du noyau ; il n’en faudrait pas beaucoup pour que la modification soit annulée pour le moment. Mais, si tout va bien, le passage au C11 se fera dans la prochaine version du noyau ».</p>
<p>Source : <a href="https://www.zdnet.com/article/linus-torvalds-prepares-to-move-the-linux-kernel-to-modern-c/" rel="noopener" target="_blank">zdnet.com</a></p>
]]></content:encoded>
			<wfw:commentRss>https://www.ullm.org/linus-torvalds-va-faire-passer-le-noyau-de-linux-a-une-version-plus-moderne-du-langage-c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
