|
|
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.