为 Haiku OS 提供 Xlib/X11 兼容层

开放操作系统 Haiku 的开发人员延续了 BeOS 的开发理念,准备了该层的初始实现,以确保与 Xlib 库的兼容性,允许您在 Haiku 中运行 X11 应用程序而无需使用 X 服务器。 该层是通过将调用转换为高级 Haiku 图形 API 来模拟 Xlib 函数来实现的。

在目前的形式中,该层提供了大多数常用的 Xlib API,但一些调用仍然被存根所取代。 该层允许您编译和运行基于GTK库的应用程序,但Windows中元素布局的质量仍然需要改进。 使用键盘和鼠标单击处理输入尚未进入工作表单(仅添加了鼠标移动事件的处理)。

Haiku 中对 Qt 库的支持以前是通过创建在 Haiku API 之上运行的本机 Qt 端口来实现的。 但对于 GTK 支持,使用 X11 仿真被认为是更好的选择,因为 GTK 内部没有很好地抽象,并且为 Haiku 创建单独的 GTK 后端将需要大量资源。 作为一种解决方案,考虑了为 Haiku 创建 X11 服务器端口的可能性,但在 X11 API 可以直接在 Haiku API 之上实现的情况下,这种方法被认为是不合适的。 X11 被选为长期稳定且不变的协议,而 Wayland 的实验仍在进行中,需要创建您自己的服务器实现,并且并非所有必要的协议扩展都已最终获得批准。

为 Haiku OS 提供 Xlib/X11 兼容层

当通过该层在 Tcl/Tk 和 wxWidgets 上运行更简单的应用程序时,还注意到尚未解决的问题,但外观已经更接近正常:

为 Haiku OS 提供 Xlib/X11 兼容层
为 Haiku OS 提供 Xlib/X11 兼容层
为 Haiku OS 提供 Xlib/X11 兼容层

让我们回想一下,Haiku 项目于 2001 年创建,作为对 BeOS 操作系统开发缩减的反应,并以 OpenBeOS 的名称进行开发,但由于与名称中使用 BeOS 商标相关的索赔而于 2004 年更名。 该系统直接基于 BeOS 5 技术,旨在与该操作系统的应用程序实现二进制兼容性。 大多数 Haiku OS 的源代码都是在免费的 MIT 许可证下分发的,但从其他项目借用的一些库、媒体编解码器和组件除外。

该系统针对个人计算机,使用自己的内核,该内核构建在混合架构上,针对用户操作的高响应性和多线程应用程序的高效执行进行了优化。 OpenBFS用作文件系统,支持扩展文件属性、日志记录、64位指针、支持存储元标记(对于每个文件可以以key=value的形式保存属性,这使得文件系统类似于数据库)和特殊索引来加速它们的检索。 “B+树”用于组织目录结构。 从 BeOS 代码来看,Haiku 包括 Tracker 文件管理器和 Deskbar,这两者在 BeOS 停止开发后都是开源的。

来源: opennet.ru

添加评论