why only C?
Anuz Pratap Singh Tomar
chambilkethakur at gmail.com
Sun Apr 3 15:23:53 EDT 2011
On Sun, Apr 3, 2011 at 8:17 PM, mohit verma <mohit89mlnc at gmail.com> wrote:
> Hi list,
> I have a very basic question.
> As far as i can decipher , we impose Object oriented paradigm in kernel
> space using C : like using gates to allow only one way entry and binding
> functions to structures in a OOP fashion and trying to make them private to
> that structure only , encapsulation of one struct into another structure
> (and lots of features ) and itself lots of kernel subsystem supports like
> driver interface and blah blah behaving like **objects** .......
> why dont we use some fully OOPs supportive language like JAVA or partial
> supportive language like C++ to construct Linux Kernel????
> I don't think that performance is the main reason behind all this . Is
> Thanks a lot in advance.
Read more or even google it.
Besides its Design decision by Linus Torvalds
Here is the historic mail explaining what he said
*From: Linus Torvalds* [email blocked]
Subject: Re: Compiling C++ kernel module + Makefile
Date: Mon, 19 Jan 2004 22:46:23 -0800 (PST)
On Tue, 20 Jan 2004, Robin Rosenberg wrote:
> This is the "We've always used COBOL^H^H^H^H" argument.
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:
- the whole C++ exception handling thing is fundamentally broken. It's
_especially_ broken for kernels.
- any compiler or language that likes to hide things like memory
allocations behind your back just isn't a good choice for a kernel.
- you can write object-oriented code (useful for filesystems etc) in C,
_without_ the crap that is C++.
In general, I'd say that anybody who designs his kernel modules for C++ is
(a) looking for problems
(b) a C++ bigot that can't see what he is writing is really just C anyway
(c) was given an assignment in CS class to do so.
Feel free to make up (d).
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Kernelnewbies