Language Selection

English French German Italian Portuguese Spanish

X Factor - understanding the X window system

Filed under
Software

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 OpenOffice.org 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

Munich Switching to Windows from Linux Is Proof That Microsoft Is Still an Evil Company

Reports about the city of Munich authorities that are considering the replacement of Linux with Microsoft products mostly comes from one man, the Deputy Mayor of Munich, who is also a long-term self-declared Windows fan. Munich is the poster child for the adoption of a Linux distribution and the replacement of the old Windows OS. It provided a powerful incentive for other cities to do the same, and it's been a thorn in Microsoft's side for a very long time. The adoption of open source software in Munich started back in 2004 and it took the local authorities over 10 years to finish the process. It's a big infrastructure, but in the end they managed to do it. As you can imagine, Microsoft was not happy about it. Even the CEO of Microsoft, Steve Ballmer, tried to stop the switch to Linux, but he was too late to the party. Read more

Dangling the Linux Carrot

Sometimes the direct sell method isn’t the best way to close the deal. How do you think the whole “play hard to get” thing got traction throughout the years? That method is successful in any number of applications. And really, I wasn’t wearing my Linux Advocacy hat that evening…I was just a guy relaxing after a day’s work. Read more

Red Hat Sets New 12-Month High at $61.97 (RHT)

They now have a $70.00 price target on the stock, up previously from $57.00. Three equities research analysts have rated the stock with a hold rating and eighteen have issued a buy rating to the company’s stock. Red Hat has an average rating of “Buy” and an average price target of $63.50. Read more

Systemd 216 Piles On More Features, Aims For New User-Space VT

Lennart Poettering announced the systemd 216 release on Tuesday and among its changes is a more complete systemd-resolved that has nearly complete caching DNS and LLMNR stub resolver, a new systemd terminal library, and a number of new commands. The systemd 216 release also has improvements to various systemd sub-commands, an nss-mymachines NSS module was added, a new networkctl client tool, KDBUS updates against Linux 3.17's memfd, networkd improvements, a new systemd-terminal library for implementing full TTY stream parsing and rendering, a new systemd-journal-upload utility, an LZ4 compressor for journald, a new systemd-escape tool, a new systemd-firstboot component, and much more. Read more