Podczas uczenia się, jak robić pewne rzeczy w programowaniu GUI (np. Rezerwowanie miejsca na ekranie dla aplikacji), muszę dowiedzieć się więcej o Menedżerze okien, zwykle X11 w Linuksie (nie jestem pewien, czy w ogóle są dystrybucje , które używają czegokolwiek innego niż X11, chociaż słyszałem o Wayland , która nie została jeszcze zaimplementowana w żadnym).
Jestem całkiem nowy w programowaniu i niecierpliwy; więc po prostu nurkuję. Teraz czytam ICCCM z nadzieją, że dowiem się więcej. Ten dokument jest jednak skierowany do publiczności, która wie (sposób) więcej niż ja. Natrafiłem więc na pewne informacje i chciałbym uzyskać wyjaśnienia.
Sekcja 2 ICCCM cytuje:
Należy pamiętać, że wszystkie dane przesyłane między właścicielem a wnioskodawcą zwykle muszą odbywać się za pośrednictwem serwera w środowisku X w wersji 11. Klient nie może zakładać, że inny klient może otworzyć te same pliki, a nawet komunikować się bezpośrednio. Drugi klient może rozmawiać z serwerem za pomocą zupełnie innego mechanizmu sieciowego (na przykład jednym klientem może być DECnet, a drugi TCP / IP). Dlatego przekazywanie pośrednich odwołań do danych (takich jak nazwy plików, nazwy hostów i numery portów itd.) Jest dozwolone tylko wtedy, gdy obaj klienci wyraźnie się z tym zgadzają.
O ile rozumiem, X Window Manager jest zbudowany na Top of X Server (dzięki Wikipedii). W powyższym cytacie: mówi, że klient może komunikować się z serwerem za pomocą DECnet lub TCP / IP. Do tej pory myślałem, że „serwer” jest mową, teraz wątpię: czy X serwer jest serwerem jak na „serwerze WWW”? Jak powinienem zrozumieć jego funkcję / definicję?
Następnie często pojawiają się odniesienia do X11, Xorg, X Server i / lub X Window Manager. Robi się mylące: czy X11 jest pakietem zawierającym Xorg i X Window Managera? Jeśli tak, to czy jest jeszcze coś w tym pakiecie X11?
X także potrzebuje myszy, klawiatury lub innego rodzaju danych wejściowych: czy ta część funkcji X Servera również? Czy X Window Manager ściśle dba tylko o wyświetlacz?
Wreszcie powyższy cytat wspomina także o komunikacji między klientem lub bez niego: przypominało mi to D-Bus, którego trochę użyłem do celów edukacyjnych. Za pomocą D-Bus można również wyzwalać zdarzenia okna. To sprawia, że jestem trochę zdezorientowany, w jaki sposób programy powinny się ze sobą komunikować: * jaka jest różnica między programami współdziałającymi za pomocą X Server lub D-Bus? *
Szkoda, że ta informacja jest w jakiś sposób niejasna, utrudnia naukę, ale mam nadzieję, że przyniesiesz trochę światła :) Dzięki.