| AllExperts > Encyclopedia | ||
![]() |
X Window System: Encyclopedia BETAFree Encyclopedia |
| Home · Index · Browse A-Z | · Questions and Answers · |
|
While computer aficionados most often associate X with Unix, X servers also exist natively within other graphical environments. Hewlett-Packard's OpenVMS operating system includes a version of X with CDE, known as DECwindows, as its standard desktop environment. Apple's Mac OS X v10.3 (Panther) and up includes X11.app, based on XFree86 4.3 and X11R6.6, with better Mac OS X integration. Third-party servers under Macintosh System 7, 8 and 9 included MacX. Microsoft Windows does not come with support for X, but many third-party implementations exist, both free software such as Cygwin/X, Xming, WeirdMind and WeirdX; and proprietary products such as Xmanager, X-Deep/32, WiredX, Exceed and X-Win32. They normally serve to control remote X clients. When another windowing system (such as those of Microsoft Windows or Mac OS) hosts X, the X system generally runs "rootless", meaning the host windowing environment looks after the root window (the background and associated menus) and manages the geometry of the hosted X windows â€" although some servers (Exceed, for example) can also create the root window for the remote clients to display to as a separate window in the host system. X terminalsAn X terminal consists of a piece of dedicated hardware running an X server as a thin client. This architecture became popular for building inexpensive terminal parks for many users to simultaneously use the same large server. This use very much aligns with the original intention of the MIT project.X terminals can explore the network (the local broadcast domain) using the X Display Manager Control Protocol to generate a list of available hosts that they can run clients from. The initial host needs to run an X display manager. Dedicated (hardware) X terminals have become less common; a PC with an X server typically provides the same functionality at a lower cost. Limitations and criticisms of XThe UNIX-HATERS Handbook devoted an entire chapter, "The X-Windows Disaster", to the problems of X in the late 1980s and early 1990s. Why X Is Not Our Ideal Window System (1990) by Gajewska, Manasse and McCormack detailed problems in the protocol with recommendations for improvement.Video hardwareThe performance edge for graphical computing is now in the most advanced graphics functions. Manufacturers typically implement these in proprietary drivers, generally writing for Windows (the largest consumer-market) first. XFree86 and the X.Org Server have reverse-engineered drivers for many older cards. However, as the high performance video market offers "state-of-the-art" products, some vendors regard programming details as trade secrets or as patentable inventions that they do not wish to reveal.Many current implementations of X manipulate the video hardware directly. A misbehaving server can render the display unusable even if the underlying operating system continues to function, possibly requiring a reboot. User interface featuresX deliberately contains no specification as to user interface or most inter-application communication. This has resulted in several vastly different interfaces, and in applications that have not always quite worked together. The ICCCM, a specification for client interoperability, has a reputation as difficult to implement correctly. Further standards efforts such as Motif and CDE did not remedy matters. This has frustrated users and programmers [3] for a long time. Graphics programmers now generally address consistency of application look and feel and communication by coding to a specific desktop environment or to a specific widget toolkit, which also avoids having to deal directly with the ICCCM.The X protocol provides no facilities for handling sound, leaving it to the operating system to provide support for audio hardware and sound playback. As users increasingly expect sound, this has led to various incompatible sound subsystems. Most programmers in the past chose to ignore the network issue and simply use local, OS-specific sound APIs. The first generation of client-server sound systems included rplay and Network Audio System. More recent efforts have produced EsounD (GNOME) and ARts (KDE). Development has started on another system, Media Application Server. NetworkOne cannot currently detach an X client or session from one server and reattach it to another, as with Virtual Network Computing (VNC). Work has started to add this facility to X. Workarounds (VNC :0 viewers) exist to make the current X-server screen available via VNC.Network traffic between an X server and remote X clients has no default encryption. An attacker with a packet sniffer can intercept and read it. Most users address this issue by tunneling X over SSH; most SSH implementations support the tunneling of X applications although it is sometimes disabled by default.
Current versions of Windows and Mac OS X Quartz have internal subsystem separation similar to the client/server divide in X and comparable performance and resource usage to X with KDE or GNOME. Most of the overhead comes from network round-trip delay time between client and server (latency rather than from the protocol itself): the best solutions to performance issues involve paying attention to application design [4]. Common misconceptions exist that X's network features result in excessive complexity if only used locally, and that X's network capabilities cause an undesirable performance hit; modern X implementations use local sockets and shared memory, requiring very little overhead. Competitors to XFor graphics Unix-like systems use X almost universally. Nevertheless, some people have attempted writing alternatives to and replacements for X. Historical alternatives include Sun's NeWS, which failed in the market, and NeXT's Display PostScript, which eventually became Apple's Quartz for Mac OS X.Modern attempts to address criticisms of X by replacing it completely include Berlin/Fresco and the Y Window System. These alternatives have seen negligible take-up, however, and commentators widely doubt the viability of any replacement that does not preserve backwards-compatibility with X. Other competitors attempt to avoid the overhead of X by working directly with the hardware. Such projects include DirectFB and the very small FBUI. The Direct Rendering Infrastructure, which aims to provide a reliable kernel-level interface to the framebuffer, may make these efforts redundant. Other ways to achieve network transparency for graphical services include: * the SVG Terminal, a protocol to update Scalable Vector Graphics (SVG) content in a browser in near-real-time * Virtual Network Computing (VNC), a very low-level system which sends compressed bitmaps across the network; the Unix implementation includes an X server * Citrix MetaFrame, an X-like product for Microsoft Windows * Tarantella, which provides a Java client for use in web browsers * NX technology, a bandwidth-saving protocol for remote display HistoryPredecessorsSeveral bitmap display systems preceded X. From Xerox came the Alto (1973) and the Star (1981). From Apple came the Lisa (1983) and the Macintosh (1984). The Unix world had the Andrew Project (1982) and Rob Pike's Blit terminal (1984).X derives its name as a successor to a pre-1983 window system called W (the letter X directly following W in the Latin alphabet). W Window System ran under the V operating system. W used a network protocol supporting terminal and graphics windows, the server maintaining display lists. Origin and early developmentThe original idea of X emerged at MIT in 1984 as a collaboration between Jim Gettys (of Project Athena) and Bob Scheifler (of the MIT Laboratory for Computer Science). Scheifler needed a usable display environment for debugging the Argus system. Project Athena (a joint project between Digital Equipment Corporation (DEC), MIT and IBM to provide easy access to computing resources for all students) needed a platform-independent graphics system to link together its heterogeneous multiple-vendor systems; the window system then under development in Carnegie Mellon University's Andrew Project did not make licences available, and no alternatives existed.The project solved this by creating a protocol that could both run local applications and call on remote resources. In mid-1983 an initial port of W to Unix ran at one-fifth of its speed under V; in May 1984, Scheifler replaced the synchronous protocol of W with an asynchronous protocol and the display lists with immediate mode graphics to make X version 1. X became the first windowing system environment to offer true hardware-independence and vendor-independence. Scheifler, Gettys and Ron Newman set to work and X progressed rapidly. They released Version 6 in January 1985. DEC, then preparing to release its first Ultrix workstation, judged X the only windowing system likely to become available in time. DEC engineers ported X6 to DEC's QVSS display on MicroVAX. In the second quarter of 1985 X acquired color support to function in the DEC VAXstation-II/GPX, forming what became version 9. Although MIT had licensed X6 to some outside groups for a fee, it decided at this time to license X9 and future versions under what became known as the MIT License. X9 appeared in September 1985. A group at Brown University ported version 9 to the IBM RT/PC, but problems with reading unaligned data on the RT forced an incompatible protocol change, leading to version 10 in late 1985. By 1986, outside organizations had started asking for X. The release of X10R2 took place in January 1986; that of X10R3 in February 1986. X10R3 became the first version to achieve wide deployment, with both DEC and Hewlett-Packard releasing products based on it. Other groups ported X10 to Apollo and to Sun workstations and even to the IBM PC/AT. Demonstrations of the first commercial application for X (a mechanical computer-aided engineering system that ran on VAXes and displayed on PCs running an X server) took place at the Autofact trade show at that time. The last version of X10, X10R4, appeared in December 1986. Although X10 offered interesting and powerful functionality, it had become obvious that the X protocol could use a more hardware-neutral redesign before it became too widely deployed; but MIT alone would not have the resources available for such a complete redesign. As it happened, DEC's Western Software Laboratory found itself between projects. Smokey Wallace of DEC WSL and Jim Gettys proposed that DEC WSL build X11 and make it freely available under the same terms as X9 and X10. This process started in May 1986, with the protocol finalised in August. Alpha-testing of the software started in February 1987, beta-testing in May; the release of X11 finally occurred on September 15, 1987. The X11 protocol design, led by Scheifler, got extensively discussed on open mailing lists on the nascent Internet. X therefore represents one of the first very large-scale free software projects. The MIT X Consortium and the X Consortium, Inc.In 1987, with the success of X11 becoming apparent, MIT wished to relinquish the stewardship of X, but at a June 1987 meeting with nine vendors, the vendors told MIT that they believed in the need for a neutral party to keep X from fragmenting in the marketplace. In January 1988, the MIT X Consortium formed as a non-profit vendor group, with Scheifler as director, to direct the future development of X in a neutral atmosphere inclusive of commercial and educational interests. Jim Fulton joined in January 1988 and Keith Packard in March 1988 as senior developers, with Jim focusing on Xlib, fonts, window managers, and utilities; and Keith re-implementing the server. Donna Converse and Chris Peterson joined later that year, focusing on toolkits and widget sets, working closely with Ralph Swick of MIT Project Athena. The MIT X Consortium produced several significant revisions to X11, the first (Release 2 - X11R2) in February 1988. | |||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||
| Version | Release date | Most important changes |
|---|---|---|
| X1 | June 1984 | First use of the name "X"; fundamental changes distinguishing the product from W. |
| X6 | January 1985 | First version licensed to a handful of outside companies. |
| X9 | September 1985 | Color. First release under MIT License. |
| X10 | late 1985 | IBM RT/PC, AT (running DOS), and others |
| X10R2 | January 1986 | |
| X10R3 | February 1986 | First release outside MIT. uwm made standard window manager. |
| X10R4 | December 1986 | Last version of X10. |
| X11 | September 15, 1987 | First release of the current protocol. |
| X11R2 | February 1988 | First X Consortium release. [34] |
| X11R3 | October 25, 1988 | XDM |
| X11R4 | December 22, 1989 | XDMCP, twm brought in as standard window manager, application improvements, Shape extension, new fonts. |
| X11R5 | September 5, 1991 | PEX, Xcms (color management), font server, X386 |
| X11R6 | May 16, 1994 | ICCCM v2.0; Inter-Client Exchange; X Session Management; X Synchronization extension; X Image extension; XTEST extension; X Input; X Big Requests; XC-MISC; XFree86 changes. |
| X11R6.1 | March 14, 1996 | X Double Buffer extension; X keyboard extension; X Record extension. |
| X11R6.2 X11R6.3 (Broadway) | December 23, 1996 | Web functionality, LBX. Last X Consortium release. X11R6.2 is the tag for a subset of X11R6.3 with the only new features over R6.1 being XPrint and the Xlib implementation of vertical writing and user-defined character support. [35] |
| X11R6.4 | March 31, 1998 | Xinerama. [36] |
| X11R6.5 | Internal X.org release; not made publicly available. | |
| X11R6.5.1 | August 20, 2000 | |
| X11R6.6 | April 4, 2001 | Bug fixes, XFree86 changes. |
| X11R6.7.0 | April 6, 2004 | First X.Org Foundation release, incorporating XFree86 4.4rc2. Full end-user distribution. Removal of XIE, PEX and libxml2. [37] |
| X11R6.8.0 | September 8, 2004 | Window translucency, XDamage, Distributed Multihead X, XFixes, Composite, XEvIE. |
| X11R6.8.1 | September 17, 2004 | Security fix in libxpm. |
| X11R6.8.2 | February 10, 2005 | Bug fixes, driver updates. |
| X11R6.9 X11R7.0 | December 21, 2005 | EXA, major source code refactoring [38]. From the same source-code base, the modular version became 7.0 and the monolithic version 6.9. |
| X11R7.1 | May 22, 2006 | EXA enhancements, Kdrive integrated, AIGLX, OS and platform support enhancements [39]. |
| X11R7.2 | 2006 | Removal of LBX [40] |
| Email this page |
| About Us | Advertise on This Site | User Agreement | Privacy Policy | Kids' Privacy Policy | Help About and About.com are registered trademarks of About, Inc. The About logo is a trademark of About, Inc. All rights reserved. This is the "GNU Free Documentation License" reference article from the English Wikipedia. All text is available under the terms of the GNU Free Documentation License. See also our Disclaimer. |