GNU/Linux >> Linux Esercitazione >  >> Linux

Linux:come funziona il display di Linux?

Il sistema di visualizzazione di Linux utilizza più tecnologie , protocolli, estensioni, applicazioni, server (daemon), driver e concetti per realizzare il sistema a finestre ad esempio:
Xorg, Wayland, X11, OpenGL, RandR, XrandR, Risoluzione dello schermo, DPI, Server di visualizzazione, ecc.

Quella moltitudine può essere travolgente o confusa quando non abbiamo il quadro completo. Esistono più documentazioni per ciascun lato del sistema di visualizzazione di Linux, ma a livello globale come funziona esattamente?

Risposta accettata:

Display Linux

Il sistema di visualizzazione di Linux utilizza molteplici tecnologie, protocolli, estensioni, applicazioni, server (daemon), driver e concetti per realizzare il sistema a finestre, ad esempio:Xorg, Wayland, X11, OpenGL, RandR, XrandR, Screen Resolution, DPI, Display server , ecc. Può essere opprimente da comprendere appieno, ma ogni lato è pensato per uno scopo specifico e non vengono utilizzati tutti insieme allo stesso tempo.

Protocollo X

Il sistema X Window, X11 (X versione 11) è un sistema a finestre per visualizzazioni bitmap, comune su sistemi operativi simili a Unix, X fornisce la struttura 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, questa è gestita dai singoli programmi. In quanto tale, lo stile visivo degli ambienti basati su X varia notevolmente; programmi diversi possono presentare interfacce radicalmente diverse. X ha avuto origine dal Project Athena presso il Massachusetts Institute of Technology (MIT) nel 1984. Il protocollo X è alla versione 11 (da cui "X11") dal settembre 1987. La Fondazione X.Org guida il progetto X, con l'attuale implementazione di riferimento , X.Org Server, disponibile come software gratuito e open source con licenza MIT e licenze permissive simili.

Implementazione X

La maggior parte delle distribuzioni Linux utilizza X.Org Server che è l'implementazione gratuita e open source del server di visualizzazione per l'X Window System (X11) gestito dalla X.Org Foundation. Xorg/X da solo non supporta più funzionalità fornite come il ridimensionamento o il rendering, per questo Xorg utilizza estensioni come XFixes, RandR (RandR è gestito da xrandr può ad esempio impostare il panning, la risoluzione o il ridimensionamento), GLX (estensione OpenGL), Render o Composite che causa il rendering di un intero sottoalbero della gerarchia delle finestre in un buffer fuori schermo, le applicazioni possono quindi prendere il contenuto di quello buffer e fare quello che vogliono, il buffer fuori schermo può essere automaticamente unito alla finestra principale o fuse da programmi esterni, chiamati compositing manager per eseguire il compositing da soli come alcuni gestori di finestre fare; Per esempio. Compiz, Enlightenment, KWin, Marco, Metacity, Muffin, Mutter e Xfwm. Per altri “non compositi ” gestori di finestre, è possibile utilizzare un gestore composito autonomo, ad esempio:Picom, Xcompmgr o Unagi. Estensioni supportate da Xorg può essere elencato con:xdpyinfo -display :0 -queryExtensions | awk '/^number of extensions:/,/^default screen number/' .

D'altra parte Wayland è inteso come un sostituto più semplice per Xorg/X11, più facile da sviluppare e mantenere, ma dal 2020 il supporto desktop per Wayland non è ancora completamente pronto a parte Gnome (ad es. KDE Kwin e il supporto Wayland); sul lato delle distribuzioni, Fedora usa Wayland per impostazione predefinita. Nota che Wayland e Xorg possono funzionare contemporaneamente, questo può essere il caso a seconda della configurazione utilizzata. XWayland è una serie di patch sulla codebase del server X.Org che implementano un server X in esecuzione sul protocollo Wayland. Le patch sono sviluppate e mantenute dagli sviluppatori Wayland per la compatibilità con le applicazioni X11 durante la transizione a Wayland, e sono state inserite nella versione 1.16 di X.Org Server nel 2014. Quando un utente esegue un'applicazione X dall'interno di Weston, richiama XWayland per soddisfare la richiesta.

Correlati:dopo l'aggiornamento a MacOS Catalina MAMP non funziona più con root su un supporto di rete?

L'intero ambito

Un server di visualizzazione o window server è un programma (come Xorg o Wayland) il cui compito principale è coordinare l'input e l'output dei suoi client da e verso il resto del sistema operativo, l'hardware e l'altro. Il server di visualizzazione comunica con i suoi client tramite il protocollo del server di visualizzazione, un protocollo di comunicazione, che può essere trasparente alla rete o semplicemente compatibile con la rete. Ad esempio X11 e Wayland sono protocolli di comunicazione del server di visualizzazione.

Come mostrato nel diagramma, un gestore di finestre è un altro elemento importante dell'ambiente desktop che è un software di sistema che controlla il posizionamento e l'aspetto delle finestre all'interno di un sistema a finestre in un'interfaccia utente grafica. La maggior parte dei gestori di finestre sono progettati per fornire un ambiente desktop. Funzionano insieme al sistema grafico sottostante che fornisce il supporto delle funzionalità richieste per l'hardware grafico, i dispositivi di puntamento e una tastiera e sono spesso scritti e creati utilizzando un toolkit di widget. KDE usa KWin come window manager (ha un supporto limitato per Wayland a partire dal 2020), allo stesso modo Gnome 2 usa Metacity e Gnome 3 usa Mutter come window manager.

Un altro aspetto importante di un gestore di Windows è il compositore o gestore di finestre di composizione , che è un window manager che fornisce alle applicazioni un buffer fuori schermo per ogni finestra. Il window manager compone i buffer della finestra in un'immagine che rappresenta lo schermo e scrive il risultato nella memoria del display. I gestori di finestre di composizione possono eseguire elaborazioni aggiuntive su finestre bufferizzate, applicando effetti animati 2D e 3D come fusione, dissolvenza, ridimensionamento, rotazione, duplicazione, piegatura e contorsione, mescolamento, sfocatura, reindirizzamento di applicazioni e traduzione di finestre in uno dei numerosi display e desktop virtuali. La tecnologia di computer grafica consente il rendering di effetti visivi in ​​tempo reale come ombre esterne, anteprime live e animazioni complesse. Poiché lo schermo è dotato di doppio buffer, non sfarfalla durante gli aggiornamenti. I gestori di finestre di compositing più comunemente usati includono:Linux, BSD, Hurd e OpenSolaris-Compiz, KWin, Xfwm, Enlightenment e Mutter. ognuno ha la propria implementazione, ad esempio il compositore di KWin di KDE dispone di molte funzioni/impostazioni come la velocità dell'animazione, la prevenzione dello strappo (vsync), le miniature delle finestre, il metodo di ridimensionamento e può utilizzare OpenGLv2/OpenGLv3 o XRender come backend di rendering insieme a Xorg. (XRender/Render da non confondere con XRandR/RandR).

OpenGL (Apri libreria grafica) è un'API (Application Programming Interface) multilingua e multipiattaforma per il rendering di grafica vettoriale 2D e 3D. L'API viene in genere utilizzata per interagire con un'unità di elaborazione grafica (GPU), per ottenere un rendering con accelerazione hardware. OpenGL è una libreria di rendering che può essere utilizzata con Xorg, Wayland o qualsiasi applicazione che la implementi. L'installazione di OpenGL può essere verificata con glxinfo | grep OpenGL .

La risoluzione del display o modalità di visualizzazione di un monitor di computer o di un dispositivo di visualizzazione è il numero di pixel distinti in ciascuna dimensione che possono essere visualizzati. Di solito è indicato come larghezza × altezza, con le unità in pixel:ad esempio, 1024 × 768 significa che la larghezza è 1024 pixel e l'altezza è 768 pixel. xrandr può essere utilizzato per aggiungere o eseguire il rendering/simulare una nuova risoluzione dello schermo.

Il DPI sta per punti per pollice ed è una misura della stampa/visualizzazione spaziale , in particolare il numero di singoli punti che possono essere posizionati in una linea entro l'intervallo di 1 pollice (2,54 cm). Gli schermi dei computer non hanno punti, ma hanno pixel, il concetto strettamente correlato è pixel per pollice o PPI e quindi DPI è implementato con il concetto PPI. Il 96 predefinito La misura DPI significa 96×96 verticalmente e orizzontalmente. Inoltre, l'impostazione X DPI (punto per pollice) è pensata solo per il ridimensionamento del testo? Il QA è molto istruttivo.

Correlati:perché il nastro adesivo non funziona bene sui cavi?

Note

Alcuni strumenti grafici di KDE: systemsettings5> display, kcmshell5 xserver e kinfocenter .

Riferimenti

Link e fonti: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 e 12.


Linux
  1. Che cos'è un server Web e come funziona un server Web?

  2. Linux:come funziona il carico medio con le moderne CPU?

  3. Come funziona il comando 'ls' in Linux/Unix?

  4. Come funziona ngrok dietro un firewall?

  5. ZFS sotto Linux, funziona?

Come creare un server CS:GO su VPS Linux

Che cos'è il comando sorgente in Linux e come funziona?

Come funziona la memoria di scambio in Linux?

Come eseguire l'SSH sul server tramite Linux

Come funziona una GUI Linux al livello più basso?

Come funziona il display di Linux?