為 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

添加評論