X vinduessystem

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 27. maj 2022; checks kræver 3 redigeringer .
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" ).

Klient-servermodel og netværksgennemsigtighed

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:

Principper for konstruktion af X

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 .

Brugergrænseflader

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 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.

Implementeringer

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.  

X terminaler

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.

Udvidelser

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 .

DDC

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.

RANDR

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.

Xrender

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.

form

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

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.

xv

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

Begrænsninger og kritik af X

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.

Videoudstyr

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.

Brugergrænsefladefunktioner

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 .

Netværk

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.

Konkurrenter X

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å:

Historie

Forgængere

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.

Oprindelse og tidlig udvikling

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 .

X MIT Consortium og X Consortium, Inc.

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]

Den åbne gruppe

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.

X.Org og XFree86

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 .

X.Org Foundation

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 . 

Yderligere udvikling

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.

Titel

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 ").

Udgivelseshistorik

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:

  • RandR 1.2: RandR 1.2 tilbyder output hotplug, såvel som on-the-fly output rekonfiguration og mode switching.
  • Input hotplug: Input hotplug tillader hotplugging af input-enheder og tilføjer også forbedret understøttelse af berøringsskærme og tablets via enten HAL eller D-Bus.
  • KDrive: Der er lavet adskillige forbedringer til KDrive-kodebasen, inklusive bedre understøttelse af flere inputenheder.
  • DTrace: Når du kører på OpenSolaris, er DTrace-understøttelse tilgængelig på X-serveren, hvilket tillader detaljeret regnskab over operationer inde på serveren.
  • EXA: Der er blevet arbejdet meget på EXA-rammen for at gøre den mere anvendelig.
  • Nye applikationer: xbacklight
  • Nye drivere: xf86-video-glide, xf86-video-vermilion
  • Nye man-sider til API'er: libXinerama, libXcomposite, XKB-funktioner i libX11, Xtest-funktioner i libXtst
  • Understøttelse af skrifttypekatalogkataloger i skrifttypestien
  • xdm: Xft-understøttelse tilføjet [41] .
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 .

Se også

Noter

  1. http://www.x.org/wiki/Releases/7.7/
  2. https://www.x.org/releases/current/
  3. https://x.org
  4. Licenser  . _ X.Org Foundation (marts 2004). Hentet 29. juni 2006. Arkiveret fra originalen 29. januar 2011.
  5. Jim Gettys . Brev til XFree86-forummet . Dato for adgang: 4. januar 2007. Arkiveret fra originalen 29. januar 2011.
  6. Don Hopkins. X - Windows-katastrofen  . UNIX-HATERS-håndbogen . Hentet 29. juni 2006. Arkiveret fra originalen 29. januar 2011.
  7. Hania Jajewska, Mark Menes, Joel McCormack. Hvorfor X ikke er vores ideelle vinduessystem  // Software - Praksis og erfaring. - 1990. - T. 20 , nr. S2 . Arkiveret fra originalen den 10. september 2014.
  8. Re: X er smertefuldt . Hentet 29. juni 2006. Arkiveret fra originalen 6. juli 2017.
  9. Xprint Ofte stillede spørgsmål  . Hentet 29. juni 2006. Arkiveret fra originalen 29. januar 2011.
  10. airWRX - SVG Terminal . Hentet 29. juni 2006. Arkiveret fra originalen 17. december 2007.
  11. mako. Finansiering af frivillige fri softwareprojekter  (engelsk) (15. juni 2005). Hentet 29. juni 2006. Arkiveret fra originalen 29. januar 2011.
  12. 1 2 Jim Gettys . Lessons Learned om Open Source  (engelsk) (2000). Hentet 29. juni 2006. Arkiveret fra originalen 29. januar 2011.
  13. Shaleh. xstate  (engelsk)  (utilgængeligt link) (2. april 1998). Hentet 29. juni 2006. Arkiveret fra originalen 1. april 2004.
  14. Matthew Arnison. Midlet til et X til Linux: et interview med David Dawes fra XFree86.org  (engelsk)  (link ikke tilgængeligt) (juni 1999). Hentet 29. juni 2006. Arkiveret fra originalen 18. april 2002.
  15. Christopher Brown. X11R6.4 Eksempel på implementeringsændringer og bekymringer  (  utilgængeligt link) . Hentet 29. juni 2006. Arkiveret fra originalen 11. august 2002.
  16. [https://web.archive.org/web/20070930185501/http://www.xfree86.org/pipermail/forum/2004-February/003945.html Arkiveret 30. september 2007 på Wayback Machine [forum] Re : Meddelelse: Ændring af den grundlæggende XFree86™-licens] Arkiveret kopi (downlink) . Hentet 29. juni 2006. Arkiveret fra originalen 7. september 2005. 
  17. Robert Mitchell. Spørgsmål og svar: X  Factor . ComputerWorld (4. februar 2002). Hentet 29. juni 2006. Arkiveret fra originalen 23. august 2011.
  18. Keith Packard . The Evolution of the X Server Architecture  (engelsk) (1999). Hentet 29. juni 2006. Arkiveret fra originalen 29. januar 2011.
  19. [forum] A Call For Open Governance Of X Development Arkiveret fra originalen den 12. februar 2005.
  20. XFree86 slutter sig til X.Org som  æresmedlem . Slashdot (1. december 1999). Hentet 29. juni 2006. Arkiveret fra originalen 23. august 2011.
  21. [forum] A Call for Open Governance Of X Development Arkiveret 22. december 2004.
  22. [forum] A Call For Open Governance Of X Development Arkiveret fra originalen den 6. januar 2005.
  23. [forum] Diskuterer problemer Arkiveret 27. december 2004.
  24. [forum] Endnu en delvis redigeret telekonference udskrift Arkiveret fra originalen den 12. februar 2005.
  25. mharris. Dagbog for mharris  (engelsk) (9. januar 2003). Hentet 29. juni 2006. Arkiveret fra originalen 29. januar 2011.
  26. [forum] Invitation til offentlig diskussion om fremtiden for X Arkiveret 12. februar 2005.
  27. [forum] A Call For Open Governance Of X Development Arkiveret fra originalen den 12. februar 2005.
  28. [forum] Noter fra en telekonference afholdt 2003-3-27 Arkiveret fra originalen den 12. februar 2005.
  29. 1 2 David Wheeler . The Cautionary Tale of XFree86  (engelsk)  (downlink) . Gør din Open Source-software GPL-kompatibel. Eller Else (16. februar 2005). Hentet 29. juni 2006. Arkiveret fra originalen 23. april 2002.
  30. X11R6.9 og X11R7.0 officielt udgivet  ( 21. december 2005). Hentet 29. juni 2006. Arkiveret fra originalen 23. august 2011.
  31. Paul Anderson, Alan Coopersmith, Egbert Eyck, Adam Jackson, Kevin Martin, Keith Packard. Modulariseringsforslag  (engelsk) (2005). Hentet 29. juni 2006. Arkiveret fra originalen 29. januar 2011.
  32. Foreslåede ændringer til  X11R7.1 . Hentet 29. juni 2006. Arkiveret fra originalen 29. januar 2011.
  33. Keith Packard . Få X ud af hardwaren  (engelsk) (2004). Hentet 29. juni 2006. Arkiveret fra originalen 29. januar 2011.
  34. ↑ X Window-brugeren SÅDAN kommer du i gang  . Hentet 29. juni 2006. Arkiveret fra originalen 29. januar 2011.
  35. ↑ XFree86 og X11R6.3  . Release Notes til XFree86 3.3.6 . XFree86 Project (31. december 1999). Hentet 29. juni 2006. Arkiveret fra originalen 29. januar 2011.
  36. ↑ X Pressemeddelelse - X11R6.4  . Den åbne gruppe (31. marts 1998). Hentet 29. juni 2006. Arkiveret fra originalen 29. januar 2011.
  37. X.Org Foundation frigiver X Window System  X11R6.7 . LWN (7. april 2004). Hentet 29. juni 2006. Arkiveret fra originalen 29. januar 2011.
  38. Ændringer siden 68.  _ X.Org Wiki. Hentet 29. juni 2006. Arkiveret fra originalen 23. august 2011.
  39. Release Notes for  X11R7.1 . X.Org Foundation (22. marts 2006). Hentet 29. juni 2006. Arkiveret fra originalen 23. august 2011.
  40. Ændringer ForX11R72  . _ X.Org Wiki. Hentet 15. februar 2007. Arkiveret fra originalen 23. august 2011.
  41. 7.3 Release  notes . X.Org Fonden. Hentet 13. december 2007. Arkiveret fra originalen 23. august 2011.
  42. X.Org Foundation udgiver X7.4 . Hentet 14. februar 2009. Arkiveret fra originalen 1. august 2009.
  43. X.Org Foundation udgiver X7.5 . Hentet 9. november 2009. Arkiveret fra originalen 6. juli 2010.
  44. X.Org Wiki - Andet/Press/X11R76Released . Hentet 1. september 2011. Arkiveret fra originalen 24. december 2010.
  45. X.Org Wiki - Server18Branch . Hentet 1. september 2011. Arkiveret fra originalen 26. maj 2011.
  46. X.Org Wiki - Server19Branch . Hentet 1. september 2011. Arkiveret fra originalen 31. august 2011.
  47. [MEDDELELSE] X11R7.7 . Hentet 7. juni 2012. Arkiveret fra originalen 14. august 2012.

Litteratur

Links

Bemærkelsesværdige implementeringer
  1. Internetarkivsøgning: emne: "X Window System (Computersystem)" . archive.org. Hentet: 24. december 2016.