A tempest in a tty pot
Aug 13, 2009, 22:02 (0 Talkback[s])
(Other stories by Jonathan Corbet)
"Arguably, no part of the kernel is darker and scarier than the
serial terminal (TTY) code. Recently, this code was getting a
much-needed update, but it now appears that a disconnect within the
community has brought that work to a halt and thrown TTY back into
the "unmaintained" column - at a time when that code has known
regressions in the 2.6.31-rc kernel.
"At a first glance, the TTY layer wouldn't seem like it should
be all that challenging. It is, after all, just a simple char
device which is charged with transferring byte-oriented data
streams between two well-defined points. But the problem is harder
than it looks. Much of the TTY code has roots in ancient hardware
implementing the RS-232 standard - one of the loosest, most
variable standards out there. TTY drivers also have to monitor the
data stream and extract information from it; this duty can include
^S/^Q flow control, parity checking, and detection of control
characters. Control characters may turn into out-of-band
information which must be communicated to user space; ^D may become
an end-of-file when the application reads to the appropriate point
in the data stream, while other characters map onto signals. So the
TTY code has to deal with complex signal delivery as well - never a
path to a simple code base."
Complete Story
Related Stories: