kern/99979: Get Ready for Kernel Module in C++

John Baldwin jhb at
Tue Jul 11 15:24:56 UTC 2006

On Tuesday 11 July 2006 10:57, Dag-Erling Smørgrav wrote:
> > For example, I think C++ exception handling is really poorly suited for
> > low-level code.
> Exception handling is required by the standard, even for freestanding
> implementations.

Standards aside, in Darwin, the C++ Apple uses does not have any exception
handling or RTTI (and maybe not even templates).  They use their own set of
meta classes to implement an RTTI-like system that allows for future changes
in the ABI.  You would also benefit from doing some of your own research.

> > But the "object model" is still obscure to understand no matter how many
> > people all over the world master C++.
> The fact that you don't understand it doesn't mean it's bad.

No, but it is obtuse.  And very underused.  How many device drivers do you
know of that use kobj inheritance?

> > What's more, can the "object model" function really as OpenDarwin's
> > IOKit class model?
> Does it need to?

He's trying to port IOKit to FreeBSD for his exercise (if you had read his
first e-mail you'd know that).

> > Well, you can LOOK DOWN UPON me, but I believe you cannot throw doubt on
> > FreeBSD's actuality: so weak USB support (kernel crash easier than many
> > other OSs that we laughed at and that we are laughing at), so weak PCI
> > device support.
> Please provide references to the PRs you filed about these issues.

USB crashes are not that uncommon, and compared to other OS's (such as Windows 
and OS X both of which I've written a PCI driver for) we require device 
driver writers to go through a lot more hoops to do certain things like 
allocate resources.  At the very least there is much that can be improved in 
our driver model.

John Baldwin

More information about the freebsd-hackers mailing list