X Window System
The X Window System is a windowing system, that is common on Unix-like operating systems.X window system is also known as X11(11 versions since September 1987) or simply X. This was developed at the Project Athena at MIT(Massachusetts Institute of Technology) with support of DEC(Digital Equipment Corporation)int 1984. Like many GUI(Graphical User Interfaces) The X window system also gives a rectangular windows for applications. These windows can be resized, moved and Controlled by a mouse. X Window system supports multiple fonts, keyboards, pointing devices such trackballs. Windows can overlap one another and in a one particular X session you can have multiple windows opened for different tasks. X window System does not have an official order for displaying user interface, it is handled by sub programs under X Window System.
On many Unix computers x user applications are in the /usr/bin/x11 directory, but in Solaris, they are in /usr/openwin/bin, while in most Linux distributions, they are in /usr/bin. . Currently the X.org foundation leads X.org project which provides an opensource development of the X Window System and this development work is being done in conjunction with the freedesktop.org community.
Purpose of X Window System
X provides the basic framework, for building such GUI environment (drawing & moving windows on the display and interacting with a mouse and keyboard). X does not command user interface, individual client programs handle this. The x server is typically the provider of graphics resources and keyboard/mouse events to x clients, meaning that the x server is usually running on the computer In front of a human user, while x client applications run anywhere on the network and communicate with the user’s computer to request the rendering of graphics content and receive events from input devices. X delivers a standard toolkit and protocols for building GUI on most Unix-like operating systems and OpenVMS.
The client/server model in x system works in reverse to typical client/server model. In normal client/server model client runs on the local machine and ask for services from the server. But in x system, the server runs on the local machine and provides its display and services to the client programs. The client programs may be local or remotely exist over different networks. X used in networks of inter connected mainframes, mini computers, workstations and x terminals.
History of X Window System
Bob Scheifler (of the MIR laboratory for computer science) needed a usable display environment for debugging the Argus system. Project Athena needed a platform-independent graphics system to link together its various multiple-vendor systems because the window system then under development in Carnegie Mellon University’s Andre project did not make licenses available, and no alternatives existed.
X1 – The project solved this by creating a protocol that could both run local applications and call on remote resources. 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 h/w independence and vendor independence.
X6 – Scheifler, Gettys and Ron Newman released version 6 in January 1985. DEC, then preparing to release its first Ultrix workstation, judged x is the only windowing system likely to become available in time.
X9 – In the second quarter of 1985, X acquired color support to function in the DEC VAXstation-11/GPX, forming what became version 9.
X10 – A group at brown university ported version 9 to the IBM RTPC, 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 begun asking for X. X10R2 was released in January 1986, then X10R3 in February 1986. Although MIT had licensed X6 to some outside groups for a fee. It decided at this time to license X10R3 and future versions under what become known as MIT license.
X11 – X11 finally occurred on 15 September 1987.
X Server & X Client
The job of the x server is to take inputs from input devices (keyboard, mouse or any other) and depending on the currently running x client, it send this data to the kernel for further processing (whatever the task that is done by the currently running x client gets done here).Then the output is given to the x server again and now the x server displays it on the screen.
Any application that needs a Graphical user interface and is compatible to interact with the x servers is called an x client. In other words x client is an application program that displays on a x server but which is otherwise independent of that sever. Mozilla Firefox, X term are some of examples of x clients. The terminal that we use in Ubuntu is also an X client.
X Display Manager
A brief history – X11 release 3 introduced display manager in October 1988 with the aim of supporting the standalone x terminals. X11R4 introduced the X display manager control protocol (XDMCP) to fix problems in the X11R3 implementation.
Display manager is basically a Desktop environment. It is a stage on which all applications of your machine are placed. Windows manager, file explores, dock work together with desktop environment to give user a uniform user experience. There are many different desktop environments. (GNOME, Xfce, mate, cinnamon, enlightenment and etc.) you can always have more than one desktop environment. You can switch between desktop environments (the kernel, the destro, the file system they won’t changes when switching from one desktop environment to another ).
And also x display manger is a graphical login manager which starts a login session on a X server. A display manager controls login screen. A session that starts when a user enters a valid combination of username & password.
When the display manager runs on the user’s computer, it starts the x server before presenting user the login screen, optionally repeating when user logs out.
So mainly x display manager handles 3 things.
1. Loads the x server before presenting user the login screen.
2. Manage the login session
3. Manage the desktop environment
X Window Manager
X Window manager runs top of the x window system, a windowing system mainly used in Unix-like operating systems. X window system kept separated from the software that providing the graphical display (X display manager). There are lots of window managers out there. These window managers vary from one another in several ways.
- Customizability of appearance and functionality [textual menus, docks, multiple desktops and virtual desktops(desktops larger than physical monitor size) and pagers to switch between them]
- Consumption of memory and other computer resources.
- Degree of integration with a desktop environment (which provides more complete interface and range of utilities and applications)
Role of an x window system
Whenever an attempt to show a new window, this request goes to window manager, which decide the initial position of the window. When the user clicks or drags the window, x window system will take necessary actions. X window system must provide a title bar with close, minimize and maximize/restore buttons to each and every window frame.
Window manager also responsible for icons. When the user request a window to be iconified, the window manager makes it invisible and takes the appropriate actions to show an icon in its place.
Types of window managers
Mainly there are 2.
- Stacking window manager – renders the windows one by one on to the screen and if one window overlaps another then the window on the top overwrites part of the area what is underneath it. (Like working with papers on a desk. When I paper overlap another you can’t write on the area that is overlapped by the upper paper. Simple as that) E.g. blackbox, Fluxbox, Enlightenment, openbox and window maker
- Tiling window manager – this is a type of window manager that windows cant overlap each other. E.g. dwm, awesome, ion and ratpoison
Other types of window managers – Compositing window managers, Virtual window managers, Window managers that are extensible.
Tech support issues -The desktop world doesn’t ruled by Linux-like operating systems. So If you got a trouble in your machine that runs a Linux-like operating system tech guys at most of computer shops may not be able to help you. Because most of them know about windows operating system.
User interface issues – the lack of design guidelines in x window system has resulted in several different interfaces, and in applications that have not always worked well together. The Inter-Client Communication Conversions Manual (ICCCM) a specification for client interoperability has a reputation for being difficult to implement correctly.
Computer accessibility related issues – system built upon x may have accessibility issues that make utilization of computer difficult for disabled users, including right click, double click, middle click and focus stealing. Some X11 clients deal with accessibility problems better than others, so people with accessibility issues are not locked out of using X11. However there are no accessibility standard or accessibility guidelines for X11.
Network based issues – An x client cannot generally be detached from one server and reattached to another unless its code specifically provides for it. So moving an entire session from one X server to another is generally not possible. Network traffic between x server and remote x clients is not encrypted by default. An attacker can easily intercept it making it possible to view anything displayed to or sent from user’s screen. The most common way to encrypt x traffic is to establish a secure shell tunnel for communication. Bandwidth limitations of X across a network may disturb the use of bitmap-intensive applications that require rapidly updating large portions of the screen with low latency, such as 3D animations or photo editing.
- What is the X Window System? (Indiana University, 18 January 2018)
- X.org Foundation (X.org foundation, 11 November 2019)
- X Server-Client (Akash Malik, 20 September 2017)
- X Window System (techopedia, 15 June 2017)
This article "X Window System" is from Wikipedia. The list of its authors can be seen in its historical and/or the page Edithistory:X Window System. Articles copied from Draft Namespace on Wikipedia could be seen on the Draft Namespace of Wikipedia and not main one.