Network Daemons  «Prev 

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:
  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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
  1. displaying them to the user(display), and
  2. receiving user input (keyboard, mouse) and
  3. 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.