[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Hurd drivers (was Re: Driver Authoring????)



(dropping -user, adding -hurd)

On Sun, Jun 05, 2005 at 05:21:28PM -0400, Marty wrote:
> >Might want to lookup the Linux Kernel Hacker's Guide, too.  Alternatively, 
> >you could just make it for HURD, instead ;)
> 
> Funny you should mention it.
> 
> I've been seriously considering writing or porting a driver for Hurd, just 
> to get an idea of what microkernels are all about, and hopefully even
> help get the Hurd microkernel into wider usage.  Does anyone have any
> advice or comments?  

The Hurd isn't a microkernel.  And no, that's not hair splitting, it
merely sits upon a microkernel (GNU Mach usually, although work is
underway to port it to the next-gen L4 microkernel).  The Hurd itself is
a set of servers running in user space which (together with parts of
glibc atop and the Mach kernel beneath them) provide the convential
functionality one expects of a Unix kernel.  Besides other things.

> Like e.g. where to start looking for driver projects, or does Hurd
> support remote debugging (e.g. with ddd over ethernet, possibly
> running on a linux box?), what is it like to work in that
> "environment," how mature is the project, how stable is the
> microkernel and what impact does that have on driver development?,

To cut it short, Hurd/Mach uses Linux driver via some glue code, there
are no 'Hurd drivers' per se.  And not just any, it currently uses 2.0
drivers which sucks for obvious reasons.  So if you are masochistic
enough you could dive into Mach or the Mach<->Linux glue code and update
the interfaces to run nowadays drivers.  You'd be everyone's hero,
however, most people who tried that lost their sanity down the road.

Or you could jump on the Hurd/L4 bandwagon, where no device drivers
exist at all right now.  However, there is a nice device driver
framework proposal for user-level drivers specced out in the design
document, but almost no work has been done yet and nobody is working on
it right now.  So, much to do and good device driver hackers are
anxiously sought after.

> Another area of clarification is what the relationship is between the
> Hurd driver developer and Debian?  

As there is no such thing as a Hurd driver developer I'll just ignore
the 'driver' part.  Hurd developers are closely connected to Debian, as
most/all of the core developers are Debian developers as well and one of
them started out as a Debian Developer first and only eventually became
a Hurd maintainer as well.  On the other hand, most of them are pretty
uninterested in the daily development of Debian in general these days
and merely use Debian as a basis for the Hurd hacking.  They are very
much supporting the Debian GNU/Hurd port, though.

[...]

> Part of my motivation for looking at Hurd driver development is that
> Linux is so damn popular that it seems unlikely that they really need
> any more driver help.  My background is in networking and various
> other I/O drivers, but never with Debian or and other free software
> organization.  I'm interested in writng just about any type of Hurd
> drivers, but simpler is better for a first project.  (I am
> crossposting this message to the debian-project list and will drop
> debian-user if anyone thinks this is getting too off-topic.)

I suggest you read up on the nice general design stuff at
http://hurd.gnu.org and then check out the Hurd (it's easiest to do that
via Debian GNU/Hurd).  Upstream development is coordinated on
bug-hurd@gnu.org for general development and l4-hurd@bug.org for the
Hurd/L4 port, but most people on these lists read debian-hurd as well.
Once you have an idea what you'd like to do, drop a note or pop up on
IRC (#hug or #hurd-l4 on irc.debian.org) and (with some patience, there
are only very few people working on the Hurd and most of them are very
busy as well) you will get integrated into this nice community :)


cheers,

Michael

-- 
Michael Banck
Debian Developer
mbanck@debian.org
http://www.advogato.org/person/mbanck/diary.html



Reply to: