Xlib Programming Manual (O'Reilly & Associates, Inc.) |
This appendix lists a few of the official and unofficial sources for information about the X Window System and associated software.
Note that some of this detailed information may become
dated rather quickly. The best source of current information is the comp.windows.x
network news group, described later in this appendix.
You can get the X software directly from MIT on three 9-track 1600-BPI magtapes written in UNIX tar format or on one 9-track 6250-BPI magtape, along with printed copies of MIT's manuals, by sending a check in U.S. currency for U.S. $400 to:
MIT Software Distribution Center
Technology Licensing Office
MIT E32-300
77 Massachusetts Avenue
Cambridge, MA 02139
Their telephone number is (617) 253-6966, and the "X Ordering Hotline" is (617) 258-8330. If you want the tapes and manuals shipped overseas, the price is $500. The manual set alone is $125, including U.S. shipping, or $175, including overseas shipping.
Other distribution media or formats are not available from the MIT Software Distribution Center but are from other independent vendors such as ICS, mentioned later. The Release tape comes with source code for sample servers for Apollo, DEC, HP, IBM, Sony, Sun, and several other workstations, source code for clients written by MIT, sources for the toolkits Xt, XView, Interviews, and Andrew, contributed software written outside MIT, and sources and Postscript files for all MIT's documentation. Note that the servers supplied are sample servers only; commercial vendors typically release optimized (faster) servers for the same machines.
Sites that have access to the Internet can retrieve the distribution from the following machines using anonymous ftp. Here are the current sites:
| Location | Hostname | Address | Directory |
|---|---|---|---|
| Western USA | gatekeeper.dec.com | 16.1.0.2 | pub/X11/R5 |
| Eastern USA | ftp.uu.net | 192.48.96.9 | X/R5 |
| 137.39.1.9 | X/R5 | ||
| Northeastern USA | export.lcs.mit.edu | 18.24.0.12 | pub/R5 |
| crl.dec.com | 192.58.206.2 | pub/X11/R5 | |
| Central USA | mordred.cs.purdue.edu | 128.10.2.2 | pub/X11/R5 |
| giza.cis.ohio-state.edu | 128.146.8.52 | pub/X.V11R5 | |
| Southern USA | wuarchive.wustl.edu | 129.252.135.4 | packages/X11R5 |
| UK (Janet) | src.doc.ic.ac.uk | 146.169.2.1 | X |
| Australia | munnari.oz.au | 128.250.1.21 | X.V11/R5 |
| 192.43.207.1 | X.V11/R5 |
DO NOT do anonymous ftp during normal business hours, and please use the machine nearest you.
The distribution is also available by UUCP from UUNET for sites without Internet access. The files are split up to be small enough for UUCP distribution.
The xstuff server is a mail-response program. This means that you mail it a request and it mails back the response.
The xstuff server is a very dumb program. It does not have much error checking. If you do not send it commands that it understands, it will just answer "I don't understand you."
The xstuff server reads your entire message before it does anything, so you can have several different commands in a single message. It treats the "Subject:" header line just like any other line of the message. You can use any combination of upper and lowercase letters in the commands.
The archives are organized into a series of directories and subdirectories. Each directory has an index, and each subdirectory has an index. The top-level index gives you an overview of what is in the subdirectories, and the index for each subdirectory tells you what it contains.
If you are bored with reading documentation and just want to try something, then send the server a message containing the line:
When you get the index back, it will contain the numbers of all of the fixes and batches of fixes in the archive. Then you can send the server another message asking it to send you the fixes that you want:send index fixes
If you are using a mailer that understands "@" notation, send to xstuff@expo.lcs.mit.edu. If your mailer deals in "!" notation, try sending to {someplace}!eddie!expo.lcs.mit.edu!xstuff. For other mailers, you're on your own.send fixes 1 5 9 11-20
The server has four commands. Each command must be the first word on a line.
The xstuff server does not respond to requests from users named root, system, daemon, or mailer. This is to prevent mail loops. If your name is "Bruce Root" or "Jane Daemon" and you can document this, we will happily rewrite the server to remove this restriction. Yes, we know about Norman Mailer and Waverley Root. Norman doesn't use netmail and Waverley is dead.
If you have a request waiting in the work queue and you send in another request, the new request is added to the old one (thereby increasing its size) rather than being filed anew. This prevents you from being able to send in a large number of small requests as a way of beating the system.
The reason for all of these quotas and limitations is
that the delivery resources are finite, and there are many people who would
like to make use of the archive.
| News Group | Description |
|---|---|
| motif@alphalpha.com | People interested in the OSF's Motif X toolkit This mailing list is also gatewayed to the Usenet newsgroup comp.windows.x.motif . If you receive that newsgroup, you don't need to get this mailing list. |
| x11-3D@expo.lcs.mit.edu | People interested in X and 3-D graphics |
| x-ada@expo.lcs.mit.edu | X and ada |
| ximage@expo.lcs.mit.edu | People interested in image processing and X |
| xpert@expo.lcs.mit.edu | General discussion of X This mailing list is also gatewayed to the Usenet newsgroup comp.windows.x . If you receive that newsgroup, you don't need to get this mailing list. |
| openlook@unify.com | Discussion of the OPEN LOOK graphical user interface, and its various implementations. This mailing list is also gatewayed to the Usenet newsgroup comp.windows.open-look . If you receive that newsgroup, you don't need to get this mailing list. |
| xvideo@expo.lcs.mit.edu | Discussion of video extensions for X |
First ask your site administrator whether you can get these news groups locally. Requests to have the motif mailing list mailed directly to you should be sent to motif-request@alphalpha.com. Requests to have the OPEN LOOK mailing list mailed directly to you should be sent to openlook-request@unify.com. Requests for all the other lists should be sent to mailing-list-name-request@expo.lcs.mit.edu, or uunet!expo.lcs.mit.edu!mailing-list-name-request (for example, to join the ximage mailing list, send mail to ximage-request@expo.lcs.mit.edu).
The newsgroup comp.window.x (which is the same
as xpert), is where users and developers around the world ask and
answer questions.
There are currently no telephone support lines at the X Consortium, because X was developed by a university, not a system manufacturer or software house. Some vendors such as OSF offer support for a fee.
ICS provides telephone support for a fee. See Section
G.3 for their telephone number.
MIT X Consortium
545 Technology Square - Room 217
Cambridge, MA 02139
The Consortium's telephone number is (617) 253-8861; its
current members are shown below.
| Apple Computer, Inc. | NCR Corporation |
| AT&T UNIX System Laboratories | NEC Corporation |
| BULL | Network Computing Devices, Inc. |
| Control Data Corporation | Nippon Telegraph and Telephone Corporation |
| Convex Computer Corporation | Oki Electric Industry Co., Ltd. |
| Cray Research, Inc. | Olivetti Systems & Networks |
| Data General | OMRON Corp. |
| Digital Equipment Corporation | Prime Computer, Inc. |
| Du Pont Imaging System | The Santa Cruz Operation, Inc. |
| Fujitsu America, Inc. | Sequent Computer Systems Inc. |
| Hewlett-Packard Company | Siemens Nixdorf Informationssysteme AG |
| Hitachi | Silicon Graphics Computer Systems |
| Hughes Aircraft Co. | Sony Corporation |
| IBM Corporation | Sun Microsystems, Inc. |
| Intergraph Corporation | Tandberg Data A/S |
| Eastman Kodak Company | Tektronix, Inc. |
| Kubota Pacific | Texas Instruments, Inc. |
| Matsushita Electric Industrial CO., LTD. | Unisys Corp. |
| Mitsubishi Electric Corporation | Xerox Corporation |
| Motorola, Inc. |
| Adobe Systems | Metheus Corp. |
| AGE Logic, Inc. | MIPS Computer Systems |
| Aptronix, Inc. | MITRE Corp. |
| ASTEC, Inc. | Objectivity, Inc. |
| Athenix Corp. | Open Software Foundation |
| Bitstream, Inc. | O'Reilly & Associates, Inc. |
| CETIA | PCS Computer Systeme GmbH (Germany) |
| Chromatics | Peritek Corp. |
| Codonics, Inc. | PsiTech, Inc. |
| Industrial Technology Research Institute (China) | Quarterdeck Office System |
| Data Connection Ltd. | Ramtek Corp. |
| Evans & Sutherland | Samsung Software America |
| Frame Technology Corp. | ShoGraphics, Inc. |
| GIPSI S.A. (France) | Snitily Graphics Consulting Services |
| GfxBase | Solbourne Computer Inc. |
| HaL Computer Systems | SOUM Corporation (Japan) |
| Institute for Information Industry (Taiwan) | SPARC International |
| Integrated Computer Solutions, Inc. | SpectraGraphics Corp. |
| Interactive Systems Corp. | Stanford University |
| Ithaca Software | Strategic Research Institute Inc. (Japan) |
| IXI Limited | Sumitomo Electric Workstation Corp. |
| Japan Computer Corporation | Tatung Science and Technology |
| Jupiter Systems | Tyan Computer |
| KAIST (Korea Advanced Institute of Science and Technology) | Unipalm XTech |
| Labtam Australia | VisionWare Ltd. |
| Liant Software Corporation | Visix Software, Inc. |
| Locus Computing Corporation | Visual Information Technologies, Inc. |
| University of Lowell | Visual Technology, Inc. |
| Megatek Corp. | Widget, Inc. (Japan) |
| Metro Link, Inc. | X/Open Company Ltd. |
Most of these companies are preparing products based on
X. It should not be long before many different products are available that
support X.
Xlib and the server are two distinct chunks of code. Each contains code for sending and receiving information to and from the other over the network using protocol requests, replies, events, and errors. The source tree as supplied on the X distribution tape places the Xlib source in the directory base/lib/X, where base is the top of the entire source tree. Their server source is placed in base/server.
The procedure for finding out something about an Xlib routine is normally to search for the routine in the Xlib code and then figure out what it does. Sometimes the answer can be found there. Many of the routines, however, simply place their arguments in a protocol request and send it to the server. Then you will have to look in the server code for the answer. To find the correct place in the server code, you will need the symbol for the protocol request, which is the first argument in the GetReq call.
The server code is much more involved than Xlib itself. The device-dependent portions are in base/server/ddx, and the device-independent portions are in base/server/dix. The device-independent code should be your first stop, because it is here that protocol requests from Xlib arrive and are dispatched to the appropriate code. Search for the protocol request symbol you found in Xlib. It will appear in several source files. Start with the occurrence in dispatch.c, and try to figure out what the code does. This will require following leads to other routines.
If you do not find a routine in base/server/dix, then it must be in the device-dependent code. base/server/ddx has one directory in it for each brand of hardware to which a sample server has been ported. It also contains the directories /cfb, /mfb, /mi, and /snf, which contain routines used in writing the sample server device-dependent code. Note that servers may include code ostensibly for other machines. For example, the Sun sample server appears to use code in several of the directories for other servers such as dec and hp.
Xlib and the X protocol are both defined by specification
documents, not by any particular implementation. Never depend on the implementation
details of the Xlib or server code. If you do, your code may not run on
a machine that has optimized X software. This manual documents only those
features of Xlib and X in general that are governed by X Consortium standard
specifications. If you follow the guidance you find in this volume and
the details in Volume Two, Xlib Reference Manual, you will be in
good shape.
Xlib Programming Manual (O'Reilly & Associates, Inc.) |