Differenza tra Xorg e Gnome / KDE / Xfce


21

Voglio saperne di più sui sistemi UNIX e penso di avere una domanda piuttosto semplice. Penso di sapere a cosa serve X: fornisce uno standard alle applicazioni per presentare la loro UI (tra le altre cose).

Ma allora perché c'è bisogno di Gnome / KDE e come si relazionano con X? Ho pensato che stessero usando X come una sorta di interfaccia tra l'applicazione e la GUI, quindi la GUI è personalizzabile mentre l'interfaccia rimane la stessa tra le applicazioni.

È vero o Gnome / KDE è indipendente da X?

Risposte:


28

(Sto esaminando la relazione di GNOME e X. Vorrei condividere alcune delle mie comprensioni. Lo presenterò in modo logico il più possibile.)

1. In cosa è composta la GUI?

Di seguito è riportata un'illustrazione dei componenti di base di una GUI.

inserisci qui la descrizione dell'immagine

Il componente chiave è il server di visualizzazione . Sono disponibili diversi server di visualizzazione. Ad esempio:

  • X11 (principalmente per * nix)
  • Wayland (principalmente per * nix)
  • Mir (principalmente per * nix)
  • SurfaceFlinger (Questo è per Google Android.)
  • Quartz Compositor (Questo è ciò che utilizza Apple MacOS.)
  • Desktop Window Manager (Questo è ciò che utilizza Microsoft Windows.)

2. Che cos'è X?

X, X11 e X Window System sono sinonimi. Tutti rappresentano un sistema di finestre . Il sistema a finestre è un tipo di interfaccia utente grafica (GUI, come ho detto sopra) che implementa il paradigma WIMP (finestre, icone, menu, puntatore) per un'interfaccia utente.

Ecco un elenco dei principali sistemi di finestre per sistemi Linux e Windows.

Il componente principale di qualsiasi sistema a finestre è di solito chiamato server di visualizzazione (non sorprende perché il sistema a finestre è una sorta di GUI e il server di visualizzazione è la parte chiave di qualsiasi GUI), sebbene vengano usati anche altri nomi come server di finestre o compositore .

Qualsiasi applicazione che esegue e presenta la sua GUI è un client del server di visualizzazione . Il server di visualizzazione e i suoi client comunicano tra loro tramite un protocollo di comunicazione, che di solito è chiamato protocollo del server di visualizzazione , il cui server di visualizzazione è il mediatore tra i client e l'utente. Il server di visualizzazione riceve tutti gli input dal kernel, che il kernel riceve da tutti i dispositivi di input collegati, come tastiera, dispositivi di puntamento o touchscreen e li trasmette al client corretto. Il server di visualizzazione è anche responsabile dell'output dei client sul monitor del computer. Un protocollo del server di visualizzazionepuò essere in grado di supportare la rete o addirittura essere trasparente. (come puoi vedere, si tratta essenzialmente di flusso e routing dei dati, i dati visivi sono ancora dati).

E secondo qui :

Un X Server è un programma che fornisce servizi di visualizzazione e input dell'utente ad altri programmi. In confronto, un file server fornisce ad altri programmi l'accesso ai dispositivi di archiviazione dei file. I file server si trovano in genere in una posizione remota e si utilizzano i servizi di un file server dalla macchina in cui ci si trova. Al contrario, un server X è in genere in esecuzione sul computer in cui ci si trova ; i servizi di visualizzazione e di input dell'utente possono essere richiesti dai programmi in esecuzione sulla macchina, nonché dai programmi in esecuzione su macchine remote .

Quindi X è composto da:

  • server di visualizzazione
  • mostra il protocollo del server
  • alcune librerie per lo sviluppo
  • e altre cose

inserisci qui la descrizione dell'immagine

Secondo qui :

X fornisce il framework di base per un ambiente GUI: disegnare e spostare finestre sul dispositivo di visualizzazione e interagire con mouse e tastiera. X non impone l'interfaccia utente - questo è gestito da singoli programmi. Pertanto, lo stile visivo degli ambienti basati su X varia notevolmente; programmi diversi possono presentare interfacce radicalmente diverse.

In altre parole, X offre a un programma solo la possibilità di eseguire operazioni di base come disegnare / spostare finestre e interagire con gli input . X non applica stili visivi. Quindi quello che hai detto " ... Dà uno standard alle applicazioni per presentare le loro UI ... " non è corretto.

3. Che cos'è GNOME / KDE

GNOME e KDE sono entrambi Linux Desktop Environment . Un ambiente desktop è un insieme di programmi in esecuzione su un sistema operativo, che condividono una GUI comune .

Ma proprio come ho menzionato sopra, X11, come un server di visualizzazione, fornisce solo la capacità di disegno di base attraverso alcune librerie come Xlib o XCB. Le applicazioni che interfacciano direttamente X11 tramite tali librerie possono avere stili visivi radicalmente diversi .

Quindi, come creare una GUI comune? Ecco che arriva il toolkit del widget . Come GTK + e Qt . Sono popolari nei sistemi di finestre Wayland e X11 .

GNOME usa GTK +.

KDE usa Qt.

Ed ecco un confronto tra gli ambienti desktop di X Window System.

Riassumere...

Traccio un'illustrazione concettuale approssimativa. Le 3 parti sopra il sistema operativo sono molto personalizzabili. Ecco perché sorge tanta flessibilità (confusione).

inserisci qui la descrizione dell'immagine

AGGIUNGI 1 - 13:26 21/09/2018

Ed ecco alcune discussioni su QT e GTK (forse offtopic a questo thread però ...)


"Il fatto che il termine" server "sia applicato al software di fronte all'utente è spesso sorprendente per gli utenti abituati ai loro programmi da client a servizi su computer remoti. Qui, invece di un database remoto che è la risorsa per un'app locale , i dispositivi di visualizzazione grafica e di input dell'utente diventano risorse rese disponibili dal server X locale ai programmi client X sia locali che ospitati in remoto che devono condividere la grafica dell'utente e i dispositivi di input per comunicare con l'utente. " (vedi wiki )
yaobin,

1
Nel caso in cui qualcuno venga confuso dalla frase "in genere un server X è in esecuzione sul computer in cui ci si trova", vedere il mio commento sopra. Grazie @smwikipedia per aver dato una risposta così incredibile!
Yaobin,

5

Xorg (e il precedente Xfree e il precedente X10 ) è un server per un protocollo più completamente chiamato X Window System ; consente alle applicazioni di disegnare sullo "schermo". Che può essere remoto con X. Gnome / KDE / Xfce e altri gestori di finestre / ambienti desktop sono applicazioni speciali che vengono eseguite in X che disegnano elementi come bordi e icone e minimizzano e massimizzano il contrario delle applicazioni stesse.

E, dal momento che Gnome e KDE possono entrambi (o hanno fatto) funzionare su MS Windows (e Wayland a vari livelli), sì, sono (o possono essere) indipendenti da X.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.