Vos recrutements informatiques

700 000 développeurs, chefs de projets, ingénieurs, informaticiens...

Contactez notre équipe spécialiste en recrutement

Linux : le kernel est devenu énorme et boursouflé
D'après Linus Torvalds

Le , par Gordon Fowler, Expert éminent sénior
Voilà qui ne va pas calmer la polémique sur le noyau de Linux.

Le moins que l'on puisse dire c'est que Linus Torvalds, le créateur du système d'exploitation libre, n'a pas fait dans la langue de bois lors du LinuxCon 2009.

A la question de James Bottomley, ingénieur chez Novell, qui lui demandait au cours d'une table ronde ce qu'il pensait de l'évolution du noyau de Linux, Torvalds répliqua, avec une franchise désarmante : « On devient énorme et boursouflé. […] J'aimerais pouvoir vous annoncer qu'on a un plan. […] Des fois, c'est un peu triste de se dire qu'on est loin du kernel rationalisé, compact et hyper efficace que j'avais imaginé 15 ans plus tôt. […] Notre "cache footprint" est effrayant. Il n'y a aucun débat sur ce point. Et à chaque nouvelle fonctionnalité, c'est de pire en pire ».

Mais pour lui tout n'est pas noir, le noyau reste par exemple parfaitement stable.

Cependant une étude d'Intel, évoquée par James Bottomley, établit que les performances du kernel perdent environ 2% à chaque nouvelle refonte pour une baisse totale de 12% sur les 10 dernières réalisations.

« Oui c'est un vrai problème », reconnaît Torvalds, « c'est même inacceptable mais c'est inévitable ».

Lire aussi :

Le comparatif Windows 7-Linux par Microsoft
La rubrique Linux (actu, FAQ, tutos et forum) de Developpez.com

Le "Hall of Fame" du Logiciel Libre : c'est vous qui choisissez le meilleur de l'Open Source

Et vous ?

Que pensez-vous de ces propos de Linus Torvalds ?


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de B.AF B.AF - Membre chevronné https://www.developpez.com
le 04/11/2009 à 20:02
faudrait peut être qu'il passe à l'objet en c++ alors avec une modélisation uml...Qui sait ce qu'il devient ?
Avatar de souviron34 souviron34 - Expert éminent sénior https://www.developpez.com
le 05/11/2009 à 10:35
Citation Envoyé par Kimious  Voir le message
Je ne suis pas expert du domaine, mais, l'écriture en C sauvage n'augmente t-elle pas, dans une certaine mesure, la complexité du code du noyau. Le C++ et ses styles de programmation hybrides (impératif et orienté objet) ne permettrait-il pas d'augmenter la lisibilité du code, d'en faciliter sa maintenance et l'évolutivité ? Même s'il est certain que l'hétérogénéité des plateformes aujourd'hui poussent les développeurs à écrire beaucoup de drivers et donc du code de plus en plus spécifique, l'intégration au sein d'un noyau écrit en C++ ne serait-il pas plus facile ?

Pour résumer, un noyau orienté objet, c'est une idée impossible, possible mais refusée, ou évoquée mais en attente ?





Non seulement ça ne changerais rien, mais ton post suggère que tu n'as même aucune notion ni de ce qu'on peut faire en C, ni du fait que du C peut ne pas "être sauvage", ni du fait qu'on peut, si on laisse l'écriture open à tout le monde, faire de la même manière du code "C++ sauvage"..



Citation Envoyé par B.AF  Voir le message
faudrait peut être qu'il passe à l'objet en c++ alors avec une modélisation uml...Qui sait ce qu'il devient ?

Avatar de Kimious Kimious - Membre à l'essai https://www.developpez.com
le 05/11/2009 à 16:59
(Clavier QWERTY, désolé pour les accents, ceux présents sont grâce au correcteur orthographique en ligne...).

A monsieur l'Expert Senior Confirme,

Quand je dis que je ne suis pas un expert dans le domaine, c'est seulement pour dire que je suis pas un "kernel developper". Je n'ai jamais dis que je n'avais aucune connaissance en C ni en C++, loin de la... Je finis a peine mes études en informatique et cela fait quelques mois que j'écris des drivers pour des périphériques et systèmes embarques. Quand je parle de C "sauvage", ce n'est pas pour dévaloriser ce langage. Je m'explique :

J'avais compris le problème du noyau linux "de plus en plus énorme" non pas au niveau de sa baisse de performance, mais plutôt au niveau de sa croissance en taille de code. Comme tout le monde l'a dit, c'est inévitable vu le nombre de périphériques, et donc de drivers, qui croit tous les jours. J'ai alors évoqué (pardonne moi ma stupidité d'étudiant), une écriture en C++. Malgré mon manque d'expérience professionnelle, j'ai quand même remarque qu'il était plus agréable, plus clair et plus rapide de concevoir une architecture en C++ qu'en C (en nombre de lignes de code, et en fonction de ce que permet le langage au niveau de sa syntaxe). Quand on voit certaine structure de données du noyau (ex: kset, ktype, kobject), on peut légitimement penser a un passage au C++, pour une manipulation plus aisée (toujours selon mon intuition scolaire d'étudiant...).

Mais comme il faut a un moment se réveiller et passer du cote industriel, en cherchant sur Google, je tombe sur ca:
http://www.tux.org/lkml/#s15-3

preuve que ma question n'est pas si débile... Même si la réponse au C++ est "non", au moins, j'y ai trouve de vraies réponses (surtout que mon post etait une question et suggérait une réponse, non pas une critique digne d'un serial killer )

Merci encore au soit disant "Expert Senior Confirme", pour sa patience, sa tolérance, et son talent pédagogie assez creux, soit dit en passant .
Je te conseille de directement suggérer tes idées a Linus, au moins il sera sur qu'il n'y a aucune solution a son problème...

Sans rancune, j'suis ici pour apprendre .
Avatar de BainE BainE - Membre expérimenté https://www.developpez.com
le 06/11/2009 à 9:42
Citation Envoyé par Kimious  Voir le message
Malgré mon manque d'expérience professionnelle, j'ai quand même remarque qu'il était plus agréable, plus clair et plus rapide de concevoir une architecture en C++ qu'en C (en nombre de lignes de code, et en fonction de ce que permet le langage au niveau de sa syntaxe).

Et c est ton opinion, qui n'est pas une généralité loin de la.
De plus une architecture est indépendante du langage dans laquelle elle sera implémentée.
Et je pourrai savoir ce qui ce fait en C++ qui ne se ferai pas en C ?

Citation Envoyé par Kimious  Voir le message
Quand on voit certaine structure de données du noyau (ex: kset, ktype, kobject), on peut légitimement penser a un passage au C++, pour une manipulation plus aisée (toujours selon mon intuition scolaire d'étudiant...).

Tu pourrais développer ?
Avatar de pseudocode pseudocode - Rédacteur https://www.developpez.com
le 06/11/2009 à 10:14
Je ne vois pas en quoi choisir le C++ (plutot que le C) aurait donné un kernel moins boursouflé. Autant de drivers, autant de framework, autant de structure de données...

Et j'ajouterai que l'utilisation du C++ sous-entend une conception Orienté-Objet qui est généralement plus "volumineuse" (patterns, encapsulation, ...). Le seul gain éventuel serait une meilleure "isolation" et donc modularité du noyau. Mais le kernel en C est déjà extrêmement modulaire.
Avatar de souviron34 souviron34 - Expert éminent sénior https://www.developpez.com
le 06/11/2009 à 10:57
Citation Envoyé par Kimious  Voir le message
..
A monsieur l'Expert Senior Confirme,
..
Malgré mon manque d'expérience professionnelle, j'ai quand même remarque qu'il était plus agréable, plus clair et plus rapide de concevoir une architecture en C++ qu'en C
..
(surtout que mon post etait une question et suggérait une réponse, non pas une critique digne d'un serial killer )

Merci encore au soit disant "Expert Senior Confirme", pour sa patience, sa tolérance, et son talent pédagogie assez creux, soit dit en passant .
Je te conseille de directement suggérer tes idées a Linus, au moins il sera sur qu'il n'y a aucune solution a son problème...

Sans rancune, j'suis ici pour apprendre .

Alors le soit-disant Expert Confirmé Sénior trouve que :

  • Primo, pour quelqu'un dont le but est d'apprendre, je te trouve très susceptible dès qu'on ose remettre en question tes affirmations. Et quand en plus tu n'en es qu'à ton 4ième post et que tu te permets de prendre de haut une remarque, j'ai bien peur que tu aies un problème d'attitude plus générale, et pas dans une bonne disposition pour apprendre....
  • Secondo, pour quelqu'un dont les affirmations pré-supposent qu'il sait de quoi il parle ("l'écriture en C sauvage n'augmente t-elle pas, dans une certaine mesure, la complexité du code du noyau") (ce qui est un jugement, a priori d'expert), ma réponse était ceci, une réponse, mettant simplement en doute ta capacité à juger ce qui est du "C sauvage" par rapport à du "C++ civilisé", et non une "critique digne d'un serial killer". Nous sommes sur un forum de professionnels, et l'avis de jeunes est le bienvenu, à condition qu'ils fassent preuve du minimum d'humilité nécessaire quant à l'affirmation de jugements péremptoires.
  • Tertio enfin, ce qui confirme le doute qui peut émaner à la lecture de ton post est encore une fois le jugement péremptoire énoncé dans ton paragraphe "Malgré mon manque d'expérience professionnellle...".. Si tu n'as pas d'expérience professionnelle, comment peux-tu juger "qu'il était plus agréable, plus clair et plus rapide de concevoir une architecture en C++ qu'en C" ??? Ce que je ne faisais que souligner dans mon post.. As-tu déjà mis ton nez dans des grands codes professionnels en C ?


Enfin, les remarques des deux participants ci-dessus sont tout à fait justifiées.. La plus importante d'un point de vue pratique étant qu'une architecture (surtout d'un noyau, mais de manière plus générale de toute application) se doit d'être indépendante du langage utilisé (sinon adieu les évolutions).
Avatar de Kimious Kimious - Membre à l'essai https://www.developpez.com
le 09/11/2009 à 9:56
Tout a fait d'accord avec ce que tu dis, c'est juste que j'ai eu l'impression d'être légèrement "agressé" lors de mon premier post. J'attendais plus une réponse à ma question, plutôt qu'une critique sur ma façon de poser cette question (maladroite je l'accorde...).

Si la technique utilisée est bonne, et que le problème de croissance du taille de code est une contrainte de l'environnement inévitable, mais que le kernel devient de plus en plus complexe et perd en performance, où celui-ci commet une faute ?
Avatar de TheDrev TheDrev - Membre actif https://www.developpez.com
le 28/02/2010 à 12:33
Minix 3 semble une bonne alternative a long terme a Linux, mais il ne faut pas non plus oublier HURD. Dans le meilleur des monde, Linus and Co pourraient aider a sa finalisation et se reconsilier avec Stallman et Tanenbaum.
Avatar de B.AF B.AF - Membre chevronné https://www.developpez.com
le 28/02/2010 à 20:08
Citation Envoyé par TheDrev  Voir le message
Minix 3 semble une bonne alternative a long terme a Linux, mais il ne faut pas non plus oublier HURD. Dans le meilleur des monde, Linus and Co pourraient aider a sa finalisation et se reconsilier avec Stallman et Tanenbaum.

Une dystopie ?
Avatar de supertonic supertonic - Membre habitué https://www.developpez.com
le 02/03/2010 à 9:44
Que Linux laisse de coté l'aspect Destop et que les devs desktop aide au projet Haiku ...
Avatar de smyley smyley - Expert éminent https://www.developpez.com
le 02/03/2010 à 16:20
Sympa ça, un OS orienté objet en C++
Offres d'emploi IT
Développeur Web FULL-STACK
VACALIANS GROUP - Languedoc Roussillon - SETE (34)
Développeur WEB PHP F/H
VACALIANS GROUP - Languedoc Roussillon - SETE (34)
RESPONSABLE WEB ANALYTICS F/H
VACALIANS GROUP - Languedoc Roussillon - SETE (34)

Voir plus d'offres Voir la carte des offres IT
Contacter le responsable de la rubrique Accueil