X Graphical Display
Historical Development of the X Graphical Display
The X Graphical Display, more commonly known as the X Window System or simply X11, is a windowing system that provides a graphical user interface (GUI) for Unix and Unix-like operating systems. Developed initially in the mid-1980s at the Massachusetts Institute of Technology (MIT), X11 has since become the standard graphical interface for Unix-based systems. Here's a brief historical overview of the development of the X Window System:
- Predecessors: Prior to the development of the X Window System, there were a few earlier attempts to create graphical interfaces for Unix systems, such as the W Window System and the SunView system by Sun Microsystems. However, these systems had limitations, and there was a need for a more flexible, network-transparent, and hardware-independent windowing system.
- Initial development: In 1984, Robert Scheifler and Jim Gettys at MIT's Laboratory for Computer Science started working on a new windowing system called the X Window System. The goal was to create a system that could work across different types of hardware and support network transparency, allowing graphical applications to run on remote machines while displaying their output on a local screen.
- X Protocol: The X Window System uses a client-server model where the X server handles the display and input devices, while the X clients are the individual applications that request graphical services from the server. The communication between the X server and the clients is managed using the X Protocol, which was designed to be efficient, extensible, and network-transparent.
- Release of X11: In September 1987, the 11th version of the X Window System, known as X11, was released. X11 introduced numerous improvements and features over its predecessors, including a more efficient protocol, support for colormaps, better internationalization, and improved font handling. X11 became widely adopted in the Unix community and remains the most popular version of the X Window System.
- X.Org Foundation: Over the years, the development and maintenance of the X Window System passed through various organizations, including the X Consortium, the Open Group, and the XFree86 Project. In 2004, the X.Org Foundation was established to oversee the development and standardization of the X Window System and related projects, such as the X.Org Server and the Mesa 3D graphics library.
- Modern developments: In recent years, alternative windowing systems like Wayland and Mir have emerged, aiming to address some of the limitations and complexities of the X Window System. However, X11 continues to be widely used and actively maintained, thanks to its extensive compatibility, network transparency, and mature ecosystem.
In summary, the X Window System was initially developed at MIT in the mid-1980s to provide a flexible, network-transparent, and hardware-independent graphical interface for Unix systems. Since then, it has evolved through numerous versions and organizations, becoming the standard graphical interface for Unix-based systems and laying the foundation for modern Linux desktop environments.
X protocol
The X protocol is used for the sharing of graphical display resources across a network and the majority of UNIX systems use X for their graphical user interface.
The X protocol allows a process to run on one machine and open a window for graphical output on another machine. In the X protocol, an X server usually corresponds to a display, and an X client is a program that shows data on that display. The X server is typically called X, and a sample X client is xterm, which opens a terminal window. X clients usually use port numbers starting at 6000 to make connections with X servers.
Xlib
Most client programs communicate with the server via the Xlib client library. Beside Xlib, the XCB library operates more closely to X protocol. In particular, most clients use libraries such as Xaw, Motif, GTK+, or Qt which in turn use Xlib for interacting with the server.
X uses Client-Server Model
X uses a client-server model. Furthermore, the X server program runs on a computer with a graphical display and communicates with various client programs. The X server acts as a middle man for the user and the client programs, accepting requests on TCP port 6000 for graphical output (windows) from the client programs and
- displaying them to the user(display), and
- receiving user input (keyboard, mouse) and
- transmitting it to the client programs.
In X, the server runs on the computer of a user, while the clients may run on remote machines.
This terminology reverses the common notion of client-server systems, where the client normally runs on the local computer of the user and the server runs on the remote computer. This reversal often confuses new X users since the X Window terminology takes the perspective that the X Window program is at the centre of all activity.
For example, the X Window program accepts and responds to requests from applications, and from the user's mouse and keyboard input.
Therefore, applications (on remote computers) are viewed as clients of the X Window server program. The communication protocol between server and client runs network-transparently: the client and server may run on the same machine or on different ones, possibly with different architectures and operating systems.
A client and server can communicate securely over the Internet by tunneling the connection over an encrypted connection.