Sistemul X Window

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită pe 27 mai 2022; verificările necesită 3 modificări .
Sistemul X Window
Tip de sistem de ferestre
Dezvoltator Fundația X.Org
Prima editie 1984
ultima versiune
Licență Licență MIT [3]
Site-ul web x.org
 Fișiere media la Wikimedia Commons

Sistemul X Window  este un sistem de ferestre care oferă instrumente și protocoale standard pentru construirea unei interfețe grafice cu utilizatorul . Folosit în sisteme de operare asemănătoare UNIX .

Sistemul X Window oferă funcțiile de bază ale mediului grafic: desenarea și mutarea ferestrelor pe ecran, interacțiunea cu dispozitive de intrare, cum ar fi, de exemplu, un mouse și o tastatură . Sistemul X Window nu specifică detaliile interfeței cu utilizatorul  - aceasta este realizată de managerii de ferestre , dintre care mulți au fost dezvoltați. Din acest motiv, aspectul programelor în mediul X Window System poate varia foarte mult în funcție de capacitățile și setările unui anumit manager de ferestre.

Sistemul X Window oferă transparență în rețea : aplicațiile grafice pot rula pe o altă mașină din rețea , iar interfața lor va fi transmisă prin rețea și afișată pe mașina locală a utilizatorului. În contextul sistemului X Window, termenii „client” și „server” au următoarele semnificații: „server” înseamnă afișajul local al utilizatorului ( server de afișare ), iar „client” este programul care utilizează acest afișaj (poate fie rulat pe un computer la distanță).

Sistemul X Window a fost dezvoltat la Massachusetts Institute of Technology (MIT) în 1984 . În februarie 2016, versiunea de protocol - X11R7.7  - a apărut în iunie 2012 . Proiectul X este condus de Fundația X.Org . Implementarea de referință (sau exemplificare) ( implementarea de referință ) a sistemului este disponibilă gratuit în condițiile licenței MIT și ale licențelor similare [4] .

Sistemul X Window este adesea denumit X11 sau pur și simplu X (în mod colocvial „xes” ).

Modelul client-server și transparența rețelei

Sistemul X Window folosește un model client-server : serverul X comunică cu diverse programe client . Serverul acceptă solicitări de afișare a graficelor (ferestre) și trimite înapoi intrarea utilizatorului (de la tastatură , mouse sau ecran tactil ). Serverul X poate fi:


Protocolul prin care serverul și clientul comunică este transparent pentru rețea : clientul și serverul pot fi pe aceeași mașină sau pe altele diferite. În special, pot lucra pe diferite arhitecturi sub diferite sisteme de operare  - rezultatul va fi același. Clientul și serverul pot comunica chiar și în siguranță prin Internet prin tunelarea conexiunii printr- o sesiune de rețea criptată .

Pentru a rula un program client la distanță care scoate grafice către un server X local, utilizatorul deschide de obicei un emulator de terminal și se conectează la mașina de la distanță folosind telnet sau SSH . Apoi lansează o comandă care specifică afișajul pe care ar trebui să fie desenate graficele (de exemplu, când se utilizează bash ). În cele din urmă, utilizatorul lansează programul client. Se va conecta la serverul X local și va afișa grafică pe ecranul local și va accepta intrare de la dispozitivele de intrare locale. O altă opțiune este să utilizați un mic program de ajutor care se conectează la o mașină de la distanță și rulează aplicația client dorită pe ea. export DISPLAY=[имя компьютера пользователя]:0

Utilizarea clienților la distanță poate fi utilă, de exemplu, în următoarele situații:

Principiile construcției lui X

În 1984, Bob Scheifler și Jim Gettys au documentat principiile timpurii pentru construirea X:

De atunci, Proiectul X a aderat în mare măsură la aceste principii. Implementarea demo este concepută pentru a fi extinsă și îmbunătățită, rămânând în același timp aproape pe deplin compatibilă cu protocolul din 1987 .

Interfețe utilizator

Sistemul X Window nu specifică în mod deliberat cum ar trebui să arate interfața de utilizator a unei aplicații - butoane, meniuri, titluri de ferestre etc. Aceste probleme sunt abordate la nivelul managerilor de ferestre , seturi de instrumente de interfață , medii desktop și la nivel de aplicatii individuale. Din acest motiv, reprezentarea vizuală a interfețelor X a evoluat enorm de-a lungul timpului.

Managerul de ferestre controlează plasarea și aspectul ferestrelor aplicației. Poate produce o interfață similară cu Microsoft Windows sau Macintosh (cum ar fi managerii de ferestre Kwin în KDE și Metacity în lucrul GNOME ) sau un stil complet diferit (cum ar fi managerii de ferestre cadru, cum ar fi Ion ). Un manager de ferestre poate fi simplu și minimalist (cum ar fi twm  , managerul de ferestre de bază care este livrat cu X) sau poate oferi funcționalități apropiate de un mediu desktop complet (cum ar fi Enlightenment ).

Mulți utilizatori folosesc X împreună cu un mediu desktop complet care include un manager de ferestre, diverse aplicații și un stil de interfață consistent. Cele mai populare medii desktop sunt GNOME și KDE . Specificația UNIX unică specifică mediul CDE . Proiectul freedesktop.org încearcă să ofere interoperabilitate între diferite medii, precum și componentele necesare pentru un desktop competitiv bazat pe X.

Implementări

Implementarea de referință de la Fundația X.Org, numită X.Org Server , este implementarea canonică a sistemului X Window. Deoarece este distribuit sub o licență foarte liberală, au apărut mai multe varietăți (atât gratuite , cât și proprietare ). Furnizorii comerciali UNIX iau adesea o implementare demonstrativă și o adaptează la propriul lor hardware , modificând-o de obicei puternic și adăugând extensii proprietare.

Până în 2004, proiectul XFree86 a fost cea mai comună variantă X pentru sistemele de operare gratuite asemănătoare UNIX. XFree86 a apărut ca un port de la X la 386 - computere personale compatibile. Până la sfârșitul anilor 1990, acest proiect a devenit principala sursă de inovație tehnică în sistemul X Window și a condus de facto dezvoltarea lui X [5] . Cu toate acestea, în 2004, XFree86 a schimbat termenii licenței, iar implementarea X.Org Server (care este un fork al XFree86, dar cu o licență gratuită) a devenit mai comună.

Deși sistemul X Window este cel mai frecvent asociat cu UNIX, serverele X pot exista și în alte medii grafice. OpenVMS , sistemul de operare Hewlett-Packard  ,  folosește versiunea X ca mediu desktop standard împreună cu un CDE cunoscut sub numele de DECwindows . Mac OS X 10.3 (Panther) de la Apple și versiunile ulterioare includ X11.app , bazat pe XFree86 4.3 și X11R6.6, cu o mai bună integrare în Mac OS X.

Microsoft Windows nu include suport pentru X, dar există numeroase implementări terță parte, atât gratuite ( Cygwin/X , Xming , X-Deep/32 , WeirdMind , WeirdX ) cât și proprietare ( Xmanager , WiredX , Exceed , X-Win32 ). Ele sunt de obicei folosite pentru a gestiona clienți X la distanță.

Pentru sistemul de operare DOS moștenit , există și o implementare a serverului X, DesqView/X , care permite chiar și acum crearea unor thin clients destul de simple .

Când sistemul X Window rulează într-un alt sistem de ferestre (cum ar fi subsistemul de ferestre Microsoft Windows sau Mac OS), acesta rulează de obicei în modul fereastră fără rădăcină .  Aceasta înseamnă că fereastra rădăcină (fondul ecranului și meniurile asociate) este gestionată de sistemul de ferestre extern, nu de sistemul X Window în sine. Cu toate acestea, sistemul de ferestre exterioare controlează și geometria ferestrelor X create în interiorul acestuia. Cu toate acestea, unele servere (cum ar fi Exceed, Xming sau Cygwin/X) pot crea și o fereastră rădăcină, caz în care clienții apar într-o fereastră separată pe sistemul extern.

X terminale

Un terminal X este o piesă hardware  dedicată care rulează un server X și servește ca un client subțire . Această arhitectură a câștigat popularitate în construirea de parcuri de terminale cu costuri reduse în care mulți utilizatori împărtășesc un singur server de aplicații mare în același timp . Această utilizare a sistemului X Window este în concordanță cu intențiile inițiale ale dezvoltatorilor de la MIT .

Terminalele X pot învăța rețeaua (în cadrul domeniului de difuzare locală ) folosind protocolul XDMCP , în timp ce compilează o listă de gazde din rețea de pe care pot lansa clienți. Managerul de afișare X trebuie să ruleze pe nodul de origine .  

În prezent, terminalele X dedicate (hardware) nu sunt utilizate pe scară largă: de obicei un computer personal cu un server X oferă aceeași funcționalitate la un cost mai mic.

Extensii

Serverul X constă dintr-un set de extensii , fiecare dintre acestea implementând anumite funcții: de la desenarea primitivelor geometrice până la accelerarea procesării și afișarea graficelor tridimensionale folosind capabilitățile echipamentelor video. Aproape fiecare dintre aceste module poate fi dezactivat sau configurat în fișierul de configurare .

DDC

VESA Display Data Channel (DDC™) este un standard pentru schimbul de informații între un monitor și o placă grafică , permițând monitorului să comunice rezoluțiile acceptate , ratele de reîmprospătare , producătorul monitorului etc. Modulul DDC acceptă versiunile 1 și 2 ale specificației DDC . În conformitate cu datele primite, setează parametrii ecranului principal sau avertizează asupra neconcordanțelor în parametrii specificați de utilizator.

RANDR

Extensia X Resize, Rotate and Reflect  este o extensie de server X care implementează funcțiile de scalare, rotire și reflectare a ferestrei rădăcină. Folosit la modificarea rezoluției, la schimbarea dinamică a monitorului (de exemplu, la trecerea de la ecranul laptopului încorporat la un monitor extern). Trimite alerte aplicațiilor care rulează despre modificările configurației ecranului.

Xrender

Extensia X Rendering oferă funcții pentru compunerea și afișarea imaginilor pe ecran. Vă permite să decupați o imagine, să aplicați o mască de culoare folosind un canal alfa , să utilizați diverse filtre, să pregătiți și să afișați informații de text și să afișați forme geometrice de bază.

forma

Extensia Shape are scopul de a îmbunătăți aspectul interfeței cu utilizatorul . Printre caracteristicile sale se numără proiectarea de umbre de către elementele de interfață pentru a crea iluzia tridimensionalității; ferestre și butoane cu margini rotunjite; capacitatea de a crea diverse forme, altele decât dreptunghiulare.

Xinerama

Extensia Xinerama permite ca mai multe monitoare să fie reprezentate ca un singur ecran. Cu acesta, puteți afișa o imagine consistentă pe ecrane mari formate din mai multe monitoare. Cu toate acestea, mulți manageri de ferestre existente în prezent nu acceptă sau nu acceptă pe deplin specificația Xinerama și, prin urmare, afișează un afișaj inadecvat atunci când se utilizează această extensie.

xv

Extensie video X  - o extensie care vă permite să accelerați ieșirea clipurilor video pe ecran folosind capacitățile plăcii grafice (sau, mai degrabă, driverul acesteia ) și, prin urmare, să reduceți sarcina procesorului central . Multe plăci grafice vă permit să scoateți imagini video în formate de codare color YUV (YUY2, I420 etc.), care sunt utilizate în standardele sistemelor de televiziune color analogice PAL , SÉCAM , NTSC , fără a le converti mai întâi în formatul de transmisie a culorilor de afișare. (RGB16 / 24 / 32), precum și transcodarea inversă. Extensia Xv oferă informații despre plăcile grafice disponibile, numărul de porturi disponibile (fiecare port poate fi utilizat doar de o aplicație), formatele de codare a culorilor acceptate. Toate aceste informații pot fi vizualizate folosind utilitarul xvinfo .

Limitări și critici ale lui X

În Manualul UNIX-HATERS ( 1994 ), un întreg capitol [6] este dedicat problemelor lui X la sfârșitul anilor 1980 și  începutul anilor 1990 . Articolul „De ce X nu este sistemul nostru ideal de ferestre” [7] ( 1990 ) discută problemele de protocol în detaliu și face recomandări pentru îmbunătățire.

Echipamente video

Astăzi, frontiera de performanță a sistemelor de calcul grafic se află în zona celor mai avansate caracteristici grafice. Producătorii de hardware implementează de obicei aceste caracteristici avansate în drivere proprietare , iar aceste drivere sunt de obicei scrise în primul rând pentru sistemele Microsoft Windows (ca fiind cele mai comune pe piața de consum). Driverele pentru multe plăci grafice mai vechi au fost proiectate invers de proiectele XFree86 și X.Org Server . Cu toate acestea, unii producători tratează dezvoltările lor video de înaltă performanță ca secrete comerciale sau ca invenții de proprietate pe care nu doresc să le dezvăluie.

Multe implementări curente ale X controlează direct hardware-ul video. Un server X instabil poate face afișajul inutilizabil chiar și atunci când sistemul de operare în sine continuă să funcționeze normal; acest lucru poate necesita o repornire a întregului sistem. Infrastructura de redare directă (DRI) este concepută pentru a rezolva această problemă.

Caracteristicile interfeței cu utilizatorul

Sistemul X Window nu include în mod intenționat specificațiile interfeței cu utilizatorul și nici multă interacțiune între programe. Din acest motiv, au apărut interfețe foarte diferite, precum și aplicații care nu funcționează întotdeauna corect între ele. Există o specificație de interacțiune cu clientul ICCCM , dar se știe că este dificil de implementat corect. Încercările ulterioare de standardizare, cum ar fi setul de instrumente Motif și CDE ,  nu au rezolvat lucrurile. Toate acestea împiedică atât utilizatorii, cât și programatorii [8] . Dezvoltatorii din zilele noastre tind să obțină un stil consistent în toate aplicațiile, concentrându-se pe un anumit mediu desktop sau set de instrumente. De asemenea, evită colaborarea directă cu ICCCM.

Protocolul X nu oferă niciun mijloc de lucru cu sunetul în pachetul oficial , dar există o extensie a protocolului pentru utilizarea sunetului într-o rețea . Suportul pentru echipamentele de sunet și reproducerea sunetelor este responsabilitatea sistemului de operare. Pe măsură ce utilizatorii au nevoie din ce în ce mai mult de sunet, această situație a dus la diferite subsisteme audio incompatibile. În trecut, mulți programatori ignorau problemele de rețea și foloseau pur și simplu API-urile de sunet locale ale sistemului de operare . Prima generație de sisteme de sunet client/server a inclus rplay și Network Audio System . Sistemele mai moderne sunt PulseAudio , esound în GNOME și aRts în KDE . A început și dezvoltarea unui nou sistem, Media Application Server .

Până de curând, sistemul X Window nu includea o soluție bună pentru imprimarea conținutului afișajelor. Mulți clienți X tipăresc în format PostScript independent de serverul X. Mecanismul Xprint a apărut pentru prima dată în X11R6.3; partea sa de client a funcționat bine, spre deosebire de multe implementări de pe partea de server. Versiunile X11R6.8 și mai sus funcționează în mod normal [9] și câștigă popularitate în seturile de instrumente UI .

Rețea

În sistemul X Window, nu există nicio modalitate de a deconecta un client sau o sesiune X de la un server și de a-l conecta la un alt server (ca în VNC ). Lucrările pentru adăugarea acestei caracteristici la X sunt deja în curs. Există soluții de soluționare ( vizualizatoare VNC :0 ) care fac ecranul actualului server X disponibil prin VNC. Sau puteți utiliza o conexiune client X la un server X proxy ( xpra , guievict , xmove , lbxproxy ).

Datele transmise prin rețea între serverul X și clienții X la distanță nu sunt criptate implicit . Un atacator poate folosi un sniffer pentru a intercepta și a citi aceste date. Pentru a preveni acest lucru, X este de obicei tunelat prin SSH . Majoritatea implementărilor SSH acceptă tunelarea aplicației X, deși uneori aceste caracteristici sunt dezactivate implicit.

Independența hardware și separarea clienților de servere afectează performanța sistemului . Transparența rețelei X necesită ca clienții și serverul să funcționeze separat unul de celălalt. În trecut, acest lucru a redus semnificativ performanța unui sistem de sine stătător - în comparație cu Microsoft Windows și Mac OS , unde subsistemul de ferestre este încorporat adânc în sistemul de operare în sine. Pentru funcționarea normală a sistemului X Window, au fost recomandate 4 până la 8 MB de RAM  - semnificativ mai mult (la acea vreme) decât pentru Windows sau Mac OS.

Conform ideologiei sistemului X Window, toată redarea elementelor ferestrei este realizată de serverul X. Dar, până în prezent, au fost create destul de multe aplicații (folosind în principal biblioteci precum GTK + și Qt) care redau elemente pe partea clientului și transferă aceste elemente redate deja ca o imagine X pe server. În același timp, cerințele de lățime de bandă sporite sunt impuse canalelor de rețea.

Versiunile actuale de Windows și Mac OS X au o separare internă a subsistemului grafic similar cu separarea client/server a lui X și au aproximativ aceleași cerințe de resurse ca și X cu KDE sau GNOME . Aceasta din urmă este o declarație foarte controversată, de exemplu, încărcarea procesorului din partea serverului X depășește semnificativ încărcarea procesorului din subsistemul grafic Windows . Consumul de memorie este, de asemenea, vizibil mai mare. Cea mai mare parte din suprasarcina din X provine acum din latența rețelei dintre client și server. Există o concepție greșită obișnuită că, atunci când se folosește X Window System la nivel local , capacitățile sale de rețea (inutile în acest caz) afectează negativ performanța. De fapt, implementările moderne ale lui X folosesc socket -uri locale și memorie partajată într-un astfel de caz (de exemplu MIT-SHM ), necesitând doar foarte puțină suprasarcină.

Concurenții X

Sistemele de operare asemănătoare UNIX folosesc aproape universal sistemul X Window pentru ieșirea grafică. Cu toate acestea, istoria cunoaște mai multe încercări de a crea o alternativă sau un înlocuitor pentru X. Printre acestea: NeWS de la Sun Microsystems , care nu a câștigat popularitate pe piață, și Display PostScript de la NeXT , care a devenit ulterior Apple Aqua pentru Mac OS X.

Au existat, de asemenea, încercări de a rezolva problemele lui X prin înlocuirea lui în întregime; inclusiv proiectele Berlin / Fresco și Y Window System . Cu toate acestea, aceste proiecte nu au primit practic nicio distribuție. În prezent, există un proiect în curs de dezvoltare care vizează reducerea cerințelor de sistem  - MicroXwin . Fundația X.org lucrează în prezent la remedierea defectelor în X11 prin aducerea la zi a subsistemelor - în special, a apărut suportul pentru cursoare multiple și, prin urmare, multitouch, iar subsistemul de intrare a fost îmbunătățit semnificativ, care a devenit cunoscut sub numele de Xinput2. , care a eliminat restricțiile privind codurile de scanare cheie . În ciuda acestui fapt, apar alternative la X11. În special, Intel este ocupat să dezvolte noul protocol Wayland , care este planificat ca alternativă la X11, dar, spre deosebire de X11, nu oferă acces de la distanță la aplicații la nivel de protocol. Dezvoltatorii Ubuntu au plănuit să treacă la Wayland în versiunea 13.04, dar ulterior și-au anunțat propria dezvoltare - Mir  - propriul subsistem grafic, care este o furcă a subsistemului grafic SurfaceFlinger din sistemul de operare Android , dezvoltat în continuare de către resursele Canonical ca proiect independent. În cea de-a 18-a ediție a distribuției Fedora , Wayland este inclus ca pachet opțional.

Alți concurenți încearcă să evite supraîncărcarea lui X lucrând direct cu hardware -ul . Exemple de astfel de proiecte sunt DirectFB și FBUI foarte mic . Mecanismul infrastructurii de redare directă (o încercare de a crea o interfață kernel de încredere pentru buffer-ul video ) poate face ca aceste proiecte să nu fie necesare.

Există și alte modalități de a obține transparența rețelei a serviciilor grafice:

Istorie

Predecesori

Înainte de X, existau mai multe sisteme de afișare raster. De la Xerox au venit Alto ( 1973 ) și Star ( 1981 ). Lisa ( 1983 ) și Macintosh ( 1984 ) au fost dezvoltate la Apple . În lumea UNIX , au existat terminalul Blit al lui Rob Pike ( 1984 ) și proiectul Andrew ( 1982 ).

X și-a primit numele ca succesor al sistemului W Window (în alfabetul latin , litera X urmează imediat litera W). Sistemul W rula sistemul de operare V . W a folosit un protocol de rețea cu suport pentru terminale și ferestre grafice, în timp ce serverul a menținut liste de afișaje.

Origini și evoluții timpurii

Ideea originală pentru sistemul X Window a apărut la Massachusetts Institute of Technology (MIT) în 1984 , ca o colaborare între Jim Gettis (din proiectul Athena ) și Bob Scheifler (de la MIT Computer Science Lab). Scheifler avea nevoie de un mediu de afișare utilizabil pentru a depana sistemul Argus. Proiectul Athena (un proiect comun între DEC , MIT și IBM pentru a oferi studenților acces ușor la computere) avea nevoie de o soluție grafică independentă de platformă pentru a reuni sistemele lor eterogene constând din produse de la diferiți furnizori. La acea vreme, proiectul Andrew de la Universitatea Carnegie Mellon lucra la un sistem de ferestre, dar nu erau disponibile licențe pentru acesta și nu existau alternative.

Proiectul a rezolvat aceste probleme prin crearea unui protocol care a suportat atât aplicații locale, cât și apelarea aplicațiilor de la distanță. La mijlocul anului 1983, portul UNIX inițial al lui W era de cinci ori mai lent decât sistemul V . În mai 1984, Scheifler a înlocuit protocolul sincron cu unul asincron, iar listele de afișare cu ieșire grafică directă. Astfel a apărut X Window System versiunea 1.x, unul dintre primele sisteme de ferestre care oferă independență hardware .

Scheifler, Gettys și Ron Newman s-au pus pe treabă, iar X a crescut rapid. Versiunea 6 a fost lansată în ianuarie 1985. DEC , care se pregătea să lanseze prima sa stație de lucru Ultrix la acea vreme , a decis că X era singurul sistem de ferestre care putea fi finalizat la timp. Inginerii DEC au portat X6 pe ecranul QVSS de pe MicroVAX .

În al doilea trimestru al anului 1985, suportul de culoare a fost implementat în X pentru a rula sub DEC VAXstation -II/GPX. Această versiune a devenit cunoscută ca versiunea 9. Anterior, MIT a acordat licență X6 unor grupuri terțe pentru o taxă. Cu toate acestea, acum s-a decis să se distribuie gratuit X9 și versiunile viitoare  sub ceea ce este cunoscut sub numele de licență MIT . X9 a apărut în septembrie 1985.

Un grup de la Universitatea Brown a portat versiunea 9 la IBM RT/PC , dar problemele de citire a datelor neordonate pe RT au dus la o schimbare incompatibilă a protocolului, ducând la lansarea versiunii 10 la sfârșitul anului 1985. Până în 1986, au început să apară cereri. de la organizații externe pentru utilizarea X. X10R2 a fost lansat în ianuarie 1986, X10R3 în februarie. X10R3 a fost prima versiune care a fost adoptată pe scară largă; DEC și Hewlett-Packard au lansat produse bazate pe acesta. Alte grupuri au portat X10 la Apollo , la stațiile de lucru Sun și chiar la IBM PC AT . În același timp, Autofact a demonstrat prima aplicație comercială bazată pe X, un sistem de inginerie care rulează pe VAX și este afișat pe computerele personale cu un server X. Cea mai recentă versiune a X10 - X10R4 - a apărut în decembrie 1986.

Deși X10 avea unele funcționalități interesante și puternice, a devenit clar că protocolul X trebuia să fie mai puțin dependent de hardware înainte ca sistemul X Window să devină prea răspândit. Cu toate acestea, MIT singur nu ar fi capabil să facă față unei astfel de schimbări majore de protocol. Smokey Wallace de la laboratorul DEC WSL și Jim Gettys au sugerat ca DEC WSL să dezvolte X11 și să-l facă disponibil gratuit în aceleași condiții ca și X9 și X10. Acest proces a început în mai 1986; protocolul era gata în august. Testarea alfa a software-ului a început în februarie 1987 ; testare beta  - în mai. În cele din urmă, pe 15 septembrie 1987, X11 a fost lansat oficial.

Designul protocolului X11, care a fost condus de Scheifler, a fost discutat pe larg pe listele de corespondență deschise ale Internetului timpuriu . Astfel, X poate fi considerat unul dintre primele proiecte de software liber la scară largă .

Consorțiul X MIT și Consorțiul X, Inc.

În 1987 , pe măsură ce succesul lui X11 a devenit evident, MIT a dorit să renunțe la controlul suplimentar asupra proiectului X. Cu toate acestea, la o întâlnire a nouă vânzători în iunie 1987, vânzătorii au spus MIT că este nevoie de o parte neutră pentru a preveni dezintegrarea lui X. piața. În ianuarie 1988, a fost format un grup non-profit numit MIT X Consortium ( MIT X Consortium ). Scopul său a fost să gestioneze dezvoltarea ulterioară a lui X într-o atmosferă neutră, ținând cont atât de interesele comerciale, cât și de cele educaționale. Scheifler a devenit directorul consorțiului. Jim Fulton și Keith Packard s-au alăturat ca dezvoltatori seniori în ianuarie și, respectiv, martie 1988. În același timp, Jim a lucrat în principal la Xlib , fonturi , manageri de ferestre și utilitare , iar Keith s-a angajat în reelaborarea serverului. Donna Converse și Chris Peterson s-au alăturat mai târziu în acel an; Accentul lor s-a concentrat pe trusele de instrumente și seturile de interfață și au lucrat îndeaproape cu Ralph Swick de la proiectul Athena al MIT . Consorțiul MIT X a lansat câteva actualizări semnificative pentru X11; primul dintre acestea (X11R2) a apărut în februarie 1988.

În 1993, a fost înființat succesorul MIT X Consortium, organizația nonprofit X Consortium, Inc. Sub conducerea ei , pe 16 mai 1994, a fost lansată versiunea X11R6. În 1995, corporația a preluat dezvoltarea setului de instrumente Motif și a mediului CDE pentru sistemele UNIX . Consorțiul X s-a desființat la sfârșitul anului 1996 odată cu lansarea celei mai recente versiuni, X11R6.3, lăsând în urmă o influență comercială crescândă în dezvoltare. [11] [12]

Grupul deschis

La mijlocul anului 1997, X Consortium a predat conducerea proiectului X către The Open Group , format în 1996 din fuziunea Open Software Foundation și X/Open .

Open Group a lansat X11R6.4 la începutul anului 1998 . Cu această versiune, s-a decis să renunțe la licența liberală tradițională , deoarece The Open Group dorea să ofere sprijin financiar pentru dezvoltarea lui X. [13] Noii termeni au împiedicat multe proiecte (cum ar fi XFree86 ) și chiar unii vânzători comerciali să accepte această versiune. După ce XFree86 a amenințat cu bifurcația [14] , The Open Group a schimbat distribuția X11R6.4 înapoi la o licență tradițională în septembrie 1998. [15] Cea mai recentă versiune sub The Open Group a fost patch-ul 3 X11R6.4.

X.Org și XFree86

Proiectul XFree86 a apărut în 1992 de pe serverul X386 pentru computere compatibile cu PC-uri IBM . X386 a fost scris de Thomas Roell și Mark Snitily, donat MIT Consortium X de Snitily Graphics Consulting Services (SGCS) și încorporat în X11R5 în 1991 . De-a lungul timpului, XFree86 a evoluat de la doar un port de sine stătător al X la implementarea principală și cea mai populară a sistemului și a devenit liderul de facto în dezvoltarea X. [16]

În mai 1999, X.Org a fost fondată de The Open Group . X.Org a controlat lansarea versiunilor X11R6.5.1 și mai mari. În acest moment, dezvoltarea lui X s-a oprit practic [17] ; inovația tehnică a avut loc în principal în cadrul proiectului XFree86 [18] . În 1999, echipa XFree86 a intrat în X.Org ca membru de onoare [19] , încurajată de diverse companii de hardware [20] interesate să folosească XFree86 cu Linux și în statutul său de cea mai populară versiune a X.

X.Org și XFree86 au început să discute despre o reorganizare pentru a asigura dezvoltarea deplină a X [21] [22] [23] . Jim Gettis a făcut presiuni pentru un model de dezvoltare deschis din cel puțin 2000 [12] . Gettys, Packard și alții au început să discute pe larg despre schimbările care ar fi necesare pentru a se îndrepta către o dezvoltare X open source eficientă.

Până în 2003 , în timp ce popularitatea Linux (și, prin urmare, prevalența lui X) era în creștere, X.Org era inactiv [24] și majoritatea dezvoltării a avut loc în XFree86. Proiectul XFree86 suferea de un model de dezvoltare prea închis: programatorii nu puteau obține acces de scriere la depozitul CVS , iar furnizorii trebuiau să mențină seturi extinse de patch-uri [25] . În martie 2003, organizația XFree86 l-a expulzat pe Keith Packard , care s-a alăturat XFree86 după prăbușirea consorțiului MIT X; acest lucru s-a făcut într-un mediu foarte neprietenos [26] [27] [28] .

În cele din urmă, în februarie 2004, proiectul XFree86 a lansat versiunea 4.4 sub o licență mai limitată: a adăugat o clauză similară cu clauza publicitară din licența originală BSD .  Multe proiecte care s-au bazat pe X au considerat o astfel de licență inacceptabilă. FSF și Debian au considerat că clauza adăugată este incompatibilă cu termenii GNU GPL [29] . Alte grupuri (cum ar fi OpenBSD ) au considerat că impunerea unor restricții suplimentare de licențiere a fost împotriva spiritului original al lui X. Din cauza acestor probleme de licențiere, natura închisă a lui XFree86 a creat atmosfera potrivită pentru un furk .

Fundația X.Org

La începutul anului 2004, reprezentanții X.Org și freedesktop.org au fondat Fundația X.Org . Open Group i-a dat controlul asupra numelui de domeniu x.org . Acesta a fost un schimbător de joc pentru dezvoltarea X. În timp ce administratorii X din 1988 (inclusiv precedentul X.Org) erau organizații de furnizori, Fundația X.Org a fost fondată de dezvoltatorii de software înșiși și a folosit un model de dezvoltare deschis bazat pe contribuțiile de la exteriorul. Calitatea de membru a fost deschisă persoanelor fizice, iar calitatea de membru corporativ este prezentată sub formă de sponsorizare. Fundația X.Org este susținută în prezent de mai multe corporații mari, cum ar fi Hewlett-Packard și Sun Microsystems .

Fundația a lansat X11R6.7 - X.Org Server  - în aprilie 2004. Această versiune a fost bazată pe XFree86 4.4RC2 (ultima versiune a XFree86 lansată sub vechea licență ), cu modificări X11R6.6 adăugate. Prin adoptarea unui model de dezvoltare deschis și menținând compatibilitatea GNU GPL , proiectul a atras mulți foști dezvoltatori XFree86 [29] .

X11R6.8 a fost lansat în septembrie 2004. Acesta a inclus inovații semnificative, inclusiv suport preliminar pentru ferestre transparente și alte efecte vizuale complexe, lupe de ecran și miniaturi și integrare cu sisteme de afișare 3D (cum ar fi proiectul Sun's Looking Glass și proiectul Croquet ). Politica de aspect este furnizată de aplicații terțe numite manageri compoziți . 

Evoluții ulterioare

Datorită Fundației X.Org și freedesktop.org , dezvoltarea sistemului X Window s-a accelerat din nou. Dezvoltatorii plănuiesc să lanseze versiunile actuale și viitoare ca produse gata de utilizare și nu doar ca bază pentru produsele construite de furnizori.

Pe 21 decembrie 2005, fundația a lansat [30] X11R6.9, un arbore sursă monolitic pentru sistemele moștenite, și X11R7.0, același cod sursă împărțit în module independente care pot fi menținute ca proiecte separate [31] . Versiunea X11R7.1 a fost lansată pe 22 mai 2006, la aproximativ patru luni după 7.0, și include îmbunătățiri semnificative [32] .

În viitor, serverul X este planificat să acceseze hardware video exclusiv prin OpenGL și Direct Rendering Infrastructure (DRI) pe combinații de hardware și sisteme de operare care acceptă un astfel de acces. Infrastructura DRI a apărut pentru prima dată în XFree86 versiunea 4.0 și a devenit standard în X11R6.7 și mai târziu [33] . Multe sisteme de operare au început să adauge suport pentru nucleu . Lucrările în acest domeniu sunt în desfășurare.

Titlu

Experții în computer prescurtează adesea numele complet „X Window System” la „X11” sau pur și simplu „X”. Termenul „X Windows” (în felul „ GNU/Linux ” sau „ Microsoft Windows ”) este oficial depreciat și considerat incorect, deși a fost folosit pe scară largă încă de la începutul istoriei lui X, inclusiv în mod deliberat pentru efect literar ( de exemplu, în cartea „ Manualul UNIX -HATERS ”).

Istoricul lansărilor

Versiune Data de lansare Schimbari majore
X1 iunie 1984 Numele „X” este folosit pentru prima dată. Modificări fundamentale care deosebesc produsul de W .
X6 ianuarie 1985 Prima versiune licențiată mai multor companii externe.
X9 septembrie 1985 Suport de culoare. Prima lansare sub licența MIT .
X10 sfârşitul anului 1985 IBM RT/PC , AT (sub DOS ) și altele.
X10R2 ianuarie 1986
X10R3 februarie 1986 Prima lansare în afara MIT . uwm devine managerul implicit de ferestre .
X10R4 decembrie 1986 Cea mai recentă versiune de X10.
X11 15 septembrie 1987 Prima lansare a protocolului actual .
X11R2 februarie 1988 Prima lansare în cadrul MIT X Consortium. [34]
X11R3 25 octombrie 1988 XDM .
X11R4 22 decembrie 1989 XDMCP ; twm devine managerul de ferestre standard; îmbunătățiri în aplicații; Extensie de formă; fonturi noi .
X11R5 5 septembrie 1991 PEX ; Xcms (gestionarea culorilor); server de fonturi; X386; extensia xvideo .
X11R6 16 mai 1994 ICCCM versiunea 2.0; Schimb inter-client; Managementul sesiunii X; X Extensie de sincronizare; X Extensie imagine; extensia XTEST; intrare X; X Cereri mari; XC-MISC; modificări în XFree86 .
X11R6.1 14 martie 1996 Extensie X Double Buffer; extensie tastatură X; X Înregistrare extensie.
X11R6.2
X11R6.3 (Broadway)
23 decembrie 1996 funcționalitate WWW ; LBX . Ultima versiune condusă de X Consortium. X11R6.2 este un subset al lui X11R6.3 în care singurele diferențe față de R6.1 sunt implementarea Xprint și Xlib de scriere verticală și suport pentru caractere definite de utilizator. [35]
X11R6.4 31 martie 1998 Xinerama . [36]
X11R6.5 lansare internă X.Org ; nu sunt puse la dispoziția publicului larg.
X11R6.5.1 20 august 2000
X11R6.6 4 aprilie 2001 Remedieri de erori ; modificări în XFree86.
X11R6.7.0 6 aprilie 2004 Prima versiune a serverului X.Org de către Fundația X.Org ca un fork al XFree86 4.4 RC2. Motivul principal pentru aceasta a fost dezacordul unor participanți la proiect cu noua licență XFree86 4.4. Mulți dintre foștii dezvoltatori XFree86 s-au alăturat ulterior proiectului X.Org Server.

Eliminarea XIE, PEX și libxml2. [37]

X11R6.8.0 8 septembrie 2004 Transparența ferestrei; XDamage; Distribuit Multihead X; Xfixuri ; Compozit; xevie.
X11R6.8.1 17 septembrie 2004 Remedierea unei vulnerabilități în libxpm .
X11R6.8.2 10 februarie 2005 Remediați erorile, actualizați driverele .
X11R6.9
X11R7.0
21 decembrie 2005 Pentru prima dată, a fost adăugat un sistem de construcție modular. 6.9.0 încă folosea vechiul sistem de compilare Imake , în timp ce sistemele 7.0.0 foloseau deja Autotools . Ca urmare, dintr-un set de coduri sursă s-au obținut o versiune modulară 7.0 și o versiune monolitică 6.9.

EXA , refactorizare semnificativă a codului . [38]

X11R7.1 22 mai 2006 îmbunătățiri EXA; integrare Kdrive ; AIGLX ; îmbunătățiri ale suportului pentru diferite sisteme de operare și platforme. [39]
X11R7.2 15 februarie 2007 Îndepărtarea LBX [40] și a driverului de tastatură încorporat, X-ACE , XCB , îmbunătățiri AutoConfig.
X11R7.3 6 septembrie 2007 X11R7.3: XServer 1.4, detectarea automată a dispozitivului HAL , utilizarea DTrace, suport pentru domeniul PCI .

Server Xorg 1.4 - vezi Server14Branch pentru mai multe detalii. evidenția:

  • RandR 1.2: RandR 1.2 oferă ieșire hotplug, precum și reconfigurare ieșire din mers și comutare de mod.
  • Conectare la cald de intrare: conectarea la cald de intrare permite conectarea la cald a dispozitivelor de intrare și, de asemenea, adaugă suport îmbunătățit pentru ecrane tactile și tablete, fie prin HAL, fie prin D-Bus.
  • KDrive: Au fost aduse numeroase îmbunătățiri la baza de cod KDrive, inclusiv un suport mai bun pentru mai multe dispozitive de intrare.
  • DTrace: Când rulează pe OpenSolaris, suportul DTrace este disponibil pe serverul X, permițând contabilizarea detaliată a operațiunilor din interiorul serverului.
  • EXA: S-a făcut multă muncă pe cadrul EXA pentru a-l face mai utilizabil.
  • Aplicații noi: xbacklight
  • Drivere noi: xf86-video-glide, xf86-video-vermilion
  • Pagini de manual noi pentru API-uri: libXinerama, libXcomposite, funcții XKB în libX11, funcții Xtest în libXtst
  • Suport pentru directoarele de catalog de fonturi în calea fonturilor
  • xdm: S-a adăugat suport Xft [41] .
X11R7.4 23 septembrie 2008 XServer 1.5.1, XACE , reluare PCI, optimizări EXA, _X_EXPORT, GLX 1.4, pornire și oprire mai rapidă. [42]
X11R7.5 26 octombrie 2009 XServer 1.7.0 [43] , Xi 2, XGE, suport E - EDID , RandR 1.3, MPX , accelerare previzibilă a indicatorului, utilizarea managerului de memorie DRI2 , utilizarea SELinux , eliminarea bibliotecilor și extensiilor învechite.
X11R7.6 20 decembrie 2010 [44] XServer 1.9.0, trecerea de la gestionarea dispozitivelor de la subsistemul HAL (Hardware Abstraction Layer) la utilizarea bibliotecii udev, capacitatea de a crea fișiere de configurare pentru dispozitive individuale, ABI-ul interfețelor responsabile pentru I/O video s-a schimbat și unele prelungiri [45] [46] .
X11R7.7 6 iunie 2012 [47] XServer 1.12, suport multi -touch , proces îmbunătățit de compilare pentru documentația din DocBook XML și suport inițial pentru GLX și XKB în XCB .

Vezi și

Note

  1. http://www.x.org/wiki/Releases/7.7/
  2. https://www.x.org/releases/current/
  3. https://x.org
  4. Licențe  . _ Fundația X.Org (martie 2004). Consultat la 29 iunie 2006. Arhivat din original la 29 ianuarie 2011.
  5. Jim Gettys . Scrisoare către forumul XFree86 . Data accesului: 4 ianuarie 2007. Arhivat din original la 29 ianuarie 2011.
  6. Don Hopkins. Dezastrul X-Windows  . Manualul UNIX-HATERS . Consultat la 29 iunie 2006. Arhivat din original la 29 ianuarie 2011.
  7. Hania Jajewska, Mark Menes, Joel McCormack. De ce X nu este sistemul nostru de ferestre ideal  // Software - Practică și experiență. - 1990. - T. 20 , nr S2 . Arhivat din original pe 10 septembrie 2014.
  8. Re: X este dureros . Consultat la 29 iunie 2006. Arhivat din original pe 6 iulie 2017.
  9. Xprint Întrebări frecvente  . Consultat la 29 iunie 2006. Arhivat din original la 29 ianuarie 2011.
  10. airWRX - Terminal SVG . Consultat la 29 iunie 2006. Arhivat din original pe 17 decembrie 2007.
  11. mako. Finanțarea proiectelor de software liber de voluntariat  (engleză) (15 iunie 2005). Consultat la 29 iunie 2006. Arhivat din original la 29 ianuarie 2011.
  12. 1 2 Jim Gettys . Lecții învățate despre Open Source  (engleză) (2000). Consultat la 29 iunie 2006. Arhivat din original la 29 ianuarie 2011.
  13. Shaleh. xstate  (engleză)  (link indisponibil) (2 aprilie 1998). Consultat la 29 iunie 2006. Arhivat din original la 1 aprilie 2004.
  14. Matthew Arnison. Mijloacele pentru un X pentru Linux: un interviu cu David Dawes de la XFree86.org  (engleză)  (link nu este disponibil) (iunie 1999). Consultat la 29 iunie 2006. Arhivat din original la 18 aprilie 2002.
  15. Christopher Brown. X11R6.4 Exemplu de modificări și preocupări privind implementarea  (  link inaccesibil) . Consultat la 29 iunie 2006. Arhivat din original pe 11 august 2002.
  16. [https://web.archive.org/web/20070930185501/http://www.xfree86.org/pipermail/forum/2004-February/003945.html Arhivat la 30 septembrie 2007 la Wayback Machine [forum] Re : Anunț: Modificare la licența de bază XFree86™] Copie arhivată (downlink) . Consultat la 29 iunie 2006. Arhivat din original pe 7 septembrie 2005. 
  17. Robert Mitchell. Întrebări și răspunsuri:  factorul X. ComputerWorld (4 februarie 2002). Consultat la 29 iunie 2006. Arhivat din original pe 23 august 2011.
  18. Keith Packard . Evoluția arhitecturii X Server  (engleză) (1999). Consultat la 29 iunie 2006. Arhivat din original la 29 ianuarie 2011.
  19. [forum] A Call For Open Governance Of X Development Arhivat din original pe 12 februarie 2005.
  20. XFree86 se alătură X.Org ca  membru de onoare . Slashdot (1 decembrie 1999). Consultat la 29 iunie 2006. Arhivat din original pe 23 august 2011.
  21. [forum] A Call For Open Governance Of X Development Arhivat 22 decembrie 2004.
  22. [forum] A Call For Open Governance Of X Development Arhivat din original pe 6 ianuarie 2005.
  23. [forum] Discuting issues Arhivat 27 decembrie 2004.
  24. [forum] O altă transcriere a teleconferinței editată parțial Arhivată din original pe 12 februarie 2005.
  25. mharris. Jurnal pentru mharris  (engleză) (9 ianuarie 2003). Consultat la 29 iunie 2006. Arhivat din original la 29 ianuarie 2011.
  26. [forum] Invitație pentru discuții publice despre viitorul lui X Arhivat 12 februarie 2005.
  27. [forum] A Call For Open Governance Of X Development Arhivat din original pe 12 februarie 2005.
  28. [forum] Note de la o teleconferință desfășurată 2003-3-27 Arhivată din original pe 12 februarie 2005.
  29. 1 2 David Wheeler . The Cautionary Tale of XFree86  (engleză)  (downlink) . Faceți-vă software-ul open source compatibil GPL. Or Else (16 februarie 2005). Consultat la 29 iunie 2006. Arhivat din original la 23 aprilie 2002.
  30. X11R6.9 și X11R7.0 Lansate oficial  ( 21 decembrie 2005). Consultat la 29 iunie 2006. Arhivat din original pe 23 august 2011.
  31. Paul Anderson, Alan Coopersmith, Egbert Eyck, Adam Jackson, Kevin Martin, Keith Packard. Propunere de modularizare  (engleză) (2005). Consultat la 29 iunie 2006. Arhivat din original la 29 ianuarie 2011.
  32. Modificări propuse pentru  X11R7.1 . Consultat la 29 iunie 2006. Arhivat din original la 29 ianuarie 2011.
  33. Keith Packard . Getting X Off The Hardware  (engleză) (2004). Consultat la 29 iunie 2006. Arhivat din original la 29 ianuarie 2011.
  34. ↑ Utilizatorul X Window HOWTO : Noțiuni introductive  . Consultat la 29 iunie 2006. Arhivat din original la 29 ianuarie 2011.
  35. ↑ XFree86 și X11R6.3  . Note de lansare pentru XFree86 3.3.6 . Proiectul XFree86 (31 decembrie 1999). Consultat la 29 iunie 2006. Arhivat din original la 29 ianuarie 2011.
  36. ↑ X Comunicat de presă - X11R6.4  . The Open Group (31 martie 1998). Consultat la 29 iunie 2006. Arhivat din original la 29 ianuarie 2011.
  37. Fundația X.Org lansează X Window System  X11R6.7 . LWN (7 aprilie 2004). Consultat la 29 iunie 2006. Arhivat din original la 29 ianuarie 2011.
  38. ChangesSince68  . _ X.Org Wiki. Consultat la 29 iunie 2006. Arhivat din original pe 23 august 2011.
  39. Note de lansare pentru  X11R7.1 . Fundația X.Org (22 martie 2006). Consultat la 29 iunie 2006. Arhivat din original pe 23 august 2011.
  40. ChangesForX11R72  . _ X.Org Wiki. Consultat la 15 februarie 2007. Arhivat din original pe 23 august 2011.
  41. 7.3  Note de lansare . Fundația X.Org. Consultat la 13 decembrie 2007. Arhivat din original la 23 august 2011.
  42. Fundația X.Org lansează X7.4 . Consultat la 14 februarie 2009. Arhivat din original la 1 august 2009.
  43. Fundația X.Org lansează X7.5 . Consultat la 9 noiembrie 2009. Arhivat din original pe 6 iulie 2010.
  44. X.Org Wiki - Other/Press/X11R76Released . Consultat la 1 septembrie 2011. Arhivat din original pe 24 decembrie 2010.
  45. X.Org Wiki - Server18Branch . Consultat la 1 septembrie 2011. Arhivat din original pe 26 mai 2011.
  46. X.Org Wiki - Server19Branch . Consultat la 1 septembrie 2011. Arhivat din original la 31 august 2011.
  47. [ANUNȚARE] X11R7.7 . Preluat la 7 iunie 2012. Arhivat din original la 14 august 2012.

Literatură

Link -uri

Implementări notabile
  1. Internet Archive Search: subiect: „X Window System (Computer system)” . archive.org. Preluat: 24 decembrie 2016.