|
|
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.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.