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

Fanless Skylake embedded PC loads up on PCIe

Teguar’s fanless, Linux-friendly “TB-5045” embedded PC features a 6th Gen Core CPU, up to 32GB DDR4, triple display support, 4x GbE, 6x USB, 4x serial, 2x external SATA bays, 3x mini-PCIe, and optional dual PCIe slots. Charlotte, North Carolina based Teguar Computers, which is new to the pages of LinuxGizmos, makes a variety of medical PCs, touch-panel computers, and other embedded gear, including a line of Waterproof PCs. The new, fanless TB-5045 box PC prefers to be high and dry, but it should fit in well in many rugged industrial environments. It offers 0 to 50°C support and a rugged steel housing with aluminum heatsink that is said to be resistant against shock and vibration. It also features a wide-range 9-36V DC via a 3-wire input. Read more

Flatpak 1.0 Linux Application Sandboxing & Distribution Framework Is Almost Here

While it's becoming very popular among Linux users as it is more and more adopted by Linux OS vendors, Flatpak is still considered an "under development" technology, and so it's not yet promoted on a mass scale as its rival Snap is by Ubuntu's mother company Canonical. However, Flatpak as it is right now, it's very usable, but it is yet to achieve the 1.0 version milestone, which usually marks a project as mature and ready for mass deployment. And it's now more closer than ever as the development team announced today the availability of the first Flatpak 1.0 pre-release version. Read more Also: Flatpak 1.0 Nears With Today's 0.99.1 Release

Ubuntu 16.04 LTS Is Now Certified on Intel's NUC Mini PCs and IoT Boards

Released on April 21, 2016, Ubuntu 16.04 LTS (Xenial Xerus) is a long-term supported release that will receive security and software updates for five years, until April 2021, as well as a total of five point releases ending with Ubuntu 16.04.5 LTS, which is expected to arrive in early August 2018. Ubuntu 16.04 LTS is Canonical's 6th LTS release and the last to use the Unity desktop environment by default. The operating system is compatible with a wide-range of hardware components, including Intel's NUC mini PCs, but now, after a partnership between Intel and Canonical, Ubuntu 16.04 LTS is officially certified for NUC devices. Read more

6 Open Source AI Tools to Know

In open source, no matter how original your own idea seems, it is always wise to see if someone else has already executed the concept. For organizations and individuals interested in leveraging the growing power of artificial intelligence (AI), many of the best tools are not only free and open source, but, in many cases, have already been hardened and tested. At leading companies and non-profit organizations, AI is a huge priority, and many of these companies and organizations are open sourcing valuable tools. Here is a sampling of free, open source AI tools available to anyone. Read more