Language Selection

English French German Italian Portuguese Spanish

X Factor - understanding the X window system

Filed under

X was originally created in the mid-80s by a research group from MIT. Its goal was to create a windowing system quite unlike any that had been conceived before. Thus X's design differs greatly from that of other windowing systems, having designed-in support for many elements which are unique ­ features which in fact are nowadays often being hacked into other windowing systems.

More often than not, such attempts are kludgy and don't work well, because they lack the ground-up desig X offers.

X went through a number of iterations because the original releases were not under a copyleft license. Every Unix developer created his own version, usually only modifying small parts, resulting in divergence into many incompatible versions, most of which fell under proprietary licences.

As a result, a standards body was eventually created to oversee the development of X. This body, known as the X Consortium, includes amongt its members IBM, Hewlett Packard and even Microsoft.

The X server has two important functions. Firstly, it speaks to the hardware; this means the X server needs to contain the driver for your graphics card, mouse, keyboard etc. Secondly, it speaks to X clients (every X program, from xterm to is an X client). Thus no X client ever talks directly to the hardware.

The most common channel is Unix Domain Sockets (UDS, a very fast mechanism for interprocess communication on Unix) which provides the highest speeds for local usage (for example where the X server and X clients are on the same machine). However it can also run over several network protocols, such as TCP/IP, allowing you to use your local X server to run a program on a distant machine over the Internet.

Luckily, working directly with the X protocol is seldom needed because X also provides xlib. Xlib is essentially a library of standard X tasks, such as basic drawing primitives and event handling. Xlib is written in C (with wrappers to many languages) and it in turn speaks to the X protocol for you. Xlib takes care of the low-level detail part of using the X protocol, such as establishing a connection over the appropriate channel and talking to the server.

Today the two most important widget sets in the Linux world are GTK and QT respectively. Their importance is greatly enhanced by the fact that these are the two toolkits on which the Gnome and KDE desktops are respectively built. Many other widget sets exist, and although none are as feature-rich as GTK or QT, they are still often used.

The two most important desktop environments today are of course KDE and Gnome, as most new Linux applications are built for one or the other. Currently KDE and Gnome basically match each other for features and which one a user prefers tend to be a matter of taste rather than a technical decision. Almost all Linux users use one of these two. Old-time Unix users and programmers often shun them however, preferring minimalist desktops.

Full Article.

More in Tux Machines

elementary OS "Freya" Finally Gets Custom Keyboard Shortcuts

elementary OS "Freya" has been out for some time now, but developers are still adding features to it despite the fact that it has been dubbed stable. Now, users have the option to define custom keyboard shortcuts, which was a very sought after feature. Read more

A Linux proud history – 15 years ago and the Brazilian ATM

The history i want to share with you is how that “marble Tux” happens. Yes, it was a production machine that you see in the picture and was running in every place in Brazil for at least 10 years. So, a 25 years old boy, in this case me, the guy typing now, who was working in a ILOG graphical toolkit partner suddenly decide to look for Linux jobs, it was out of university for 1 year, but was already infected for the open source and Linux for more than 3 years, and thought it can be done. Read more

OPNFV Project Gets Backing from EMC & VMware

The open source platform for Network Functions Virtualization (NFV), OPNFV Project, has received major backing from EMC and VMware. EMC joins as a Platinum member, along with others such as AT&T, Brocade, China Mobile, Cisco, Dell, Ericsson, HP, Huawei, IBM, Intel, Juniper Networks, NEC, Nokia Networks, DOCOMO, Red Hat, Telecom Italia, Vodafone and ZTE. VMware joins as a Silver member. Read more

Leftovers: GNOME Software

  • Let’s contribute Peru with GNOME
    After that Cesar Fabian started the code contribution part, because all of them were interested in GNOME developer technologies. We started with glib, based on the GLIB Website. He explained us that Glib is a GNOME library written in C. We did a couple of examples: Hello Word and Lists of Fruits, using glist. Glists are linked lists that use the type void *. It was also explained values and basic types like gboleean where ONE represents TRUE and the rest of values are FALSE .
  • GNOME 3.18 to Drop Support for Yahoo!, Foursquare Will be Enabled by Default
    Debarshi Ray, a renown GNOME developer, announced the immediate availability for download and testing of a new development release of the GNOME Online Accounts component of the upcoming GNOME 3.18 desktop environment.
  • GNOME Disk Utility 3.17.2 Fixes Benchmarking of Disks on 32-Bit Architectures
    The GNOME Project is hard at work these days preparing for the release of the second milestone of the upcoming GNOME 3.18 desktop environment, due for release later this year on September 23.