The *problem* is also step 2, of course. The TTY layer isn't complicated
by its need to conform to RS232 or whatever. It's complicated by its
horrendously arcane userspace interface (what is it, *two* chapters in
APUE?), which is the very thing whose behaviour must be preserved.