Faire un don ! | | style | statistiques | contactez-nous | plan | lettre d'information

Liens connexes

Dépêche modérée par

Dépêche éditée par

: Patch pour le support du C++ dans le noyau

Posté par Dekany Brice (page perso, ). Modéré le 28 octobre 2004.
Des étudiants de l'université de Reykjavik (Islande), viennent de créer un support du C++ pour le noyau.
Désormais, il est possible d'écrire des modules pour Linux en C++ en utilisant les constructeurs et destructeurs, les exceptions et la vérification de type dynamique. (NdM : de tels modules ne fonctionneront bien sûr qu'avec un noyau compilé avec ce patch.)

Ce patch n'est disponible que pour la série 2.6.x du noyau.

NdM : le patch est basé sur le compilateur GNU g++, son implémentation des exceptions et son interface binaire (ABI). Sinon il est peu probable qu'il soit incorporé au noyau officiel. Voir « Pourquoi ne pas réécrire le noyau en C++ ? » dans le FAQ linux-kernel

> Lire la dépêche (64 commentaires, moyenne: 1,8).  

Cette discussion est archivée, il n'est plus possible de laisser des commentaires.

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.

C++

Posté par farib () le 28/10/2004 à 14:40. (lien). Évalué à 0.

En parlant de noyau, c'est pas justement Darwin qui est en C++ très objet ?

C++ interdit de noyau.

Posté par √λιi () le 28/10/2004 à 16:39. (lien). Évalué à 5.

Sinon il est peu probable qu'il soit incorporé au noyau officiel

Mhh, je me dirais plutôt que sa dépendra des killer features que ca permettra.
A priori, c'est tellement bas niveau que du C++ c'est pas forcément très intéressant, mais l'avenir nous réservera peut être des suprises !

DLFP: Poster un commentaire

Posté par Antoine () le 28/10/2004 à 17:22. (lien). Évalué à 0.

Sinon il est peu probable qu'il soit incorporé au noyau officiel. Voir « Pourquoi ne pas réécrire le noyau en C++ ? » dans le FAQ linux-kernel

Il n'y a aucun rapport entre ces deux phrases. Le kernel pourrait très bien être "compatible C++" (avec le patch mentionné) sans être réécrit en C++.

[+] C'est une très mauvaise idée

Posté par Ontologia (page perso, ) le 28/10/2004 à 18:13. (lien). Évalué à -2.

C++ est un langage relativement lent, car en tant que langage à objet classique il est basé sur la liaison dynamique..

Le gros problème de la liaison dynamique c'est qu'elle construit le code
sur des pointeurs sur fonctions, résultat , le processeur n'a pas de code statique à optimiser ce qui impliquent des pertes de performances par non utilisation du cache, et tout s'écroule.

Dans le cadre d'une application, c'est juste dommage, dans le cadre d'un noyau c'est problématique.

A la limite intégrer de l'objet pourrait se faire avec GNU/Eiffel et Lisaac, ce sont les seuls langages objets (à ma connaissance) supprimant la liaison dynamique et générant du code statique, donc optimisable.

compilation

Posté par cykl (Jabber id, ) le 28/10/2004 à 19:03. (lien). Évalué à 8.

Ca tombe bien ! Deux news plus bas on apprennait qu'on pouvait compiler son noyau en 15 secondes maintenant qu'il y a du C++ on va pouvoir le compiler en 15 heures !

Aïe patapai !

Et pourquoi pas le noyau en user-space ?

Posté par Obsidian () le 29/10/2004 à 11:59. (lien). Évalué à 2.

Pourquoi ne pas réécrire le noyau en C++ ?

Une killer-feature pour éviter toutes les failles de sécurité, processus en uninterruptible state, deadlocks, etc. , ce serait d'exporter le noyau en user-space. Je ne comprends pas que personne n'y ait pensé avant :-)

Une brèche

Posté par Veiovis () le 30/10/2004 à 15:37. (lien). Évalué à 3.

Voilà une très bonne initiative!

Cela peut augmenter le nombre de développeurs. Comme on peut le lire dans les commentaires, il est évident que certains sont attachés au C et d'autres penchent vers le C++.

On pourrait reprocher le manque de lisibilité qui peut en découler. Mais, après tout, n'est-il pas courant de recourir à plusieurs langages pour une même application? Par exemple, les codes de calcul numérique manipulent souvent du Fortran appelé depuis le C ou le C++.

On peut aussi prétendre que le C++ cache les choses, pour faire référence au commentaire de Torvald. Le C++ dissimule un certain nombre de choses, ce qui ne les rend pas opaques pour autant. Le véritable problème est qu'il est plus difficile de bien comprendre ce qu'il se passe. Il faut donc des programmeurs de très bon niveau pour éviter quelques écueils.

Reste à voir comment les développeurs du noyau vont accepter cela. Mal si on en croit ce que dit Torvald. La dimension purement technologique n'est pas toujours le seul angle d'appréciation. Il existe une communauté qui souhaite rester sur de vieilles méthodes parce qu'ils les maîtrisent bien. Ca me rappelle ce que disent certains, dans la communauté scientifique, qui restent en Fortran 77. Argument historique de poids... D'un autre côté, si on ne force jamais la main, tout reste à l'identique, pour fort, fort longtemps!

Je voudrais enfin ajouter que forcer trop la main peut conduire à une mauvaise intégration du C++. Si les développeurs boudent le langage au lieu de définir un cadre propre de développement pour ce langage, l'effet pourrait être assez désastreux. C'est dommage car le C++ fait plus que le C et je ne vois pas pourquoi les développeurs ne s'autoriseraient pas certains ajouts du C++, quitte à ne pas programmer véritablement objet.

TCCBoot

Posté par Pinaraf (Jabber id, ) le 31/10/2004 à 10:51. (lien). Évalué à 0.

TCCBoot il compilera toujours le noyau en moins de 30 secondes au boot avec ce patch ?


Ok, je -->[]

Revenir en haut de page