Xlib/X11 compatibility layer proposed for Haiku OS

The developers of the open operating system Haiku, which continues the development of BeOS ideas, have prepared an initial implementation of the interlayer for ensuring compatibility with the Xlib library, which allows you to run X11 applications in Haiku without using an X server. The layer is implemented by emulating Xlib functions by translating calls to Haiku's high-level graphics API.

In its current form, the layer provides most of the commonly used Xlib APIs, but some calls remain stubbed for now. The layer allows you to compile and run applications based on the GTK library, but the quality of the layout of elements in windows still needs to be improved. Processing input using the keyboard and mouse clicks has not yet been brought to a working form (only mouse movement event processing has been added).

Support for the Qt library in Haiku was previously implemented by creating a native port of Qt that runs on top of the Haiku API. But for GTK support, using X11 emulation is seen as the preferred option, as the internals of GTK are not as well abstracted and creating a separate GTK backend for Haiku would require significant resources. As a way out, the possibility of creating a port of the X11 server for Haiku was considered, but this approach was considered inappropriate in conditions where the X11 API can be implemented directly on top of the Haiku API. X11 is chosen as a long-term stable and unchanged protocol, while experiments with Wayland are still ongoing, it is required to create our own server implementation, and not all necessary protocol extensions have been finally approved.

Xlib/X11 compatibility layer proposed for Haiku OS

When running through a layer of simpler applications on Tcl / Tk and wxWidgets, problems are also noted that have not yet been resolved, but the appearance is already closer to normal:

Xlib/X11 compatibility layer proposed for Haiku OS
Xlib/X11 compatibility layer proposed for Haiku OS
Xlib/X11 compatibility layer proposed for Haiku OS

Recall that the Haiku project was created in 2001 as a reaction to the curtailment of the development of the BeOS OS and developed under the name OpenBeOS, but was renamed in 2004 due to claims related to the use of the BeOS trademark in the name. The system is directly based on BeOS 5 technologies and is aimed at binary compatibility with applications for this OS. The source code for most of the Haiku OS is distributed under the free MIT license, with the exception of some libraries, media codecs, and components borrowed from other projects.

The system is focused on personal computers, uses its own kernel, built on the basis of a hybrid architecture, optimized for high responsiveness to user actions and efficient execution of multi-threaded applications. OpenBFS is used as a file system, which supports extended file attributes, journaling, 64-bit pointers, support for storing meta tags (for each file, you can store attributes in the form key=value, which makes the file system look like a database) and special indexes to speed up retrieval by them. B+ trees are used to organize the directory structure. From the BeOS code, Haiku includes the Tracker file manager and the Deskbar, which have been open-sourced since BeOS was discontinued.

Source: opennet.ru

Add a comment