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

Ubuntu and elementary

  • System76 wants to build its own hardware for its Linux-based computers
    System76 is building up quite a name for itself, being one of a very limited number of companies selling only computers running Linux-based operating systems. Now the aim is to branch out; System76 wants to design and build its own hardware, while representing the open source community as it does so. At the moment, the hardware used in System76 systems is outsourced, but in the future this will change. The company says that it is moving into phase three of its development cycle, and this "moves product design and manufacturing in house." And you should set your expectations high: "We're about to build the Model S of computers. Something so brilliant and beautiful that reviewers will have to add an 11 to their scores."
  • AppCenter Spotlight: Beta Testers
    Over the past month we’ve been beta testing the new AppCenter with a number of developers, from elementary OS contributors to backers of our Indiegogo campaign. After testing out the submission process and getting some apps into the store (and seeing rapid updates!), I wanted to take a moment to highlight some of the first apps.
  • elementary OS to get improved AppCenter, showing off a few new applications
    I have to hand it to the elementary OS guys, they have a massive focus on design and it does look quite incredible. It is easily one of the best looking Linux distributions, which I do admire. Their new AppCenter, for example, looks extremely clean and clear.

Beijing Zoo is No Place for Pandas

Pandas in Beijing Zoo
Photo credit: Nick Hopkins

I am a Panda lover. I work as a support engineer in an I.T company here in the United Kingdom. Most of my spare time is spent watching different Panda videos -- both old and new videos. Basically, it is my therapy; a 'stress release' for me. I find them to be adorable and precious creatures. As a matter of fact, I would like to volunteer to come to Sichuan. I want to experience and feel what it's like to be a Panda keeper, to be able to interact with them for real. The Panda is China's National Treasure, so it's a shame to watch the Panda videos from Beijing zoo, as the place is disgusting and not ideal for Pandas to live in (and for sure for all the rest of the animals who unfortunately got stuck in this prison cell).

The place looks like a ghost town. Lifeless and languished. Knowing that Pandas wear a thick fur on their body, can you imagine what it feels for them in 30C or 35C (summer temperature)? What it probably feels like all the time? Come on, if you really care, you must do something now, otherwise these Pandas will die. Please bring them back to their sanctuary where they really belong.

Linux 4.11 File-System Tests: EXT4, F2FS, XFS & Btrfs

With the Linux 4.11 kernel potentially being released as soon as today, here are some fresh benchmarks of Btrfs / EXT4 / F2FS / XFS on a solid-state drive and comparing the performance of 4.11 Git back to Linux 4.9 and 4.10. For those wondering if the block/file-system changes of Linux 4.11 have any impact on EXT4/F2FS/XFS/Btrfs for common I/O workloads or how these file-systems are comparing on this latest kernel, here are some benchmarks. Read more

Today in Techrights