Różnica między Xorg a Gnome / KDE / Xfce


21

Chcę dowiedzieć się więcej o systemach UNIX i myślę, że mam dość proste pytanie. Myślę, że wiem, do czego służy X: Daje standard aplikacjom do prezentacji swoich interfejsów użytkownika (między innymi).

Ale dlaczego zatem istnieje potrzeba Gnome / KDE i jak odnoszą się one do X? Myślałem, że używają X jako interfejsu między aplikacją a GUI, więc GUI można dostosowywać, podczas gdy interfejs pozostaje taki sam w różnych aplikacjach.

Czy to prawda, czy Gnome / KDE jest niezależny od X?

Odpowiedzi:


29

(Patrzę na relację GNOME i X. Chciałbym podzielić się niektórymi z moich zrozumienia. Przedstawię to w logiczny sposób, jak tylko mogę.)

1. Z czego składa się GUI?

Poniżej znajduje się ilustracja podstawowych elementów GUI.

wprowadź opis zdjęcia tutaj

Kluczowym składnikiem jest serwer wyświetlania . Dostępnych jest kilka serwerów wyświetlania. Jak na przykład:

  • X11 (głównie dla * nix)
  • Wayland (głównie dla * nix)
  • Mir (głównie dla * nix)
  • SurfaceFlinger (dotyczy Google Android).
  • Kompozytor kwarcowy (tego używa Apple MacOS).
  • Menedżer okien pulpitu (tego używa Microsoft Windows).

2. Co to jest X?

X, X11 i X Window System są synonimami. Wszystkie oznaczają system okienkowy . System okien to rodzaj graficznego interfejsu użytkownika (GUI, jak wspomniałem powyżej), który implementuje paradygmat WIMP (okna, ikony, menu, wskaźnik) dla interfejsu użytkownika.

Oto lista głównych systemów okienkowych dla systemów Linux i Windows.

Główny składnik każdego systemu okienkowego jest zwykle nazywany serwerem wyświetlania (nic dziwnego, ponieważ system okien jest rodzajem GUI, a serwer wyświetlania jest kluczową częścią każdego GUI), chociaż używane są również inne nazwy, takie jak serwer okien lub kompozytor .

Każdy wniosek, który działa i prezentuje GUI jest klient z serwerem graficznym . Serwer wyświetlający i jego klienci komunikują się ze sobą za pośrednictwem protokołu komunikacyjnego, który jest zwykle nazywany protokołem serwera wyświetlającego , przy czym serwer wyświetlania jest mediatorem między klientami a użytkownikiem. Serwer wyświetlania odbiera wszystkie dane wejściowe z jądra, które jądro odbiera ze wszystkich podłączonych urządzeń wejściowych, takich jak klawiatura, urządzenia wskazujące lub ekran dotykowy, i przesyła je do właściwego klienta. Serwer wyświetlacza jest również odpowiedzialny za wyjście klientów na monitor komputera. Protokół serwera wyświetlaczmoże być zdolny do pracy w sieci lub nawet sieciowy. (jak widać, chodzi przede wszystkim o przepływ danych i routing, dane wizualne to nadal dane).

I zgodnie z tutaj :

X Server to program, który zapewnia wyświetlanie i wprowadzanie danych przez użytkownika innym programom. Dla porównania, serwer plików zapewnia innym programom dostęp do urządzeń do przechowywania plików. Serwery plików zazwyczaj znajdują się w zdalnej lokalizacji, a użytkownik korzysta z usług serwera plików z komputera, na którym się znajduje. Natomiast X Server zazwyczaj działa na komputerze, na którym się znajdujesz ; usługi wyświetlania i wprowadzania danych użytkownika mogą być wymagane przez programy uruchomione na twoim komputerze, a także przez programy działające na zdalnych komputerach.

Więc X składa się z:

  • serwer wyświetlania
  • wyświetlić protokół serwera
  • trochę bibliotek dla programistów
  • i inne rzeczy

wprowadź opis zdjęcia tutaj

Według tutaj :

X zapewnia podstawową strukturę środowiska graficznego: rysowanie i przenoszenie okien na urządzeniu wyświetlającym oraz interakcja z myszą i klawiaturą. X nie wymaga interfejsu użytkownika - jest to obsługiwane przez poszczególne programy. W związku z tym styl wizualny środowisk opartych na X jest bardzo zróżnicowany; różne programy mogą prezentować radykalnie różne interfejsy.

Innymi słowy, X daje tylko programowi możliwość wykonywania podstawowych czynności, takich jak rysowanie / przenoszenie okien i interakcja danych wejściowych . X nie wymusza stylów wizualnych. Więc to, co powiedziałeś „ ... Daje standard aplikacjom do prezentowania swoich interfejsów użytkownika ... ” jest niepoprawne.

3. Co to jest GNOME / KDE

Zarówno GNOME, jak i KDE to Linux Desktop Environment . Środowisko pulpitu to pakiet programów działających na systemie operacyjnym, które mają wspólny interfejs GUI .

Ale tak jak wspomniałem powyżej, X11, jako serwer wyświetlania, zapewnia jedynie podstawową możliwość rysowania za pośrednictwem niektórych bibliotek, takich jak Xlib lub XCB. Aplikacje, które bezpośrednio interfejsują X11 za pośrednictwem takich bibliotek, mogą mieć radykalnie różne style wizualne .

Jak stworzyć wspólny GUI? Oto zestawy narzędzi widgetów . Takich jak GTK + i Qt . Są popularne w systemach okienkowych Wayland i X11 .

GNOME korzysta z GTK +.

KDE używa Qt.

A oto porównanie środowisk pulpitu systemu X Window.

Podsumowując ...

Rysuję szorstką konceptualną ilustrację. 3 części powyżej systemu operacyjnego można bardzo dostosować. Dlatego powstaje tak duża elastyczność (zamieszanie).

wprowadź opis zdjęcia tutaj

DODAJ 1 - 13:26 21.09.2018

A oto kilka dyskusji na temat QT i GTK (może nie na temat tego wątku ...)


„Fakt, że termin„ serwer ”jest stosowany w oprogramowaniu przed użytkownikiem, często zaskakuje użytkowników przyzwyczajonych do tego, że ich programy są klientami usług na komputerach zdalnych. Tutaj zamiast zdalnej bazy danych stanowią zasoby aplikacji lokalnej , wyświetlacz graficzny i urządzenia wejściowe użytkownika stają się zasobami udostępnianymi przez lokalny serwer X zarówno lokalnym, jak i zdalnie hostowanym programom klienckim X, które muszą udostępniać grafikę użytkownika i urządzenia wejściowe, aby komunikować się z użytkownikiem. ” (patrz wiki )
yaobin

1
W przypadku, gdy ktoś pomyli zdanie „Serwer X zwykle działa na komputerze, na którym się znajdujesz”, zobacz mój komentarz powyżej. Dzięki @smwikipedia za udzielenie tak niesamowitej odpowiedzi!
yaobin

5

Xorg (i wcześniejsze Xfree i wcześniejsze X10 ) to serwer protokołu bardziej kompletnie zwanego X Window System ; pozwala aplikacjom rysować na „ekranie”. Które mogą być zdalne za pomocą X. Gnome / KDE / Xfce i inne menedżery okien / środowiska pulpitu są specjalnymi aplikacjami, które działają w X, które rysują takie elementy jak ramki i ikony oraz minimalizują i maksymalizują, że same aplikacje nie.

A ponieważ zarówno Gnome, jak i KDE mogą działać (lub działały) na MS Windows (i Wayland w różnym stopniu), tak, są (lub mogą być) niezależne od X.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.