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” ).
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:
Î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 .
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.
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.
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.
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 .
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.
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.
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ă.
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.
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.
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 .
Î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.
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ă.
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 .
Î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ă.
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:
Î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.
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ă .
Î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]
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.
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 .
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 .
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.
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 ”).
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:
|
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 . |
Sistemul X Window | |
---|---|
Arhitectură |
|
Managerii de ferestre | |
Extensii |
|
Implementări | |
Standarde | |
Aplicații |
|
Software gratuit și open source | |
---|---|
Lucrul principal |
|
Comunitate |
|
Organizații | |
Licențe | |
Probleme | |
Alte |
|
|
grupului deschis | Standardele|
---|---|