The Phoenix project is developing a modern X server written in Zig.

As part of the Phoenix project, an attempt has been made to create a new X server from scratch, which does not use the developments of the X.org Server and aims to provide a modern alternative that expands the X11 protocol while ensuring compatibility with Wayland. At the current stage of development, Phoenix is not yet ready for everyday use, but it already allows for the operation of simple applications that use GLX, EGL, or Vulkan for graphics output, running Phoenix over an existing X server. The code is written in Zig and is distributed under the GPLv3 license.

Phoenix does not intend to implement all the functionality of the X11 protocol available in the X.org Server or support outdated hardware. For example, instead of full support for X11 protocol elements for font handling, they plan to add only the basic operations needed in real applications. Rather than supporting classic X.Org graphics drivers, Linux DRM (Direct Rendering Manager) and Mesa GBM (Generic Buffer Management) are used for graphics output.

It is expected that the reduction in functionality will not affect the ability to run commonly used applications, even those using GTK2. This approach will significantly simplify implementation while maintaining compatibility with programs released over the last 20 years, as well as ensuring operation on hardware no older than 15-20 years.

At the same time, the X11 protocol is expected to include new extensions that account for modern trends, such as HDR support, correct handling of multi-monitor configurations (separate framebuffers for each monitor), the ability to specify DPI in relation to monitors, adaptive refresh rate adjustment (VRR), and protection against tearing during output. Phoenix has also changed its behavior when processing strings — by default, UTF-8 is used, and ISO Latin-1 is applied only when explicitly specified.

To enhance application security in Phoenix, instances are isolated from each other by default and can only interact and access foreign windows or input events after explicit authorization through a special dialog or granting permissions at startup. To maintain compatibility with older X11 clients, instead of generating errors when proper permissions are lacking, empty data will be passed. Global key combinations will work only while the modifier key is held or separate permissions are granted.

For launching applications that support only Wayland, plans are underway to implement built-in support for this protocol or utilize external layers like 12to11.

Source: opennet.ru

Buy reliable website hosting with DDoS protection, VPS VDS servers 🔥 Buy reliable website hosting with DDoS protection, VPS VDS servers | ProHoster