Find out how ICT can support biomedical and clinical researchFind out more. Managing complexity by developing new tools and processes. Managing Complexity

Current implementation

The user-level device driver (ULDD) project has produced a framework to allow device drivers to be run at user-level on both the L4 microkernel and Linux. Although focussing on user-level drivers, the framework also allows the same device drivers to be run inside the Linux kernel. This is not only useful for benchmarking, it also allows performance-critical drivers to be moved back into the kernel after having been developed and debugged at user level.

The driver framework has been used to create a number of drivers including:

  • IDE disk driver
  • 100Mbit ethernet driver (Tulip chipset)
  • Gigabit ethernet driver (dp83820 and Intel E1000 chipset)
  • Serial port
  • Keyboard

One of the goals of this work is to provide a flexible environment. To this end we have made the drivers as portable as feasible, and have them running on a number of platforms:

  • IA64 (Itanium and Itanium 2 platforms)
  • IA32 (aka x86)
  • Alpha (Pyxis and Tsunami chipsets)
  • MIPS (GT chipset)