bzt wrote:I've tried to take a look, but all doc and source links lead to HTTP 404
It's been a while...
Yes, looks like after moving to a different server, the generated documentation wasn't put online any more. You can just clone the git repository and run "make doc", though, if you have doxygen installed.
Essentially what it boils down to is: A driver is basically a struct containing function pointers for callbacks, and the OS calls these callbacks to make requests to drivers. Drivers may call the functions defined in the CDI headers and a subset of the C standard library to implement the functionality. The implementation for these functions must be provided by the OS.
Was CDI designed with microkernel or monolithic kernel in mind?
Both, really. týndur is a microkernel system, but CDI has been used in monolithic kernels, too, pretty much from the start.
And how is CDI different to
EDI for example? EDI seems to have a proper specification and example drivers too. Why not revive that instead?
I don't remember the details, but wasn't EDI that very abstract framework, making things a bit more complicated than they had to be? I'm sure I've discussed the differences somewhere on this forum some years back. And did EDI actually ever get more than an example driver?
Anyway, it wasn't on our radar at the time. CDI was started in 2007, so EDI isn't even much older. And today switching to a different interface that has never gained traction sounds like a bad use of the very little time that I still spend with OS development. But of course this shouldn't stop anyone else from doing reviving EDI if they think it's useful.