C++ a kernel kódban

 ( trey | 2004. január 21., szerda - 9:08 )

Az LKML egyik friss levelében egy tag segítséget kért a C++ nyelven írt Click Modular Router 2.4-es kernelről 2.6-os kernelre való portolásában. A kérésben a tag a C++-szal kapcsolatos fordítási hibák eltűntetésében kért segítséget, de a thread hamarosan hosszas vitába torkollott. A vita forrása az volt, hogy kell-e vajon a Linux kernelbe C++ kód vagy sem.
Ez a téma már lerágott csont, időről időre előkerül a listán, és általában óriási flame kerekedik belőle. A C++ témát egyébként tárgyalja az LKML FAQ-ja is itt.

A dologgal kapcsolatban Linus kifejtette a véleményét:"Valójában 1992-ben megpróbáltuk a C++-t a Linux kernelben. Szopás volt. Bízz bennem - a kernel kód C++-ban való írása HÜLYE ÖTLET (eredeti: véresen hülye ötlet)."

"Tény, hogy a C++ fordítók megbízhatatlanok. Rosszabbak voltak 1992-ben, de néhány alapvető dolog nem változott: 1) az egész C++ kivétel kezelés (exception handling) dolog alapvetően hibás. Különösen kernelek számára. 2) bármely fordító vagy nyelv, amely elrejt előled olyan dolgokat, mint a memória foglalás, nem jó választás a kernelhez. 3) írhatsz objektum orientált kódot (hasznos lehet filerendszerekhez, stb.) C-ben, a szar C++ _nélkül_".

A thread itt kezdődik.

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

Szerintem segítenek a csávónak, és átírják sima C-re, oszt jól van.

A legujabb vmware "klon" a http://www.twoostwo.org/ is c++ kodot pakol a kernelbe. (data/Libraries/LINUX/libDrv.a)

Szerintem jo nyelv a C++ de a kernelekhez telleg jobb a C mivel az hardver orientaltabb.