Sari la conținut

X Window System: Diferență între versiuni

De la Wikipedia, enciclopedia liberă
Conținut șters Conținut adăugat
Linia 68: Linia 68:


== Limitări şi critici==
== Limitări şi critici==
''[[UNIX-HATERS Handbook]]'' (1994) a dedicat un întreg capitol<ref>[http://www.art.net/~hopkins/Don/unix-haters/x-windows/disaster.html "The X-Windows Disaster"]</ref>, problemelor cu care se confruntă X. ''Why X Is Not Our Ideal Window System'' (1990) de Gajewska, Manasse şi McCormack au detaliat problemele din protocol , împreuna cu recomandări pentru îmbunătăţiri.


=== Facilităţi ale interfeţei cu utilzatorul ===
=== Facilităţi ale interfeţei cu utilzatorul ===
în mod intenţionat X nu conţine nici o specificaţie referitoare la interfaţa utilizator şi nici la comunicaţiile inter-aplicaţii.Din cauza aceasta s-au dezvoltat interfeţe foarte diferite , aplicaţiile nefuncţionînd bine împreună in 100% din cazuri. [[Inter-Client Communication Conventions Manual|ICCCM]], o specificaţie pentru interoperabilitatea programelor client are un renume de a fi greu de implementat în mod corect. Alte standarde precum [[Motif (widget toolkit)|Motif]] and [[Common Desktop Environment|CDE]] nu au remediat problemele. Aceasta a fost o sursă permanentă de frustrare pentru atît pentru utilizatori cît şi pentru programatori mult timp.<ref>[http://lists.debian.org/debian-user/1996/11/msg00637.html Re: X is painful] 15 Nov 1996</ref> Pentru a evita problemele legate de programarea grafică,programatorii folosesc un mediu grafic sau un toolkit specific pentru a evita să lucreze direct cu ICCCM.


=== Separarea client-server ===
=== Separarea client-server ===



== Competitori ==
== Competitori ==

Versiunea de la 22 decembrie 2007 16:51

Fișier:Gnome-2.20.png
GNOME 2.20
KDE 3.5
Xfce 4.4

X Window System (de obicei numit X11 sau X) este un protocol de afişare care furnizează un sistem de ferestre pe ecrane raster. X furnizează un set de unelte standard şi un protocol pentru construirea de interfeţe grafice pe majoritatea sistemelor de operare Unix-like şi OpenVMS, şi a fost portat pe toate sistemele de operare generaliste contemporane.

X oferă o platformă de bază pentru construirea mediilor grafice: desenarea şi mişcarea ferestrelor şi interacţiunea cu mausul şi tastatura, dar nu impune interfaţa cu utilizatorul, programele client o oferă fiecare în parte. Din acest motiv stilul vizual al mediilor bazate pe X variază foarte mult. X nu este o parte integrantă sistemului de operare, ci este construit ca o interfaţă peste nucleul sistemului de operare.

X a fost publicat prima dată de MIT în 1984. Versiunea de protocol curentă, X11, a apărut în septembrie 1987.

Design

X foloseşte un model tip client-server: un server X communică cu diverse programe tip client. Serverul acceptă cereri pentru iesirea grafică (ferestre) şi trimite înapoi intrări de la utilizator (de la tastatură, mouse sau touchscreen). Serverul poate funţiona ca:

  • o aplicaţie care afişează într-o fereastră a unui alt sistem
  • un program de sistem care controlează ieşirea video a unui PC
  • o componentă hardware dedicată.

Această terminologie client-server —terminalul utilizatorului ca "server", aplicaţii locale sau distante drept "clients" — adeseori îi deruteaza pe noii utilizatori X, din cauză ca aceste termene apar inversate. Dar X priveşte din perspectiva programului şi nu din a utilizatorului sau a hardware-ului: displayul local X asigură servicii de afişare programelor, deci funcţionează ca un server; orice program distant foloseşte aceste servicii , deci se comportă ca un client.

În acest exemplu, serverul X acceptă intrare de la tastatură şi mouse şi o afişează pe ecran. Un web browser şi un terminal emulator rulează pe staţia de lucru a utilizatorului şi un system updater rulează pe un server distant dar este controlat de pe maşina utilizatorului. De observat că aplicaţia distantă rulează ca şi cum ar fi locală.

Protocolul de comunicaţia dintre server şi client operează network-transparent: clientul şi serverul pot rula pe aceeaşi maşină sau pe maşini diferite, posibil cu diferite arhitecturi şi sisteme de operare , dar funcţionează la fel în ambele cazuri.Un client şi un server pot comunica prin Internet printr-un tunel , conexiunea fiind criptată.

Un client X poate conţine un server X avînd displayul mai multor clienţi.Aceasta este cunoscută drept "X nesting". Clienţii open-source precum Xnest and Xephyr suportă X nesting.

Pentru a porni un program client distant cu afişaj pe serverul local, utilizatorul va deschide în mod obişnuit un terminal window şi telnet sau ssh pe clientul distant şi va seta displayul . (e.g. export DISPLAY=[user's machine]:0 on a remote machine running bash). Aplicaţia client sau shell-ul se ca conecta la serverul local, trimiţînd displayul sau sesiunea input către serverul local. În alt mod, maşina locală poate rula un mic program ajutător pentru a se conecta la maşina distantă şi a porni aplicaţia client dorită acolo.

Exemple practice de folosire a clienţilor distanţi:

  • administrarea unei maşini distante în mod grafic
  • rularea unei aplicaţii de simulare intensivă pe o maşină UNIX distantă şi afişarea rezultatelor pe un desktop local Windows
  • rularea unui software grafic pe mai multe maşini la un moment dat, controlate de un singur display , tastatură şi mouse.

Principii

În 1984, Bob Scheifler şi Jim Gettys au stabilit principiile timpurii ale X:

  • "Nu implementa o nouă funcţionalitate decât dacă un dezvoltator nu poate scrie un program real fără ea."
  • "Singurul lucru mai rău decât generalizarea dintr-un singur exemplu este generalizarea fără nici un exemplu."
  • "Dacă o problemă nu este complet înţeleasă, probabil că este mai bine să nu oferi nici o soluţie."
  • "Dacă poţi obţine 90% din efect făcânt 10% din muncă, foloseşte soluţia mai simplă".

X a păstrat în cea mai mare dintre principii. Implementarea de referinţă rămâne aproape în întregime compatibilă cu protocolul din 1987.

Interfeţe cu utilizatorul

În mod intenţionat,X nu specifică elemente grafice pentru aplicaţie tip button, menu, ferestre title bar şi aşa mai departe. În schimb software-ul utilizatorului – precum window manager, GUI widget toolkit and desktop environment, sau specific aplicaţiei graphical user interfaces – definesc toate aceste detalii. Drept urmare, nu este posibilă o interfaţă X "tipică" deoarece sînt preferate mai multe tipuri de interfeţe.

Un window manager controlează afişajul şi aparenţa ferestrelor aplicaţiilor. Aceasta poate fi o interfaţă asemănătoare Microsoft Windows sau Macintosh (exemplele includ Metacity în GNOME, KWin în KDE sau Xfwm în Xfce) sau prezintă controale radical diferite (precum tiling window manager). Managerul de ferestre poate fi simplist (e.g. twm, managerul de ferestre livrat standard în X, sau evilwm, un window manager minimalist) sau să ofere funcţionalitate unor sisteme desktop complete (e.g. Enlightenment).

Mulţi utilizatori folosesc X cu un desktop environment complet, care include un manager de ferestre,diverse aplicaţii şi o interfată consistentă. GNOME, KDE şi Xfce sînt cele mai populare medii desktop. Mediul Unix standard este Common Desktop Environment (CDE). Iniţiativa freedesktop.org se ocupă de problemele de interoperabilitate dintre desktop şi componentele necesare pentru a realiza un mediu X competitiv.

X fiind responsabil pentru interacţiunea intre diverse medii grafice , diverse keyboard shortcuts au devenit asociate cu X. Control-Alt-Backspace termină sesiuna X în mod obişnuit , în timp ce Control-Alt împreună cu tastele F1-F12 comuta sesiunea de lucrau catre terminalele virtuale UNIX. Aceasta este însă un detaliu de implementare lăsat la latitudinea serverului X şi nu este nici de departe universal;de exemplu , implementarea serverului X pentru Windows şi Macintosh nu suportă aceste combinaţii de taste.

Implementări

Implementarea de referinţă X.Org serveşte drept implementare canonică. Datorită licenţă software licenţei nerestrictive, există multe variaţii, atât libere cât şi proprietare.

Până în 2004, XFree86 a fost cea mai folosită variantă liberă pentru sistemele Unix-like, şi standardul de facto pentru dezvoltarea pe X.

Terminale X

A Network Computing Devices NCD-88k X terminal.

Un terminal X este un client care rulează pe un server X. Această arhitectură a devenit foarte populară în vederea autentificării simultane a mai multor utilizatori pe acelaşi server. Această tendinţă este conformă cu dorinţa originală a autorilor proiectului de la MIT.

Terminalele X explorează reţeaua locală folosind X Display Manager Control Protocol pentru a generea o listă de maşini disponibile unde să poate rula programe client.

Hardware dedicat pentru terminale X devine din ce în ce mai rar ; un PC sau un client avînd un X server ,dispun de aceeaşi funcţionalitate la un preţ mai redus.

Limitări şi critici

UNIX-HATERS Handbook (1994) a dedicat un întreg capitol[1], problemelor cu care se confruntă X. Why X Is Not Our Ideal Window System (1990) de Gajewska, Manasse şi McCormack au detaliat problemele din protocol , împreuna cu recomandări pentru îmbunătăţiri.

Facilităţi ale interfeţei cu utilzatorul

în mod intenţionat X nu conţine nici o specificaţie referitoare la interfaţa utilizator şi nici la comunicaţiile inter-aplicaţii.Din cauza aceasta s-au dezvoltat interfeţe foarte diferite , aplicaţiile nefuncţionînd bine împreună in 100% din cazuri. ICCCM, o specificaţie pentru interoperabilitatea programelor client are un renume de a fi greu de implementat în mod corect. Alte standarde precum Motif and CDE nu au remediat problemele. Aceasta a fost o sursă permanentă de frustrare pentru atît pentru utilizatori cît şi pentru programatori mult timp.[2] Pentru a evita problemele legate de programarea grafică,programatorii folosesc un mediu grafic sau un toolkit specific pentru a evita să lucreze direct cu ICCCM.

Separarea client-server

Competitori

Istorie

Predecesori

Origini şi dezvoltare timpurie

The Open Group

X.Org şi XFree86

Fundaţie X.Org

Viitor

Nomenclatură

Mai vezi


Referinţe

Legături externe