X vinduessystem | |
---|---|
Type | vinduessystem |
Udvikler | X.Org Fonden |
Første udgave | 1984 |
nyeste version | |
Licens | MIT-licens [3] |
Internet side | x.org |
Mediefiler på Wikimedia Commons |
X Window System er et vinduessystem, der giver standardværktøjer og protokoller til opbygning af en grafisk brugergrænseflade . Anvendes i UNIX-lignende operativsystemer .
X Window System giver de grundlæggende funktioner i det grafiske miljø: tegning og flytning af vinduer på skærmen, interaktion med input-enheder som f.eks. en mus og et tastatur . X Window System specificerer ikke detaljerne i brugergrænsefladen - det er udført af vinduesadministratorer , hvoraf mange er udviklet. Af denne grund kan udseendet af programmer i X Window System-miljøet variere meget afhængigt af mulighederne og indstillingerne for en bestemt vinduesadministrator.
X Window System giver netværksgennemsigtighed : grafiske applikationer kan køre på en anden maskine på netværket , og deres grænseflade vil blive transmitteret over netværket og vist på brugerens lokale maskine. I forbindelse med X Window System har udtrykkene "klient" og "server" følgende betydninger: "server" betyder brugerens lokale skærm ( displayserver ), og "klient" er det program, der bruger denne skærm (det kan køres på en fjerncomputer).
X Window System blev udviklet ved Massachusetts Institute of Technology (MIT) i 1984 . Fra februar 2016 udkom protokolversionen - X11R7.7 - i juni 2012 . Projekt X ledes af X.Org Foundation . Referencen (eller eksemplarisk) implementering ( referenceimplementering ) af systemet er frit tilgængelig under vilkårene i MIT-licensen og lignende licenser [4] .
X Window System omtales ofte som X11 eller blot X (i daglig tale "xes" ).
X Window System bruger en klient-server- model: X-serveren kommunikerer med forskellige klientprogrammer . Serveren accepterer anmodninger om at vise grafik (windows) og sender brugerinput tilbage (fra tastaturet , musen eller berøringsskærmen ). X-serveren kan være:
Den protokol , som serveren og klienten kommunikerer med, er gennemsigtig for netværket : klienten og serveren kan være på den samme maskine eller på forskellige. De kan især arbejde på forskellige arkitekturer under forskellige operativsystemer – resultatet bliver det samme. Klienten og serveren kan endda kommunikere sikkert over internettet ved at tunnelere forbindelsen gennem en krypteret netværkssession.
For at køre et eksternt klientprogram, der udsender grafik til en lokal X-server, åbner brugeren typisk en terminalemulator og opretter forbindelse til fjernmaskinen ved hjælp af telnet eller SSH . Den udsender derefter en kommando, der angiver det display, som grafikken skal tegnes til (f.eks. når du bruger bash ). Til sidst starter brugeren klientprogrammet. Den vil oprette forbindelse til den lokale X-server og vise grafik på den lokale skærm og acceptere input fra lokale inputenheder. En anden mulighed er at bruge et lille hjælpeprogram, der opretter forbindelse til en fjernmaskine og kører den ønskede klientapplikation på den. export DISPLAY=[имя компьютера пользователя]:0
Brug af fjernklienter kan være nyttig, for eksempel i følgende situationer:
I 1984 dokumenterede Bob Scheifler og Jim Gettys de tidlige principper for at bygge X:
Siden da har Project X stort set fulgt disse principper. Demoimplementeringen er designet til at blive udvidet og forbedret, mens den forbliver næsten fuldt kompatibel med 1987 -protokollen .
X Window System specificerer bevidst ikke, hvordan brugergrænsefladen for en applikation skal se ud - knapper, menuer, vinduestitler osv. Disse problemer behandles på niveau med vinduesadministratorer , grænsefladeværktøjssæt , skrivebordsmiljøer og på niveau med individuelle ansøgninger. Af denne grund har den visuelle repræsentation af X-grænseflader udviklet sig enormt over tid.
Vindueshåndteringen styrer placeringen og udseendet af programvinduer. Det kan producere en grænseflade, der ligner Microsoft Windows eller Macintosh (såsom Kwin-vindueadministratorerne i KDE og Metacity i GNOME -arbejde ), eller en helt anden stil (såsom rammevindueadministratorer såsom Ion ). En vindueshåndtering kan være enkel og minimalistisk (som twm , den grundlæggende vindueshåndtering, der leveres med X), eller den kan tilbyde funktionalitet tæt på et komplet skrivebordsmiljø (som Enlightenment ).
Mange brugere bruger X sammen med et komplet skrivebordsmiljø, der inkluderer en vindueshåndtering, forskellige applikationer og en ensartet grænsefladestil. De mest populære skrivebordsmiljøer er GNOME og KDE . Single UNIX Specification specificerer CDE - miljøet . Freedesktop.org - projektet forsøger at give interoperabilitet mellem forskellige miljøer såvel som de komponenter, der kræves til et konkurrencedygtigt X-baseret skrivebord.
Referenceimplementeringen fra X.Org Foundation, kaldet X.Org Server , er den kanoniske implementering af X Window System. Da det distribueres under en meget liberal licens , er der dukket flere varianter af det op (både gratis og proprietært ). Kommercielle UNIX- leverandører tager ofte en demoimplementering og tilpasser den til deres egen hardware , normalt kraftigt modificerede den og tilføjer proprietære udvidelser.
Indtil 2004 var XFree86 - projektet den mest almindelige X-variant for gratis UNIX-lignende operativsystemer. XFree86 opstod som en port af X til 386 - kompatible personlige computere. I slutningen af 1990'erne var dette projekt blevet hovedkilden til teknisk innovation i X Window System og førte de facto udviklingen af X [5] . I 2004 ændrede XFree86 dog licensvilkårene, og X.Org Server-implementeringen (som er en forgrening af XFree86, men med en gratis licens) blev mere almindelig.
Selvom X Window System oftest er forbundet med UNIX, kan X-servere også eksistere i andre grafiske miljøer. OpenVMS , Hewlett-Packards operativsystem, bruger version X som sit standard skrivebordsmiljø sammen med en CDE kendt som DECwindows . Apples Mac OS X 10.3 (Panther) og senere inkluderer X11.app , baseret på XFree86 4.3 og X11R6.6, med bedre integration i Mac OS X.
Microsoft Windows inkluderer ikke understøttelse af X, men der findes adskillige tredjepartsimplementeringer, både gratis ( Cygwin/X , Xming , X-Deep/32 , WeirdMind , WeirdX ) og proprietære ( Xmanager , WiredX , Exceed , X-Win32 ). De bruges typisk til at administrere eksterne X-klienter.
For det ældre DOS -operativsystem er der også en implementering af X-serveren, DesqView/X , som selv nu tillader oprettelsen af ret simple tynde klienter .
Når X Window System kører inde i et andet vinduessystem (såsom Microsoft Windows eller Mac OS vinduesundersystemet), kører det normalt i rodløs vinduestilstand . Det betyder, at rodvinduet (skærmbaggrunden og tilhørende menuer) styres af det eksterne vinduessystem, ikke af selve X Window System. Det ydre vinduessystem styrer dog også geometrien af de X-vinduer, der er skabt inde i det. Nogle servere (såsom Exceed, Xming eller Cygwin/X) kan dog også oprette et rodvindue, i hvilket tilfælde klienterne vises i et separat vindue på det eksterne system.
En X-terminal er et dedikeret stykke hardware , der kører en X-server og fungerer som en tynd klient . Denne arkitektur har vundet popularitet i at bygge billige terminalparker, hvor mange brugere deler en enkelt stor applikationsserver på samme tid . Denne brug af X Window System er godt i tråd med de oprindelige intentioner hos udviklerne på MIT .
X-terminaler kan lære netværket (inden for det lokale broadcast-domæne ) ved hjælp af XDMCP -protokollen , mens de kompilerer en liste over værter på netværket, hvorfra de kan starte klienter. X display manager skal køre på oprindelsesknuden .
I øjeblikket er dedikerede (hardware) X-terminaler ikke udbredt: normalt giver en personlig computer med en X-server den samme funktionalitet til en lavere pris.
X-serveren består af et sæt udvidelser , som hver implementerer visse funktioner: fra at tegne geometriske primitiver til at fremskynde behandlingen og vise tredimensionel grafik ved hjælp af videoudstyrets muligheder. Næsten alle disse moduler kan deaktiveres eller konfigureres i konfigurationsfilen .
VESA Display Data Channel (DDC™) er en standard til udveksling af information mellem en skærm og et grafikkort , hvilket gør det muligt for skærmen at kommunikere understøttede opløsninger , opdateringshastigheder , skærmproducent osv. DDC-modulet understøtter version 1 og 2 af DDC-specifikationen . I overensstemmelse med de modtagne data indstiller den hovedskærmens parametre eller advarer om uoverensstemmelser i de parametre, der er angivet af brugeren.
X Resize, Rotate and Reflect Extension er en X-serverudvidelse, der implementerer funktionerne skalering, rotation og reflektering af rodvinduet. Bruges ved ændring af opløsning, ved dynamisk ændring af skærm (f.eks. ved skift fra den indbyggede bærbare skærm til en ekstern skærm). Sender advarsler til kørende applikationer om skærmkonfigurationsændringer.
X Rendering Extension giver funktioner til sammensætning og visning af billeder på skærmen. Giver dig mulighed for at beskære et billede, anvende en farvemaske ved hjælp af en alfakanal , bruge forskellige filtre, forberede og vise tekstoplysninger og vise grundlæggende geometriske former.
Shape - udvidelsen er beregnet til at forbedre udseendet af brugergrænsefladen . Blandt dets funktioner er skyggekastning af grænsefladeelementer for at skabe illusionen af tredimensionalitet; vinduer og knapper med afrundede kanter; evnen til at skabe andre former end rektangulære.
Xinerama - udvidelsen tillader flere skærme at blive repræsenteret som en enkelt skærm. Med det kan du vise et ensartet billede på store skærme, der består af mange skærme. Men mange eksisterende vinduesadministratorer understøtter ikke eller understøtter ikke fuldt ud Xinerama-specifikationen og viser derfor en utilstrækkelig visning, når du bruger denne udvidelse.
X-videoudvidelse - en udvidelse, der giver dig mulighed for at fremskynde outputtet af videoklip til skærmen ved hjælp af grafikkortets (eller rettere, dets driver ) funktioner og derved reducere belastningen på den centrale processor . Mange grafikkort giver dig mulighed for at udsende videobilleder i YUV -farvekodningsformater (YUY2, I420 osv.), som bruges i standarderne for PAL , SÉCAM , NTSC analoge farvefjernsynssystemer uden først at konvertere dem til displayets farvetransmissionsformat (RGB16 / 24 / 32), samt omvendt omkodning. Xv-udvidelsen giver information om tilgængelige grafikkort, antallet af tilgængelige porte (hver port kan kun bruges af et program), understøttede farvekodningsformater. Alle disse oplysninger kan ses ved hjælp af værktøjet . xvinfo
I The UNIX-HATERS Handbook ( 1994 ) er et helt kapitel [6] viet til problemerne med X i slutningen af 1980'erne og begyndelsen af 1990'erne . Artiklen "Why X Is Not Our Ideal Window System" [7] ( 1990 ) diskuterer protokolproblemer i detaljer og giver anbefalinger til forbedringer.
I dag ligger præstationsgrænsen for grafiske computersystemer inden for de mest avancerede grafikfunktioner. Hardwareproducenter implementerer typisk disse avancerede funktioner i proprietære drivere , og disse drivere er normalt primært skrevet til Microsoft Windows-systemer (som de mest almindelige på forbrugermarkedet). Drivere til mange ældre grafikkort er blevet omvendt udviklet af XFree86- og X.Org Server - projekterne . Nogle producenter behandler dog deres højtydende videoudviklinger som forretningshemmeligheder eller som proprietære opfindelser, som de ikke ønsker at afsløre.
Mange nuværende implementeringer af X styrer videohardware direkte. En ustabil X-server kan gøre skærmen ubrugelig, selv når selve operativsystemet fortsætter med at fungere normalt; dette kan kræve en genstart af hele systemet. Direct Rendering Infrastructure (DRI) er designet til at løse dette problem.
X Window System inkluderer med vilje ikke brugergrænsefladespecifikationer eller meget inter-program interaktion. Af denne grund er der opstået meget forskellige grænseflader, samt applikationer, der ikke altid fungerer korrekt med hinanden. Der er en ICCCM Client Interaction Specification , men den er kendt for at være svær at implementere korrekt. Efterfølgende forsøg på standardisering – såsom Motiv-værktøjssættet og CDE – fiksede ikke tingene. Alt dette hindrer både brugere og programmører [8] . Udviklere har i disse dage en tendens til at opnå en ensartet stil på tværs af applikationer ved at fokusere på et specifikt skrivebordsmiljø eller værktøjssæt. Det undgår også at arbejde direkte med ICCCM.
X-protokollen giver ikke mulighed for at arbejde med lyd i den officielle pakke , men der er en udvidelse til protokollen til brug af lyd over et netværk . Support til lydudstyr og gengivelse af lyde er operativsystemets ansvar. Da brugerne i stigende grad har brug for lyd, har denne situation ført til forskellige inkompatible lydundersystemer. Tidligere ignorerede mange programmører netværksproblemer og brugte simpelthen operativsystemets lokale lyd- API'er . Den første generation af klient/server lydsystemer inkluderede rplay og Network Audio System . Mere moderne systemer er PulseAudio , esound i GNOME og aRts i KDE . Udviklingen af et nyt system, Media Application Server , er også begyndt .
Indtil for nylig indeholdt X Window System ikke en god løsning til at udskrive indholdet af skærme. Mange X-klienter udskriver i PostScript -format uafhængigt af X-serveren. Xprint -mekanismen dukkede først op i X11R6.3; dens klientside fungerede godt, i modsætning til mange server-side implementeringer. Versioner X11R6.8 og nyere fungerer normalt [9] og vinder popularitet i UI- værktøjssæt .
I X Window System er der ingen måde at afbryde en X-klient eller session fra en server og forbinde den til en anden server (som i VNC ). Arbejdet med at tilføje denne funktion til X er allerede i gang. Der er løsninger ( VNC viewers:0 ), der gør skærmen på den aktuelle X-server tilgængelig via VNC. Eller du kan bruge en X-klientforbindelse til en proxyserverende X-server ( xpra , guievict , xmove , lbxproxy ).
Data, der overføres over netværket mellem X-serveren og eksterne X-klienter, er ikke krypteret som standard . En angriber kan bruge en sniffer til at opsnappe og læse disse data. For at forhindre dette tunneleres X typisk over SSH . De fleste SSH-implementeringer understøtter X-applikationstunneling, selvom disse funktioner nogle gange er deaktiveret som standard.
Hardwareuafhængighed og adskillelse af klienter fra servere påvirker systemets ydeevne . Netværksgennemsigtighed X kræver, at klienter og server opererer adskilt fra hinanden. Tidligere reducerede dette ydelsen af et selvstændigt system markant - sammenlignet med Microsoft Windows og Mac OS , hvor vinduesundersystemet er indlejret dybt i selve operativsystemet. Til normal drift af X Window System blev 4 til 8 MB RAM anbefalet - væsentligt mere (på det tidspunkt) end til Windows eller Mac OS.
I henhold til ideologien i X Window System udføres al gengivelse af vindueselementer af X-serveren. Men til dato er der oprettet en hel del applikationer (hovedsageligt ved hjælp af biblioteker som GTK+ og Qt), der renderer elementer på klientsiden og overfører disse renderede elementer allerede som et X-billede til serveren. Samtidig pålægges netværkskanalerne øgede båndbreddekrav.
Nuværende versioner af Windows og Mac OS X har en intern grafikundersystemseparation, der ligner X's klient/server-adskillelse, og har nogenlunde samme ressourcekrav som X med KDE eller GNOME . Sidstnævnte er et meget kontroversielt udsagn, for eksempel overstiger CPU-belastningen fra X-serversiden væsentligt CPU-belastningen fra Windows -grafikundersystemet . Hukommelsesforbruget er også mærkbart højere. Det meste af overheaden i X kommer nu fra netværksforsinkelse mellem klient og server. Der er en almindelig misforståelse, at når du bruger X Window System lokalt , påvirker dets netværksfunktioner (unødvendige i dette tilfælde) ydeevnen negativt. Faktisk bruger moderne implementeringer af X lokale sockets og delt hukommelse i et sådant tilfælde (f.eks . MIT-SHM ), hvilket kun kræver meget lidt overhead.
UNIX-lignende operativsystemer bruger næsten universelt X Window System til grafikoutput. Ikke desto mindre kender historien adskillige forsøg på at skabe et alternativ eller erstatning for X. Blandt dem: Sun Microsystems ' NeWS , som ikke vandt popularitet på markedet, og NeXT 's Display PostScript , som senere blev til Apple Aqua til Mac OS X.
Der har også været forsøg på at løse X's problemer ved at erstatte det helt; inklusive projekterne Berlin / Fresco og Y Window System . Disse projekter har dog stort set ikke fået nogen distribution. I øjeblikket er der et udviklingsprojekt, der har til formål at reducere systemkravene - MicroXwin . X.org Foundation arbejder i øjeblikket på at rette fejl i X11 ved at ajourføre undersystemer - især er understøttelse af flere markører, og derfor multitouch, dukket op, og input-undersystemet er blevet væsentligt forbedret, som er blevet kendt som Xinput2 , som har fjernet restriktioner på nøglescanningskoder . På trods af dette dukker der alternativer til X11 op. Intel har især travlt med at udvikle den nye Wayland -protokol , som er planlagt som et alternativ til X11, men i modsætning til X11 ikke giver fjernadgang til applikationer på protokolniveau. Ubuntu - udviklere planlagde at skifte til Wayland i 13.04-udgivelsen, men annoncerede senere deres egen udvikling - Mir - deres eget grafikundersystem, som er en forgrening af SurfaceFlinger-grafikundersystemet fra Android OS, videreudviklet af Canonical - ressourcer som et uafhængigt projekt. I den 18. udgivelse af Fedora -distributionen er Wayland inkluderet som en valgfri pakke.
Andre konkurrenter forsøger at undgå omkostningerne ved X ved at arbejde direkte med hardwaren . Eksempler på sådanne projekter er DirectFB og den meget lille FBUI . Mekanismen for Direct Rendering Infrastructure (et forsøg på at skabe en pålidelig kernegrænseflade til videobufferen ) kan gøre disse projekter unødvendige.
Der er andre måder at opnå netværksgennemsigtighed for grafiktjenester på:
Før X var der flere rasterdisplaysystemer. Fra Xerox kom Alto ( 1973 ) og Star ( 1981 ). Lisa ( 1983 ) og Macintosh ( 1984 ) blev udviklet hos Apple . I UNIX -verdenen eksisterede Rob Pikes Blit - terminal ( 1984 ) og Andrew -projektet ( 1982 ).
X fik sit navn som efterfølgeren til W Window System (i det latinske alfabet følger bogstavet X umiddelbart efter bogstavet W). W-systemet kørte V-operativsystemet . W brugte en netværksprotokol med understøttelse af terminal- og grafiske vinduer, mens serveren vedligeholdt lister over skærme.
Den oprindelige idé til X Window System opstod på Massachusetts Institute of Technology (MIT) i 1984 som et samarbejde mellem Jim Gettis (fra Athena -projektet ) og Bob Scheifler (fra MIT Computer Science Lab). Scheifler havde brug for et brugbart skærmmiljø til at fejlsøge Argus-systemet. Athena-projektet (et fælles projekt mellem DEC , MIT og IBM for at give nem adgang til computere for studerende) havde brug for en platformsuafhængig grafikløsning til at samle deres heterogene systemer bestående af produkter fra forskellige leverandører. På det tidspunkt arbejdede Andrew - projektet på Carnegie Mellon University på et vinduessystem, men der var ingen tilgængelige licenser til det , og der fandtes ingen alternativer.
Projektet løste disse problemer ved at skabe en protokol , der understøttede både lokale applikationer og kalde fjernapplikationer. I midten af 1983 var den oprindelige UNIX -port af W fem gange langsommere end V -systemet . I maj 1984 erstattede Scheifler den synkrone protokol med en asynkron, og visningslisterne med direkte grafikudgang. Således kom X Window System version 1.x, et af de første vinduessystemer til at levere hardwareuafhængighed .
Scheifler, Gettys og Ron Newman gik i gang, og X voksede hurtigt. Version 6 blev frigivet i januar 1985. DEC , som forberedte sig på at frigive sin første Ultrix- arbejdsstation på det tidspunkt , besluttede, at X var det eneste vinduessystem, der kunne færdiggøres til tiden. DEC-ingeniører porterede X6 til QVSS-skærmen på MicroVAX .
I andet kvartal af 1985 blev farveunderstøttelse implementeret i X for at køre under DEC VAXstation -II/GPX. Denne version blev kendt som version 9. Tidligere licenserede MIT X6 til nogle tredjepartsgrupper mod et gebyr. Det er dog nu besluttet at distribuere X9 og fremtidige versioner frit under det, der er kendt som MIT-licensen . X9 dukkede op i september 1985.
En gruppe ved Brown University overførte version 9 til IBM RT/PC'en , men problemer med at læse uordnede data på RT'en førte til en inkompatibel ændring i protokollen, hvilket resulterede i, at version 10 blev frigivet i slutningen af 1985. I 1986 begyndte anmodninger at komme ind. fra eksterne organisationer for at bruge X. X10R2 blev udgivet i januar 1986, X10R3 i februar. X10R3 var den første version, der blev bredt brugt; DEC og Hewlett-Packard frigav produkter baseret på det. Andre grupper har porteret X10 til Apollo , til Sun - arbejdsstationer og endda til IBM PC AT . Samtidig demonstrerede Autofact den første kommercielle applikation baseret på X, et ingeniørsystem, der kører på VAX og vises på personlige computere med en X-server. Den seneste version af X10 - X10R4 - dukkede op i december 1986.
Selvom X10 havde nogle interessante og kraftfulde funktioner, blev det klart, at X-protokollen skulle gøres mindre hardwareafhængig, før X Window System blev for udbredt. MIT alene ville dog ikke være i stand til at håndtere en så stor protokolændring. Smokey Wallace fra DEC WSL lab og Jim Gettys foreslog, at DEC WSL udviklede X11 og gjorde den frit tilgængelig på samme vilkår som X9 og X10. Denne proces begyndte i maj 1986; protokollen var klar i august. Alfatest af softwaren begyndte i februar 1987 ; beta-test - i maj. Endelig, den 15. september 1987, blev X11 officielt udgivet.
Udformningen af X11-protokollen, som blev ledet af Scheifler, blev bredt diskuteret på de åbne mailinglister på det tidlige internet . X kan således betragtes som et af de første store gratis softwareprojekter .
I 1987 , da X11's succes blev tydelig, ønskede MIT at give afkald på yderligere kontrol med X-projektet. Men på et møde med ni leverandører i juni 1987 fortalte sælgerne MIT, at der var behov for en neutral part for at forhindre X i at gå i opløsning. markedet. I januar 1988 blev en non-profit gruppe kaldet MIT X Consortium ( MIT X Consortium ) dannet. Dens mål var at styre den videre udvikling af X i en neutral atmosfære under hensyntagen til både kommercielle og uddannelsesmæssige interesser. Scheifler blev direktør for konsortiet. Jim Fulton og Keith Packard kom til som seniorudviklere i henholdsvis januar og marts 1988. På samme tid arbejdede Jim hovedsageligt på Xlib , skrifttyper , vinduesadministratorer og hjælpeprogrammer , og Keith var engageret i at omarbejde serveren. Donna Converse og Chris Peterson sluttede sig senere samme år; deres fokus var på værktøjssæt og grænsefladesæt , og de arbejdede tæt sammen med Ralph Swick fra MIT 's Athena -projekt. MIT X Consortium har udgivet flere væsentlige opdateringer til X11; den første af disse (X11R2) udkom i februar 1988.
I 1993 blev efterfølgeren til MIT X Consortium, nonprofit X Consortium, Inc. , dannet. Under hendes ledelse blev X11R6-versionen udgivet den 16. maj 1994 . I 1995 overtog virksomheden udviklingen af Motif-værktøjssættet og CDE- miljøet til UNIX- systemer. X-konsortiet blev opløst i slutningen af 1996 med udgivelsen af den seneste version, X11R6.3, hvilket efterlod stigende kommerciel indflydelse i udviklingen. [11] [12]
I midten af 1997 overdrog X-konsortiet ledelsen af X-projektet til The Open Group , dannet i 1996 ved fusionen af Open Software Foundation og X/Open .
The Open Group udgav X11R6.4 i begyndelsen af 1998 . Med denne version blev det besluttet at droppe den traditionelle liberale licens , da The Open Group ønskede at yde økonomisk støtte til udviklingen af X. [13] De nye vilkår forhindrede mange projekter (såsom XFree86 ) og endda nogle kommercielle leverandører i at acceptere denne version. Efter at XFree86 truede med at dele sig [14] ændrede The Open Group distributionen af X11R6.4 tilbage til en traditionel licens i september 1998 . [15] Den seneste udgivelse under The Open Group var X11R6.4 patch 3.
XFree86 - projektet opstod i 1992 fra X386-serveren til IBM PC- kompatible computere. X386 er skrevet af Thomas Roell og Mark Snitily, doneret til MIT Consortium X af Snitily Graphics Consulting Services (SGCS) og indarbejdet i X11R5 i 1991 . Med tiden udviklede XFree86 sig fra blot en selvstændig port af X til den førende og mest populære implementering af systemet og blev de facto førende inden for X-udvikling. [16]
I maj 1999 blev X.Org grundlagt af The Open Group . X.Org kontrollerede udgivelsen af version X11R6.5.1 og højere. På dette tidspunkt stoppede udviklingen af X praktisk talt [17] ; teknisk innovation fandt hovedsageligt sted inden for rammerne af XFree86-projektet [18] . I 1999 kom XFree86-teamet ind i X.Org som æresmedlem [19] , opmuntret af forskellige hardwarefirmaer [20] interesserede i at bruge XFree86 med Linux og i dets status som den mest populære version af X.
X.Org og XFree86 er begyndt at diskutere en reorganisering for at sikre fuld udvikling af X [21] [22] [23] . Jim Gettis har presset på for en åben udviklingsmodel siden mindst 2000 [12] . Gettys, Packard og andre begyndte indgående at diskutere de ændringer, der ville være nødvendige for at bevæge sig hen imod effektiv open source X-udvikling.
Indtil 2003 , mens populariteten af Linux (og dermed udbredelsen af X) voksede, var X.Org i dvale [24] , og det meste af udviklingen fandt sted i XFree86. XFree86-projektet led af en for lukket udviklingsmodel: programmører kunne ikke få skriveadgang til CVS- lageret, og leverandører var nødt til at vedligeholde omfattende patch- sæt [25] . I marts 2003 udviste XFree86-organisationen Keith Packard , som havde sluttet sig til XFree86 efter sammenbruddet af MIT X Consortium; dette blev gjort i et meget uvenligt miljø [26] [27] [28] .
Endelig, i februar 2004, udgav XFree86-projektet version 4.4 under en mere begrænset licens : det tilføjede en klausul svarende til reklameklausulen i den originale BSD-licens . Mange projekter, der var baseret på X, fandt en sådan licens uacceptabel. FSF og Debian anså den tilføjede klausul for at være uforenelig med vilkårene i GNU GPL [29] . Andre grupper (såsom OpenBSD ) mente, at det var imod XFree86's oprindelige ånd at indføre yderligere licensbegrænsninger. På grund af disse licensproblemer skabte XFree86's lukkede natur den rigtige atmosfære for en gaffel .
I begyndelsen af 2004 grundlagde repræsentanter fra X.Org og freedesktop.org X.Org Foundation . Den åbne gruppe gav ham kontrol over domænenavnet x.org . Dette var en game changer for X-udvikling. Mens stewarderne for X siden 1988 (inklusive det tidligere X.Org) var leverandørorganisationer, blev X.Org Foundation grundlagt af softwareudviklerne selv og brugte en åben udviklingsmodel baseret på input fra udenfor. Der er åbnet op for medlemskab for private, og virksomhedsmedlemskab præsenteres i form af sponsorat. X.Org Foundation støttes i øjeblikket af adskillige store virksomheder såsom Hewlett-Packard og Sun Microsystems .
Foundation udgav X11R6.7 - X.Org Server - i april 2004. Denne version var baseret på XFree86 4.4RC2 (den sidste version af XFree86 udgivet under den gamle licens ), med X11R6.6 ændringer tilføjet. Ved at vedtage en åben udviklingsmodel og vedligeholde GNU GPL- kompatibilitet har projektet tiltrukket mange tidligere XFree86-udviklere [29] .
X11R6.8 blev udgivet i september 2004. Det omfattede væsentlige innovationer, herunder foreløbig støtte til gennemsigtige vinduer og andre komplekse visuelle effekter, skærmforstørrelsesglas og miniaturebilleder og integration med 3D-displaysystemer (såsom Sun's Looking Glass -projektet og Croquet -projektet ). Udseendepolitik leveres af tredjepartsapplikationer kaldet sammensatte administratorer .
Takket være X.Org Foundation og freedesktop.org er udviklingen af X Window System accelereret igen. Udviklerne planlægger at frigive nuværende og fremtidige versioner som klar-til-brug produkter, og ikke kun som grundlag for produkter bygget af leverandører.
Den 21. december 2005 udgav fonden [30] X11R6.9, et monolitisk kildetræ til ældre systemer, og X11R7.0, den samme kildekode opdelt i uafhængige moduler, der kan vedligeholdes som separate projekter [31] . Version X11R7.1 blev udgivet den 22. maj 2006, cirka fire måneder efter 7.0, og inkluderer betydelige forbedringer [32] .
I fremtiden er X-serveren planlagt til udelukkende at få adgang til videohardware gennem OpenGL og Direct Rendering Infrastructure (DRI) på kombinationer af hardware og operativsystemer, der understøtter sådan adgang. DRI-infrastrukturen dukkede først op i XFree86 version 4.0 og blev standard i X11R6.7 og senere [33] . Mange operativsystemer er begyndt at tilføje support til kernen . Arbejdet på dette område er i gang.
Computereksperter forkorter ofte det fulde navn "X Window System" til "X11" eller blot "X". Udtrykket "X Windows" (på samme måde som " GNU/Linux " eller " Microsoft Windows ") er officielt forældet og betragtes som forkert, selvom det har været meget brugt siden begyndelsen af X's historie, herunder bevidst for litterær effekt ( for eksempel i bogen " The UNIX -HATERS Handbook ").
Version | Udgivelses dato | Store ændringer |
---|---|---|
X1 | juni 1984 | Navnet "X" bruges for første gang. Grundlæggende ændringer, der adskiller produktet fra W . |
X6 | januar 1985 | Første version licenseret til flere eksterne virksomheder. |
X9 | september 1985 | Farvestøtte. Første udgivelse under MIT-licensen . |
X10 | slutningen af 1985 | IBM RT/PC , AT (under DOS ) og andre. |
X10R2 | januar 1986 | |
X10R3 | februar 1986 | Første udgivelse uden for MIT . uwm bliver standard vindueshåndtering . |
X10R4 | december 1986 | Seneste version af X10. |
X11 | 15. september 1987 | Første udgivelse af den nuværende protokol . |
X11R2 | februar 1988 | Første udgivelse under MIT X Consortium. [34] |
X11R3 | 25. oktober 1988 | XDM . |
X11R4 | 22. december 1989 | XDMCP ; twm bliver standard vindueshåndtering; forbedringer i applikationer; Form forlængelse; nye skrifttyper . |
X11R5 | 5. september 1991 | PEX ; Xcms (farvestyring); skrifttype server; X386; xvideo udvidelse . |
X11R6 | 16. maj 1994 | ICCCM version 2.0; Udveksling mellem klienter; X Session Management; X Synkroniseringsudvidelse; X billedudvidelse; XTEST udvidelse; X input; X store anmodninger; XC-MISC; ændringer i XFree86 . |
X11R6.1 | 14. marts 1996 | X Double Buffer forlængelse; X tastaturudvidelse; X Optag forlængelse. |
X11R6.2 X11R6.3 (Broadway) |
23. december 1996 | WWW funktionalitet ; LBX . Seneste udgivelse ledet af X Consortium. X11R6.2 er en delmængde af X11R6.3, hvor de eneste forskelle fra R6.1 er Xprint og Xlibs implementering af vertikal skrivning og understøttelse af brugerdefinerede tegn. [35] |
X11R6.4 | 31. marts 1998 | Xinerama . [36] |
X11R6.5 | X.Org intern udgivelse ; ikke gjort tilgængelig for offentligheden. | |
X11R6.5.1 | 20. august 2000 | |
X11R6.6 | 4. april 2001 | Fejlrettelser ; _ ændringer i XFree86. |
X11R6.7.0 | 6. april 2004 | Første version af X.Org Server af X.Org Foundation som en gaffel af XFree86 4.4 RC2. Hovedårsagen til dette var nogle projektdeltageres uenighed med den nye XFree86 4.4-licens. Mange af de tidligere XFree86-udviklere sluttede sig senere til X.Org Server-projektet.
Fjernelse af XIE, PEX og libxml2. [37] |
X11R6.8.0 | 8. september 2004 | Vinduesgennemsigtighed; XDamage; Distribueret Multihead X; XFixes ; Sammensatte; xevie. |
X11R6.8.1 | 17. september 2004 | Løsning af en sårbarhed i libxpm . |
X11R6.8.2 | 10. februar 2005 | Ret fejl, opdater drivere . |
X11R6.9 X11R7.0 |
21. december 2005 | For første gang blev der tilføjet et modulært byggesystem. 6.9.0 brugte stadig det gamle Imake build system , mens 7.0.0 systemer allerede brugte Autotools . Som et resultat blev der opnået en modulær version 7.0 og en monolitisk version 6.9
fra ét sæt kildekoder . EXA , signifikant koderefaktorering . [38] |
X11R7.1 | 22. maj 2006 | EXA forbedringer; Kdrive integration ; AIGLX ; forbedringer i understøttelse af forskellige operativsystemer og platforme. [39] |
X11R7.2 | 15. februar 2007 | Fjernelse af LBX [40] og indbygget tastaturdriver, X-ACE , XCB , AutoConfig-forbedringer. |
X11R7.3 | 6. september 2007 | X11R7.3: XServer 1.4, HAL -enhedsautodetektion , DTrace-brug, PCI -domæneunderstøttelse .
Xorg server 1.4 - se Server14Branch for flere detaljer. højdepunkter:
|
X11R7.4 | 23. september 2008 | XServer 1.5.1, XACE , PCI rework, EXA-optimeringer, _X_EXPORT, GLX 1.4, hurtigere opstart og nedlukning. [42] |
X11R7.5 | 26. oktober 2009 | XServer 1.7.0 [43] , Xi 2, XGE, E- EDID -understøttelse , RandR 1.3, MPX , forudsigelig pointeracceleration, brug af DRI2 memory manager , brug af SELinux , fjernelse af forældede biblioteker og udvidelser. |
X11R7.6 | 20. december 2010 [44] | XServer 1.9.0, der skifter fra enhedsadministration fra HAL (Hardware Abstraction Layer)-undersystemet til at bruge udev-biblioteket, muligheden for at oprette konfigurationsfiler for individuelle enheder, ABI'en for de grænseflader, der er ansvarlige for video I/O, er ændret, og nogle udvidelser [45] [46] . |
X11R7.7 | 6. juni 2012 [47] | XServer 1.12, multi- touch -understøttelse , forbedret byggeproces for dokumentation fra DocBook XML og indledende understøttelse af GLX og XKB i XCB . |
X vinduessystem | |
---|---|
Arkitektur |
|
Vinduesbestyrere |
|
Udvidelser |
|
Implementeringer | |
Standarder | |
Ansøgninger |
|
Gratis og open source software | |
---|---|
Det vigtigste |
|
Fællesskab |
|
Organisationer | |
Licenser | |
Problemer | |
Andet |
|
|
De åbne gruppestandarder | |
---|---|