Hi Julia

sDDF is intended to be used for doing I/O whether it’s completely native or in 
conjunction
with virtual machines. In the sDDF repository, you’ll find examples of native 
clients using
native device drivers for block, network, I2C, etc.

You can think of libvmm as just a user of sDDF. In libvmm, sDDF is primarily 
used for emulating virtIO devices
for virtual machines. For example, if we wanted a virtual machine to access the 
network, the VMM managing
it would act as a client of a network sDDF system that would end up talking to 
a driver to do the actual
I/O.

However, because these interfaces between clients of a sDDF system and the 
components that actually manage
the I/O are standard, we can also do things such as have a driver virtual 
machine rather than having a
native driver. We’ve used this to leverage existing drivers in Linux to not 
have to write drivers for all the devices
we want to make use of, e.g for audio drivers.

You can find more info about the design of sDDF and its goals in the design doc 
[1].

Hope that clears things up.

Ivan

[1]: https://trustworthy.systems/projects/drivers/sddf-design-latest.pdf

_______________________________________________
Devel mailing list -- devel@sel4.systems
To unsubscribe send an email to devel-leave@sel4.systems

Reply via email to