Implementing support for device drivers (device driver frameworks) in a microkernel-based/multiserver operating system presents some unique challenges. In this talk we will go through all the important aspects of device drivers in HelenOS, at the hurdles and the ways they can be overcome. We will discuss topics such as:
- Programmed I/O and DMA in user space
- Level interrupt handling and interrupt clearing, tasklets
- Cooperation of user-space drivers and kernel (debugging) drivers
- DDF and Device Manager - automatic driver start, device enumeration and hot (un)plug
- Exposing driver services, Location Service - drivers are not created more equal than others, a.k.a Death of the Pseudo Device