|
|
1.1 root 1: .SH
2: File Descriptors
3: .PP
4: Andrew, the window system developed at the ITC at CMU [1]
5: uses one connection (file descriptor)
6: per window.
7: While simple from a conceptual level,
8: also allowing naive applications to do output to a window,
9: it ties an expensive resource (file descriptor and connection) to
10: what should be a cheap resource (a window or sub-window).
11: It requires more kernel resources
12: in the form of socket buffers for each file descriptor.
13: In addition, the handshaking required for opening a connection is
14: expensive in terms of time and will become more so once connections
15: become authenticated.
16: The attraction of having a simple stream interface to a window
17: can be had by other means [2].
18: In addition, if a window is tied to a file descriptor, the
19: application loses the
20: implicit time sequencing provided by the event stream coming over a single
21: connection.
22: .PP
23: One X application uses more than 120 subwindows,
24: all multiplexed over a single connection.
25: One could postulate a single connection per client for input,
26: and a single connection
27: per window for output; with the limited number of file descriptors in 4.2BSD
28: and other current versions of
29: .UX ,
30: this was eliminated as a possibility.
31: Sixteen client programs seems to be sufficient for most people,
32: (this is limited by 20 file descriptors on standard
33: .UX ,
34: with four file descriptors needed
35: for X; one for the display, keyboard and mouse, two to listen for
36: incoming connections, and one for reading fonts).
37: Sixteen is not a tolerable limit on the total number of (sub)windows,
38: however.
39: .PP
40: 4.3BSD lifts this limit to sixty four.
41: (It can be configured to any size.)
42: While this increase in the number of file descriptors is beneficial,
43: it is still too expensive a resource to use one per window.
44:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.