From affdf22d0ee1802f8e538032a8729de41aa337af Mon Sep 17 00:00:00 2001
From: xf0r3m
+ JeÅli kiedyÅ przyjdzie nam korzystaÄ z dystrybucji Linuksa poza, + serwera, systemami wbudowanymi oraz innymi rozwiÄ zaniami, w których + do interakcji z systemem wykorzystujemy wyÅÄ cznie powÅokÄ, spotkamy + siÄ z interfejsem graficznym użytkownika. + NajproÅciej rzecz ujmujÄ c jest tak jakby klasyczny pulpit + z wyÅwietlajÄ cymi siÄ w okienkach programami. Tak jakby + ponieważ na interfejs graficzny skÅada siÄ bardzo duża iloÅÄ + różnych elementów, które mogÄ siÄ miÄdzy sobÄ diametralnie różniÄ. +
++ Krótko scharakteryzujemy elementy, z których skÅada sie interfejs + użytkownika. Ten rodziaÅ bÄdzie doÅÄ mocno teoretyczny, wiÄc jeÅli + nie interesuje nas czym jest Wayland czy + X Window System lub magistrala D-Bus można przejÅÄ + kolejnego rodziaÅu. +
++ Jak już wczeÅniej wspomniaÅem na interfejs graficzny użytkownika + skÅada siÄ duża iloÅÄ elementów. Te elementy moga byÄ zostaÄ + pogrupowane na podstawie czym tak na prawdÄ sÄ . Jesli powiem, że + Årodowisko graficzne uzupeÅniajÄ widget-y, to tymi + widget-ami sÄ po prostu aplikacje dostarczane jako + zależnoÅci zadania instalacji wybranego Årodowiska. Årodowiska + oczywiÅcie mogÄ siÄ bez nich obejÅÄ jednak przyjemnosÄ korzystania + z takiego pulpitu powoduje mieszane uczucia. +
++ Na samym dole intefejsu użytkownika znajduje siÄ zazwyczaj + bufor ramki jest to obszar pamiÄci odczytywany + przez ukÅady graficzne i nastÄpnie przekazywany do wyÅwietlenia na + ekranie. Kilka bajtów reprezentuje jeden piksel. Podczas wyÅwietlania + okien procesy na bierzÄ co aktualizujÄ zawartoÅÄ bufora lub buforów + (może ich byÄ kilka, o czym siÄ zaraz przekonamy) pamiÄtajÄ c przy + tym aby nie nadpisaÄ elementów innych okien (procesy programów + wyÅwietlajÄ cych siÄ w oknie). +
++ CiÄżko jest sklasyfikowaÄ przedstawione poniżej elementy. Niby sÅuÅ¼Ä + temu samemu to jednak posiadajÄ wiele zasadniczych różnic, że trzeba + siÄ na chwilÄ zatrzymaÄ i zastanowiÄ na tym jak je sklasyfikowaÄ. +
++ System X Window bazuje na architekturze klient-serwer, + serwer wyÅwietlania, nazywany również serwerem X jest + tak jakby jÄ drem caÅego interfejsu użytkownika. Serwer X + zarzÄ dza wszystkimi elementami zwiÄ zanymi z pulpitem przy czym nie + narzucajÄ c jak coÅ powinno dziaÅaÄ lub wyglÄ daÄ. Klientem w tej + releacji pozostaja wszelkie aplikacje, które chcÄ wyÅwietliÄ okna + w systemie X. Po nawiÄ zaniu poÅÄ czenia z nim, aplikacja + Å¼Ä da wyÅwietlenia okna. W odpowiedzi uzyskamy informacje o + docelowym poÅożeniu okna oraz zostaniem mu wskazany obszar pamiÄci + przeznaczony na bufor ramki. Czasmi serwer X sam zajmuje + siÄ renderowaniem elementów graficznycznych. +
++ Ze wzglÄdu na to, że serwer X bierze udziaÅ w tak wielu + czynnoÅciach, może staÄ siÄ wÄ skim gardÅem w pewnym + momencie, chociaż X Window System jest aktywnie + wykorzystywany od lat 80, okazaÅ siÄ doÅÄ elastyczny aby móc + obsÅugiwaÄ elementy wspóÅczesnych interfejsów. +
++ ProtokóŠWayland w przeciwieÅstwie do X Window jest + nastawiony na decentralizacjÄ. Å»adna centralny serwer nie bierze + udziaÅu w renderowaniu elementów graficznych. Każdy klient otrzymuje + swój bufor ramki oraz skÅadnik kompozycji ÅÄ czÄ cy + bufory ramki klienta do postacji akceptowanej przez bufor ramki + ekranu, przy czym to zadanie jest wspierane sprzÄtowo co może + podnieÅÄ wydajnoÅÄ. +
++ Generalnie to nie ma zbyt wielkich różnic miÄdzy protokoÅem + Wayland a system X Window. Aplikacje w obecnych + Årodowiskach wykorzystujÄ c X Window nie oczekuje na + wspracie od serwera i same renderujÄ bitmapÄ (zapisuja elementy + graficzne w buforze ramki w postaci bajtów) i przesyÅajÄ ja + serwerowi X. Serwer Åaczy je ze sobÄ z wykorzystaniem + rozszerzenia kompozycji, które jest dostÄpne w nim od kilku lat. + JednÄ z faktycznych różnic jest wymaganie biblioteki + libinput sÅuÅ¼Ä cej do kierowania danych wejÅciowych + do klientów. ProtokóŠnie wymaga tej biblioteki. Jednak jest ona + w każdym dostÄp Årodowisku. O mówimy jÄ sobie przy okzaji gÅÄbszego + zapoznania siÄ z system X Window. +
++ Menedżer okna w interfejsie użytkownika zajmuje siÄ renederowanie + elementów dektoracyjnych, obsÅuguje kierowane do tych elementów + zdarzenia wejÅciowe oraz informuje serwer o poÅożeniu okien. Te + zadania sÄ wykonywane kiedy korzystamy z systemu X Window. + Inaczej jest w przypadku protokoÅu Wayland tutaj menedżer + okien peÅni rolÄ serwera, skÅada bufory ramek, aby byÅy zgodne + z buforem przeznaczonym do wyÅwietlania oraz obsÅuguje przekazywanie + urzÄ dzeÅ wejÅcia na kanale zdarzeÅ. Jest to gÅówna różnica miedzy + opisanymi wczeÅniej mechanizmami wyÅwietlania. Każdy z dostÄpnych + interfejsów może mieÄ swój wÅasny menedżer okien. Niektóre + menedżery okien sÄ traktowane jako peÅne interfejsy użytkownika. + OczywiÅcie jest bÅÄdne zaÅożenie, ponieważ takim goÅym menedżerom + okien, brakuje kilku elementów. +
++ Elementy interfejsów graficznych sÄ czÄsto oparte o jednÄ z bibliotek, + która wspiera tworznie różnego rodzaju przycisków, paneli, + elementów dekoracyjnych czy projektowania okien. WÅród Årodowisk + interfejsu użytkownika prym wiodÄ biblioteki standardu GTK+ oraz + standardu Qt. Przyczym GTK+ jest wykorzystywany przez wiÄkszÄ iloÅÄ + Årodowisk. +
2022; COPYLEFT; ALL RIGHTS REVERSED; -- 2.39.5