Subject: Kernel device driver
To: None <port-alpha@netbsd.org>
From: Paul Mather <paul@gromit.dlib.vt.edu>
List: port-alpha
Date: 09/12/2000 16:34:21
I apologise in advance that this is probably not the best place to post
this, but I know there are a number of kernel hackers on port-alpha,
and, at the very least, they can tell me a better place to seek a
solution.
I need to develop a kernel device driver---something akin to the vnd
pseudo device, but that works over a TCP/IP socket, instead of with a
local file. The remote end of the socket is some custom API (over which
I have no control) acting as a front-end for some custom storage bricks
(again, over which I have no control). The object of the driver is to
provide a block-device abstraction on which filesystems may be created
(a la vnd, raid).
My dilemma is this: what is the best platform under which to develop
such a device driver? I have a personal fondness for NetBSD (I run
NetBSD/{alpha,pmax} at home, so you know where my biases lie), but I
notice there appears to be a dearth of information about kernel
developing for NetBSD. Well, a dearth compared to Linux, at any
rate. Looking for information, I found lots of tutorials and
information for Linux kernel development, and there seem to be lots of
file systems out there in the field, including a "network block
device," which appears similar to what I need (just have to retool the
other end).
My boss naturally gravitated towards Linux from the get-go (being the
higher profile OS in the public eye), but the ultimate decision is mine.
However, I need to be able to justify it. Although I prefer NetBSD, my
gut feeling is that I would have an easier time developing under Linux
because of the greater availability of support material. (For BSD, I
have the red BSD4.4 book, and that's about it.) Also, there are some
folks locally with kernel filesystem development experience under Linux,
so they'd be a handy local resource.
I have no prior hands-on kernel developing experience, so I'm looking
for something with the easiest learning curve, but which ultimately
yields a good end result. (The multi-platform aspect of NetBSD is a big
plus in its favour, IMHO!)
So, can I get some honest advice, here? E-mail me privately, if you
prefer. I don't want this to become an OS advocacy flame-fest. Like I
said, my heart belongs to NetBSD... :-)
(Also, if anyone knows of NetBSD kernel development resources, let me
know of those, too!)
Cheers,
Paul.
e-mail: paul@gromit.dlib.vt.edu
"Without music to decorate it, time is just a bunch of boring production
deadlines or dates by which bills must be paid."
--- Frank Vincent Zappa