Annotation of 43BSD/contrib/X/doc/Usenix/pty.t, revision 1.1.1.1

1.1       root        1: .SH
                      2: Terminal Emulation
                      3: .PP
                      4: The current terminal emulator for X (\fIxterm\fP) is a client application,
                      5: in principle similar to any other application.
                      6: In practice, \fIxterm\fP is
                      7: probably the most complex and least graceful part of the package.
                      8: Pseudo teletypes (hereafter called pty's) are used to
                      9: implement this in 4.2BSD.
                     10: As currently implemented, ptys consist of a device driver which presents
                     11: a terminal on one side and a master controlling device on the other side.
                     12: Data is looped back from one side to the other, with full terminal
                     13: processing occurring (tab expansion, cooked/raw mode, etc.)
                     14: .PP
                     15: These present a number of problems:
                     16: 1) pty's are a limited resource.  
                     17: Typical systems have 16 or 32 ptys.
                     18: On a single user machine,
                     19: this limit is seldom reached,
                     20: but on a timesharing machine it can be inconvenient.
                     21: 2) Since they appear statically in the file system, protection
                     22: on the tty/pty pairs can be a problem.
                     23: A previous process that terminates unexpectedly can leave the pty
                     24: in an incorrect state.
                     25: \fIXterm\fP is the only application that must  run set user id to root 
                     26: to guarantee it can make the
                     27: tty/pty pair properly accessible
                     28: and to set ownership on the slave to the user.
                     29: .PP
                     30: The net result is that \fIxterm\fP is the most 
                     31: .UX
                     32: dependent
                     33: (and least likely to
                     34: port between 
                     35: .UX
                     36: implementations) of any of the X clients currently existing.
                     37: Dennis Richie's [3] stream mechanism appears to eliminate
                     38: most of these problems by allowing stacking of terminal processing on
                     39: IPC.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.