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

Funding for Open 'Core' Companies

'Proper' GNU/Linux on Google OSes

  • Google’s Fuchsia OS will support Linux apps
    Google’s non-Linux-based Fuchsia OS has added an emulator for running Debian Linux apps. Like its upcoming Linux emulator for Chrome OS, Fuchsia’s “Guest” app will offer tighter integration than typical emulators. Google has added a Guest app to its emergent and currently open source Fuchsia OS to enable Linux apps to run within Fuchsia as a virtual machine (VM). The Guest app makes use of a library called Machina that permits closer integration with the OS than is available with typical emulators, according to a recent 9to5Google story.
  • Here are the latest Chrome OS devices that will support Linux apps
    The ability to run Linux apps in virtual machines in Chrome is expanding beyond Google's flagship Pixelbook line of Chromebooks. The feature, for which plans were first discovered in late February, was formally announced by Google at I/O 2018. Unlike the existing solution, Crouton, support for Linux apps does not require enabling developer mode on Chrome OS, allowing users to install Linux apps without needing to sacrifice security protections. In addition to the Pixelbook, support for the new Crostini virtual machine feature has also come to the original Samsung Chromebook Plus, the detachable HP Chromebook X2, and the ASUS Chromebook Flip C101. Likewise, according to a report from xda-developers, the feature is coming to the Acer Chromebook Spin 13 and Chromebook 13, as well as 2018-era Chromeboxes, which all share the same board ID "fizz." Of these, the Acer Chromebox CX13 series and ASUS Chromebox 3 series both have multiple SKUs, maxing out with an Intel Core i7-8550U paired with 16GB RAM and 64GB storage for $750.
  • Linux App Support Is Coming To Acer Chromebook Flip C101
    Acer’s Chromebook Flip C101 is now officially the latest Chrome OS device expected to be in-line for virtualized Linux app support, following a new commit pushed to the Chromium Gerrit on June 15. That places the Flip C101 in a very select club alongside Google’s Pixelbook, the HP Chromebook x2, and the first generation Samsung Chromebook Plus. Of course, there’s no official date with regard to when Linux App support will arrive for the Chromebook Flip C101. If previous trends are followed, then it shouldn’t take too long at all for its official arrival in the Canary Channel of the OS. That comes following a commit indicating that support for the new feature has been moved from the Samsung Chromebook Plus to the devices’ shared parent board. Since only the Chromebook Plus and Chromebook Flip C101 share that board, dubbed “Gru,” that suggests that both devices will support Linux apps in a virtual environment.

Linux Foundation: New Study, Automotive Grade Linux (AGL), and Hyperledger Fabric

Graphics: AMDGPU, Nvidia, Apple's Harm to Science

  • AMDGPU DRM Driver To Finally Expose GPU Load Via Sysfs
    The AMDGPU DRM driver appears to finally be crossing the milestone of exposing the current GPU load (as a percentage) in a manner that can be easily queried via sysfs. For years I've been frustrated via the lack of standardization of sysfs/debugfs files among the DRM drivers and some seemingly basic information not being exposed in such a manner that easily benefits various desktop plug-ins, those wanting to script basic monitors/checks/etc around such outputs, and use-cases like with the Phoronix Test Suite for easily querying this information too for its sensor recording. One of the frustrations with the Radeon Linux stack has been that there wasn't a trivial way to read the GPU load usage as a percentage... There's been ways if installing third-party utilities like RadeonTool, but no universal solution nor one that doesn't require root and would be widely available.
  • Radeon Software 18.20 Stable Released With Official Ubuntu 18.04 LTS Support
    The Radeon Software "AMDGPU-PRO" 18.20 hybrid driver stack is now available with official support for Ubuntu 18.04 LTS and Red Hat Enterprise Linux 17.20. Two months after the debut of the Ubuntu 18.04 LTS "Bionic Beaver" release, the Q2'2018 Radeon Sotware for Linux driver update has arrived with support for this latest long-term support release. Radeon Software 18.20 was officially released last week but seemingly went under everyone's radar until now.
  • Nvidia Releases a Batch of Open Source Tools for AI
    Graphics processors increasingly used as hardware accelerators for deep learning applications are also being deployed with the Kubernetes cluster orchestrator as another way to accelerate the scaling of training and inference for deep learning models. The two-front approach includes Nvidia’s (NASDAQ: NVDA) release to developers this week of a Kubernetes on GPU capability aimed at enterprises training models on multi-cloud GPU clusters. Previously, Google (NASDAQ: GOOGL) launched a beta version of GPUs on its Kubernetes Engine aimed at accelerating machine learning and image processing workloads.
  • AI caramba! Nvidia devs get a host of new kit to build smart systems
    Nvidia has released a bunch of new tools for savvy AI developers in time for the Computer Vision and Pattern Recognition conference in Salt Lake City on Tuesday.
  • Chemists criticise mooted shutdown of 3D visualisation tools
    End of support for Apple’s OpenGL programming interface could pull the plug on molecular modelling software Researchers are voicing concerns over a move that may affect many 3D visualisation programs that are commonly used in computational research. Apple’s Macintosh operating systems (macOS) is set to end support for OpenGL, the programming interface frequently used to display 3D graphics in medical and scientific visualisation software, which has existed since 1992. Nearly all open source and commercial chemistry visualisation programs that are used to display atoms, molecules, bonds and protein ribbons – such as Mercury, VMD and PyMOL – use the system.