DragonFly kernel List (threaded) for 2011-02
Re: gsoc 2011 : about virtio drivers
On 02/23/2011 12:42 AM, Stéphanie Ouillon wrote:
I discovered DragonFly BSD a few weeks ago and started by running it
following the tutorials on the site and reading around. I am a student
in an engineer school ( networking, telecommunication fields ) and I'm
very interested in everything in relation to OS architecture and C
it's nice to see more people who are interested in the virtio project!
And I say "more", because I have already been contacted off list by
Thibaut Deloffre (CC'd) about the same project :-) Unfortunately, the
GSoC wiki page is Work In Progress and you've caught us doing the last
rehearsals before the start of the show.
The situation is as follows: Tim Bisson and Pratyush Kshirsagar spent
some time working on a virtio driver port from NetBSD, but then changed
direction and run into a bit of unexpected trouble:
Thibaut's mail, I contacted them privately and they've expressed their
willingness to publish their code so that anyone can pick it up. If I
understood correctly, neither Pratyush nor Tim plan to do further work
(please correct me if I'm wrong!).
So I guess that means DragonFly will offer the virtio driver project in
this year's GSoC too. Tim suggested that the project could be expanded
to include the virtio memory baloon driver. That said, it seems that
only one student can work on the project, so I'd advise both of you to
have alternatives ready. I can recommend taking a look at the usb4bsd
port if you're mostly interested in drivers and the concensus on IRC
seems to be that the Samba VFS module for historical access has the
highest coolness factor this year ;-) Either will teach you a lot about
OS internals and both have tangible results, which makes the whole
experience that much more rewarding. But we're very interested in your
ideas and suggestions too.
I'm inexperienced in the domain of device drivers but I'm willing to
learn as much as possible and I am interested in some of the projects
you describe in your gsoc project list, in particular virtio drivers
implementation. I have begun to get some information about it. Can you
point me some links or some documentation to read about it (apart from
the ones indicated in the project list) ?
Unfortunately that's the only documentation I'm aware of that is
specific to virtio. With regard to driver writing, I can recommend
http://lwn.net/Kernel/LDD3/. While our APIs are completely different to
Linux's, the principles are similar for almost all monolithic OS
drivers. Especially the parts about synchronization and race conditions
are a must-read if you want to get into driver development.