Einzelnen Beitrag anzeigen

wido

Registriert seit: 2. Jan 2006
122 Beiträge
 
#1

Re: Umsteigen auf C++?

  Alt 31. Mär 2008, 20:17
Ach ja ...

C++ ist nicht die Sprache erster Wahl für Treiberprogrammierung. Eher im Gegenteil:
Sowohl bei Linux als auch bei Windows wird von der Benutzung von C++ im Kernel Mode z.B. eher abgeraten. Das Problem ist, daß viele der Sprachfeatures von C++ nur sehr schwer im Kernel Mode nutzbar sind. Exceptions sind da z.B. ein sehr prominentes Beispiel. Im Kernel Mode ist also immer noch C die erste Wahl, wobei C++ mit diversen Auflagen und unter größter Vorsicht (und in den meisten Fällen ohne Support vom Hersteller) möglich ist.

Linus Torvalds hat es mal treffend formuliert:
Zitat:
In fact, in Linux we did try C++ once already, back in 1992. It sucks. Trust me - writing kernel code in C++ is a BLOODY STUPID IDEA.

The fact is, C++ compilers are not trustworthy. They were even worse in
1992, but some fundamental facts haven't changed: 1) the whole C++ exception handling thing is fundamentally broken. It's _especially_ broken for kernels. 2) any compiler or language that likes to hide things like memory allocations behind your back just isn't a good choice for a kernel. 3) you can write object-oriented code (useful for filesystems etc) in C, _without_ the crap that is C++.
Ansonsten empfehle ich einfach mal:
http://www.linuxquestions.org/questi...to-use-353924/
http://www.microsoft.com/whdc/driver/kernel/KMcode.mspx

Allerdings gibts auch dort Ausnahmen. MacOS X z.B. unterstützt imho Treiberentwicklung mit Hilfe von C++. Allerdings hab ich damit bislang noch nicht allzu viel zu tun gehabt. Entsprechend kann ich dazu wenig sagen im Gegensatz zu Linux und Windows .
  Mit Zitat antworten Zitat