|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: Receiving Network Packets with Mirage/kFreeBSD
On Sun, Aug 19, 2012 at 07:19:00PM +0100, Richard Mortier wrote:
> out of curiosity, and from a *very* naive viewpoint [..], how applicable
> would the same structures be to supporting disk/other io access?
As far as I know [1], handling I/O is implemented by two asynchronous halves
in the kernel. The lower half sits on interrupt services and places the
received data in (per-device) queues. In parallel with this, the upper half
reads the shared queues and processes their elements. (Sending data is just
the opposite.)
In this particular case, the lower half is implemented in C while the upper
half is in OCaml. I do not see any difficulties in adapting this to other
I/O devices, but Robert or Anil may prove me wrong :-)
[1] Section 6.1, Design and Implementation of the FreeBSD Operating System
(1st Ed.)
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |