Bonjour à tous,
Je me demandais, est-il possible de coder un noyau en C++ ? On parle beaucoup sur internet d'assembleur et de C, mais pas de C++ ?
Merci ! :mrgreen:
Version imprimable
Bonjour à tous,
Je me demandais, est-il possible de coder un noyau en C++ ? On parle beaucoup sur internet d'assembleur et de C, mais pas de C++ ?
Merci ! :mrgreen:
Il existe surement des noyaux en C++, mais je ne les connais pas. Linux est codé en C car c'est rapide, donc le noyau est performant, et portable, car le premier compilateur disponible sur une nouvelle plate forme est généralement le C.
Le C++ peut être aussi performant que le C, mais il faut savoir ce qu'on fait, et on a trop tendance à se disperser, a faire des trucs modulaires, et au final le C permet plus de discipline.
Je vois complètement ce que tu veux dire sur la dispersion :mouarf: Donc il vaut mieux privilégier le C. Un noyau peut-il être codé uniquement en C ou il faut y joindre un peu d'ASM ?
ET, dernière question, où peut-on trouver les sources brutes de Linux ? J'ai déjà cherché mais rien de vraiment concret, des dizaines d'onglets ouverts dans le navigateur mais pas vraiment de résultats :(
Tu as essayé ceci : http://www.kernel.org/ ?
La encore, le C (comme le C++) peut etre aussi rapide que de l'assembleur dans la majorité des cas si tu sais ce que tu fais. Par contre peut etre que pour les drivers il y a certaines fonctions bas niveau qui demandent de l'assemmbleur. Peut etre aussi certaines fonctions très bas niveau du noyau.
Il y a peu être un avantage certains du C dans la compatibilité binaire (mangling, template)?
En outre, il est relativement simple de faire une interface en C (.h) pour des fonctions écrites en ASM (c'est assez sympa à voir pour bien comprendre les appels de fonctions d'ailleurs et les différentes conventions)
Hop, un site spécialisé: http://wiki.osdev.org/C%2B%2B