Why? Because there is a lot of complexity in the tty layer, and there
is no point in replicating the entire tty layer with all its ioctls
through a fragile user-space emulator. For cases like this, a pty is
easier (your daemon opens /dev/ptmx, and then symlinks the appropriate
pty to /dev/pilot) and works better.
Indeed. It would be nice to fix, because it would make implementing
serial ports as ptys+userspace a much more capable replacement. It's
not trivial, though, because the interpretation of the BREAK has to be
done when received, not when sent, which means supporting a 257th value
in the underlying buffer setup.
-hpa
--