Sistemul X Window

Acest articol a fost introdus în proiectul Linux pentru îmbunătățire. Ajutați- l la editare și participați la discuție !

Șablon: notă de proiect / întreținere / Linux

Următoarele îmbunătățiri ar fi bune: Problemele driverului driverului Nouveau nu sunt menționate, la fel și restricțiile în ceea ce privește schimbarea limbii. Asta ar trebui adăugat. - A. Abdel-Rahim ( discuție ) 10:57, 20 mar. 2020 (CET)


Sistemul X Window

Sigla X Window System
Date de bază

Întreținător Fundația X.Org
dezvoltator Fundația X.Org , Keith Packard
Anul publicării 1984
Versiunea actuală  X11R7.7
(6 iunie 2012,
în acesta: X.Org-Server 1.20.7 (14 ianuarie 2020))
sistem de operare unixoide ( BSD , macOS , Linux etc.), VMS
limbaj de programare C.
categorie Interfață grafică de utilizator , protocol de rețea
Licență Licență MIT
Vorbitoare de limbă germană Nu
www.x.org
Gnome 2.18.1
KDE 4.10
Xfce 4.6.1
Interacțiunea dintre serverul X și clientul X. În partea superioară a imaginii, este prezentat schematic un computer de utilizator, pe care un server X gestionează tastatura, mouse-ul și ecranul. În exemplu, serverul X interacționează cu trei clienți X: un browser local, un xterm local (pentru interacțiunea cu shell-ul Unix ) și un xterm la distanță

Sistemul X Window (de asemenea, X Versiunea 11 , X11 , X ) este un protocol de rețea și un software care permite Windows pe afișaje bitmap pe majoritatea sistemelor de operare similare Unix și OpenVMS . X11 a fost implementat pe toate sistemele de operare comune.

Acesta oferă un kit de construcție standard și protocolul pentru construirea unei interfețe grafice cu utilizatorul . Aceasta include desenarea și mișcarea ferestrelor de pe ecran, precum și gestionarea introducerii utilizatorului cu mouse-ul și tastatura. X nu prescrie o interfață de utilizator specială , dar lasă acest lucru programelor sale client . Prin urmare, mediile bazate pe X pot varia foarte mult în aspect. Acest lucru este contracarat cu ajutorul mediilor desktop - cele mai cunoscute, KDE și Gnome sunt afișate în dreapta. Utilizatorii finali cu greu intră în contact cu programele de bază ale sistemului X Window pe desktopurile Unix moderne.

Protocoalele de afișare anterioare puteau gestiona doar afișajele încorporate sau atașate direct. În plus, X a fost conceput special ca un sistem client-server , care permite utilizarea atât locală, cât și transparentă în rețea .

Fundația X.Org este responsabil de proiect de astăzi și pe 06 iunie 2012 a lansat versiunea 7.7 a punerii în aplicare de referință ca software liber sub licența MIT . O altă implementare utilizată pe scară largă în anii 1990 este XFree86 . Wayland urmează să servească drept succesor .

istorie

X a fost dezvoltat în 1984 în cadrul proiectului Athena în cooperare cu MIT , DEC și IBM . Prima versiune a fost prezentată pe 19 iunie 1984, iar în 1986 X 10.4 a fost distribuit cu mare succes tuturor părților interesate contra unei taxe nominale, care a fost prima dată când X a fost utilizat pe scară largă pe computerele Unix ale vremii. Cu toate acestea, X10 a fost incompatibil cu X11 ulterior. În cele din urmă, în septembrie 1987, a urmat prima versiune a X11.

Pe măsură ce popularitatea a crescut în 1988, a fost înființat X-Consortium necomercial, care a preluat dezvoltarea ulterioară. Acesta a lansat versiuni diferite, ultima mare fiind X11R6 în 1994. După aceea, Open Group a preluat dezvoltarea si standardizarea. În același timp, implementarea gratuită X XFree86 a devenit din ce în ce mai populară și a devenit standardul de facto pentru implementarea X. Cu toate acestea, în 2003, au existat probleme interne și de licențiere a proiectului cu XFree86, ceea ce a dus în cele din urmă la dizolvarea echipei de dezvoltare. Sub umbrela noii înființate X.Org Foundation , a fost dezvoltat în continuare un spin-off al vechiului XFree86, care a urmat în mare măsură urmele sale sub numele de X.Org-Server . Din jurul anului 2005 a fost considerat cel mai răspândit server X și, prin urmare, cea mai răspândită implementare X.

tehnologie

Distribuție posibilă a ferestrelor printr-un manager de ferestre X11
Elementele ferestrei X11, exemplu cu managerul de ferestre FVWM2

Serverul X controlează dispozitivele de intrare și ieșire, cum ar fi dispozitivele de indicare (de exemplu mouse-ul ), tastatura, monitorul și placa grafică. Pentru a face acest lucru, teoretic comunică cu nucleul sistemului de operare , dar în practică nucleul este de asemenea ocolit. Conceptul de bază este o extensie a conceptului de terminal pentru a include interfețe grafice de utilizator: Pentru intrare grafică (mouse) și ieșire (tehnologie fereastră), un program se bazează pe serviciile unui alt program specializat (server X); comunicarea are loc întotdeauna prin intermediul Reţea.

Afișajul la X este cel al unui manager de ferestre bazat pe grafică raster care oferă diverse funcții. Aceasta include desenarea și mutarea ferestrelor, gestionarea orientată spre evenimente a unui dispozitiv de indicare, de ex. B. un mouse, comunicarea interproces și parțial și funcțiile de gestionare pentru imprimare și ieșire audio. Prin urmare, X este un sistem minimal, în care doar desenele primitive, cum ar fi liniile, modelele etc.

Prin urmare, aspectul și comportamentul real al sistemului de ferestre nu sunt determinate de X, ci de managerul de ferestre , care, ca o aplicație normală, rulează pur și simplu ca un client al serverului X. Cu toate acestea, el nu este responsabil pentru apariția programelor în sine; acest lucru se face de obicei prin așa-numitul set de instrumente GUI , care desenează și gestionează elementele tipice ale unei interfețe grafice de utilizator, cum ar fi B. Meniurile și butoanele preiau. Vezi și mediul desktop .

Model de comunicare

X se bazează pe un model client-server :

  • Serverul X rulează pe computerul de la stația de lucru și face ca serviciile sale (grafice) la dispoziția clienților X. Acesta conține driverul plăcii grafice, precum și driverele pentru tastatură, mouse și alte dispozitive de intrare (cum ar fi tabletele grafice) și comunică cu clientul X utilizând comunicarea interproces.
  • Clientul X este programul de aplicație care utilizează serviciile grafice de intrare / ieșire ale serverului X. Poate rula pe același computer sau pe orice computer la distanță (cu condiția să existe o conexiune de rețea între cele două). Clientul X folosește serviciile serverului X pentru a obține o reprezentare grafică și primește de la acesta diferite evenimente ( evenimente ) precum apăsări de taste, mișcări ale mouse-ului, clicuri etc.

Terminalul X

Sistemul de terminal bazat pe text cunoscut în lumea mainframe-urilor (acolo mai ales cele proprietare, cum ar fi IBM 5250 și 3270 ; sub Digital VMS , cunoscutele terminale seriale precum VT100 ) au cunoscut dezvoltarea sa grafică către terminalul X ; un computer pe care nu rulează altceva decât un server X. Aceste terminale X sunt adesea folosite pentru a accesa aplicații cu calcul intensiv cu calculatoare cu performanțe reduse: aplicația rulează pe un server, terminalul X afișează doar interfața grafică cu utilizatorul.

Între timp, a devenit o practică comună de a utiliza standardul PC hardware în loc de hardware special pentru terminale X . Cu aceasta, funcțiile terminalelor X pot fi implementate ieftin, de exemplu sub formă de clienți subțiri .

Accelerație 3D

Pentru a permite accelerarea 3D rapidă, X Window System oferă interfața Direct Rendering Infrastructure (DRI), pe care programele o pot utiliza pentru a accesa direct hardware-ul 3D. În cazul driverelor gratuite, acest lucru se întâmplă prin implementarea OpenGL Mesa 3D , în cazul driverelor proprietare prin implementări proprii OpenGL.

Cu ajutorul extensiilor 3D, cum ar fi AIGLX și xgl , serverul X.Org acceptă și efecte 3D pe desktop.

A intari

Sistemul X a fost conceput de la început pentru o funcționare eficientă a rețelei. Comunicarea dintre client și server are loc printr-un protocol standardizat care necesită doar rate de transfer relativ mici. Deși codul sursă al sistemului X este orientat obiect, este scris în C, astfel încât să poată fi tradus pe aproape orice computer Unix. Spre deosebire de versiunile curente ale MS Windows , sistemul X nu face parte din sistemul de operare, motiv pentru care un blocaj de X nu are de obicei nicio influență asupra integrității sale : Dacă serverul X se blochează sau nu mai reacționează, clienții pot reacționa și z . De exemplu, așteptați repornirea serverului X sau (ceea ce este de obicei cazul) terminarea. Mai mult, managerul de ferestre („interfața cu utilizatorul”) are practic aceeași stare ca un client X: un manager de ferestre poate fi înlocuit cu altul în timpul funcționării. Chiar și administratorii de ferestre foarte mici (de exemplu , twm , în jur de 140  KB ) pot fi folosiți confortabil.

Structura ierarhică bine gândită a sistemului permite, de exemplu, următoarele:

  • Operați mai multe stații de lucru pe ecran pe un server X.
  • În scopuri de dezvoltare și testare, rulați un server X într-o fereastră a altui server X.
  • Executați programe pe un computer cu hardware și software complet diferite de computerul care operează.

În comparație cu hardware-ul, dezvoltarea în continuare a X are loc pe o scară largă de timp și doar cu modificări minore. Prin urmare, nu apar probleme de compatibilitate dacă se utilizează doar biblioteci standard. Cu toate acestea, un număr mare de clienți X utilizează astăzi extensii precum Xft , XVideo sau Xinerama .

Separarea strictă a sistemului X Window de interfața cu utilizatorul duce la un sistem relativ flexibil, dar poate părea, de asemenea, foarte amestecat: Deoarece proiectarea elementelor de interfață, spre deosebire de Windows sau Mac OS nu este în afara designului setului de instrumente GUI principal vine, dar există diferite seturi de instrumente (inclusiv Qt și GTK + ) cu proprietăți diferite care utilizează modele diferite, se poate întâmpla ca fiecare dintre programele utilizate să prezinte un aspect și un comportament diferit.

puncte slabe

Cu xinput listși xinput test idserverul X acționează ca un keylogger , prin care chiar și parola sudo poate fi citită. Condiția prealabilă pentru acest tip de atac este că un server X cu rootdrepturi rulează deja. Prin urmare, multe distribuții Linux împiedică conectarea ca fișier root. Wayland lucrează de câțiva ani , care este de a înlocui serverul X. Se spune că Wayland conține semnificativ mai puține găuri de securitate decât X.

Abordări de îmbunătățire

Viteza transmisiei

Au fost dezvoltate mai multe abordări pentru a îmbunătăți viteza de transmisie:

Mai multe proiecte încearcă să implementeze aceste tehnici. XCB Biblioteca este o versiune nouă a Xlib bibliotecii, care reglementează traficul de date între client și server în serverul X. La dezvoltarea XCB, o importanță deosebită este acordată eficienței sporite.

Proiectul NX al companiei italiene NoMachine este, de asemenea, foarte cunoscut, cu ajutorul unei cache și a compresiei de date, X poate fi utilizat și prin linii de modem.

Proiectul lui Keith Packard Low Bandwidth X a lucrat în acest domeniu în trecut . Ideea a fost să creăm o extensie a protocolului X pentru a face transparența rețelei utilizabilă chiar și pentru lățimi de bandă reduse. Odată cu lansarea X11R6.3 de către X Consortium în decembrie 1996, LBX a devenit o extensie completă a protocolului X. Cu toate acestea, deoarece nu a fost niciodată folosit pe scară largă și nu putea oferi decât o soluție pentru unele dintre probleme, proiectul a fost declarat mort de Keith Packard în cursul anului 2000.

Creșterea uniformității

O mai mare uniformitate a fost urmărită și de mai multe proiecte. Abordările au fost crearea unei suprafețe desktop cu biblioteci uniforme de suprafață sau înlocuirea lui X cu un sistem configurat la un nivel superior, care a inclus un tratament uniform al elementelor de suprafață de la început. Proiectul Fresco și Y Window System au dezvoltat fiecare soluții pentru a implementa a doua abordare, dar proiectele sunt în prezent latente.

O altă abordare care a fost urmărită în mod activ este încercarea de a obține coerența între diferitele seturi de instrumente prin intermediul ghidurilor comune pentru interfețele utilizatorilor și comportamentele software. Această abordare este urmărită în primul rând în cadrul proiectului freedesktop.org . B. la standarde uniforme pentru icoane.

diverse

La începutul anilor 1990, distribuția completă X11 era adesea cel mai mare fișier (în jur de 10 până la 50  MB ) pe computerele Unix. Deoarece era și gratuit , a fost adesea folosit sau cel puțin amenințat ca o bombă poștală . „Să trimit un X11R3” a fost, așadar, în Usenet , o comandă de gag care rulează Newbies atrage atenția asupra faptelor greșite.

Culorile X11 stau la baza denumirilor de culori din CSS astăzi .

Vezi si

literatură

Link-uri web

Commons : X Window System  - colecție de imagini, videoclipuri și fișiere audio
Wikibooks: Ghid pentru X11  - materiale de învățare și predare

Dovezi individuale

  1. Michael Larabel: X.org server 1.20.7 lansat cu o mână de remedieri pentru setarea modurilor GLAMOUR +. portalul de internet phoronix.com, 14 ianuarie 2020
  2. Jürgen Seeger: X Window System împlinește 30 de ani. La 19 iunie 1984 a apărut primul prototip al sistemului de ferestre grafice X la nivelul întregii rețele, care este standard pe sistemele Unix și Linux până în prezent. În: Heise online . 20 iunie 2014, accesat la 20 iunie 2014 .
  3. ^ Sistemul X Window . În: Ghid , începând cu 25 iunie 2005 (engleză); inițial în octet , numărul 1/89, pp. 353-360; accesat la 31 mai 2013.
  4. Michael Plura: Deblocat: drepturi de rădăcină cu X.Org - iX Magazin. În: heise.de. 29 octombrie 2018. Adus 29 octombrie 2018 .
  5. Blogul The Invisible Things Lab: The Linux Security Circus: On GUI izolation. În: theinvisiblethings.blogspot.com. 23 aprilie 2011. Adus la 28 octombrie 2018 .
  6. Linux și BSD: gaura de securitate din X.org permite drepturile de root - Golem.de .
  7. La LBX postmortem . Keithp.com, începând cu anul 2000 (engleză), accesat la 31 mai 2013.