Warstwa kompatybilności Xlib/X11 proponowana dla Haiku OS

Twórcy otwartego systemu operacyjnego Haiku, będącego kontynuacją rozwoju pomysłów BeOS, przygotowali wstępną implementację warstwy zapewniającej kompatybilność z biblioteką Xlib, pozwalającą na uruchamianie aplikacji X11 w Haiku bez użycia serwera X. Warstwa jest implementowana poprzez emulację funkcji Xlib poprzez tłumaczenie wywołań do wysokopoziomowego API graficznego Haiku.

W swojej obecnej formie warstwa udostępnia większość powszechnie używanych interfejsów API Xlib, ale niektóre wywołania pozostają zastąpione kodami pośredniczącymi. Warstwa umożliwia kompilowanie i uruchamianie aplikacji w oparciu o bibliotekę GTK, jednakże jakość rozmieszczenia elementów w oknach wymaga jeszcze poprawy. Przetwarzanie danych wejściowych za pomocą klawiatury i kliknięć myszą nie zostało jeszcze doprowadzone do działającej formy (dodano jedynie przetwarzanie zdarzenia ruchu myszy).

Obsługa biblioteki Qt w Haiku została wcześniej zaimplementowana poprzez utworzenie natywnego portu Qt, który działa na interfejsie API Haiku. Jednak w przypadku obsługi GTK użycie emulacji X11 jest postrzegane jako lepsza opcja, ponieważ elementy wewnętrzne GTK nie są tak dobrze abstrakcyjne, a utworzenie osobnego backendu GTK dla Haiku wymagałoby znacznych zasobów. Jako rozwiązanie rozważano możliwość stworzenia portu serwera X11 dla Haiku, jednak takie podejście uznano za nieodpowiednie w warunkach, w których można by zaimplementować API X11 bezpośrednio na API Haiku. Wybrano X11 jako protokół od dawna stabilizowany i niezmienny, choć eksperymenty z Waylandem wciąż trwają, wymagane jest stworzenie własnej implementacji serwera, a nie wszystkie niezbędne rozszerzenia protokołu zostały ostatecznie zatwierdzone.

Warstwa kompatybilności Xlib/X11 proponowana dla Haiku OS

Podczas uruchamiania prostszych aplikacji na Tcl/Tk i wxWidgets przez warstwę, zauważane są również problemy, które nie zostały jeszcze rozwiązane, ale ich wygląd jest już bliższy normalnemu:

Warstwa kompatybilności Xlib/X11 proponowana dla Haiku OS
Warstwa kompatybilności Xlib/X11 proponowana dla Haiku OS
Warstwa kompatybilności Xlib/X11 proponowana dla Haiku OS

Przypomnijmy, że projekt Haiku powstał w 2001 roku w reakcji na zahamowanie rozwoju BeOS OS i rozwijał się pod nazwą OpenBeOS, jednak w 2004 roku zmieniono jego nazwę w związku z roszczeniami związanymi z używaniem w nazwie znaku towarowego BeOS. System jest bezpośrednio oparty na technologiach BeOS 5 i ma na celu binarną kompatybilność z aplikacjami dla tego systemu operacyjnego. Kod źródłowy większości systemu operacyjnego Haiku jest rozpowszechniany na bezpłatnej licencji MIT, z wyjątkiem niektórych bibliotek, kodeków multimedialnych i komponentów zapożyczonych z innych projektów.

System przeznaczony jest dla komputerów osobistych i wykorzystuje własne jądro, zbudowane w oparciu o architekturę hybrydową, zoptymalizowane pod kątem wysokiej responsywności na działania użytkownika i wydajnej realizacji aplikacji wielowątkowych. OpenBFS jest używany jako system plików, który obsługuje rozszerzone atrybuty plików, logowanie, wskaźniki 64-bitowe, obsługę przechowywania metatagów (dla każdego pliku atrybuty można przechowywać w postaci klucz=wartość, co upodabnia system plików do baza danych) oraz specjalne indeksy przyspieszające ich wyszukiwanie. „Drzewa B+” służą do organizowania struktury katalogów. Z kodu BeOS Haiku zawiera menedżera plików Tracker i Deskbar, oba były open source po zaprzestaniu rozwoju BeOS.

Źródło: opennet.ru

Dodaj komentarz