Is the first interface really preferrable? How does that extend
to commands that need to return data? Do we want to manage 30 different
commands in the kernel? New functionality would require kernel updates.
It seems much cleaner to keep the kernel interface simple and opaque
(ie read/write), and handle the details of the commands in user space.
From my limited understanding, I thought that was a common goal here:
move what you can to userspace.