pud —
Pass-to-Userspace Device
pseudo-device pud
pseudo-device putter
The pud driver enables the implementation of block and
  character device drivers as userspace daemons. The daemons register the device
  major number they wish to handle. Registering a character device is mandatory,
  supporting the block device interface for same major device is optional. The
  major number must be available, i.e. another driver must not be registered to
  handle the operation. After successful registration the userspace daemon is
  supposed to handle the driver methods the kernel passes down to it.
This document is in a hit-in-the-head style obviously not even near complete.
The subsystem lacks a puffs-style library that servers can be
    written against.