(Mostly) abstract multiplexing logic out of shell and into the kernel
The shell, being our chief UI, still touches the kernel to handle pty switches
However, most of the time, the shell sees the pty as if it were a device