Vindussystemet X

Vindussystemet X (engelsk: X Window System), også kalt X.Org, X11 og bare X, er et grunnleggende vindussystem, som er blitt en industristandard på Unix og Unix-lignende operativsystemer. Det er også tilgjengelig for andre operativsystemer.
Navnet X har sin bakgrunn i det distribuerte operativsystemet V system. Dets grafiske brukergrensesnitt ble kalt vindussystemet W, og da Massachusetts Institute of Technology (MIT) i 1984 laget et vindussystem for Unix, valgte de navnet X, som er neste bokstav i alfabetet. 
Navnet X kan også tolkes som et ordspill relatert til «den ukjente X», en talemåte som forekommer om den ukjente i matematiske ligninger. Vindussystemet X tilbyr ikke et standardisert grafisk brukergrensesnitt, men et fundament for mange forskjellige brukergrensesnitt («den ukjente X»). Felles fasiliteter i ulike grafiske brukergrensesnitt – Tegning og flytting av enkle former som streker, bokstaver og vinduer på en skjerm, og interaksjon med en datamus og tastatur, er i X implementert som et fundament eller rammeverk.
X legger derfor ikke føringer på selve brukergrensesnittet – dette er håndtert av vindusbehandleren og individuelle programmer. Derfor varierer utseendet på X-baserte miljøer mye. Ulike programmer kan presenteres med vidt forskjellige visuelle grensesnitt.
En rekke grafiske brukergrensesnitt er blitt utviklet for X. Først ute var OPEN LOOK (1985), utviklet av AT&T og Sun Microsystems for UNIX System V. Sun Microsystems lanserte i 1993 brukergrensesnittene SunView og NeWS som konkurrenter til X i sitt eget operativsystem SunOS. De ble senere erstattet av OpenWindows, som var basert på X, og som ble levert sammen med SunOS versjon 4 (1989) under navnet Solaris. I 1990-årene ble det også gjort et forsøk på å etablere Motif som en industristandard for X. Sunsoft, Hewlett-Packard, IBM og Unix Systems Laboratories gikk da sammen i etableringen av Common Desktop Environment. Også de moderne skrivebordsmiljøene KDE, GNOME og Xfce bruker X.
De første versjonene av X ble utviklet som kommersiell og proprietær programvare av MIT, IBM og Digital Equipment Corporation (DEC). Fra og med revisjon 9 (X9) i 1985 er X blitt utviklet av en rekke konsortier. MIT X Consortium ble grunnlagt i januar 1988 som en ikke-kommersiell sammenslutning av selskaper. I 1993 ble utviklingen av X videreført av X Consortium, og i januar 1997 overtok The Open Group ansvaret. Siden februar 2004 har X blitt videreutviklet av X.Org Foundation.
I 1991 ble X gjort tilgjengelig for Intel 80386 og Intel 80486 under navnet X386. Da Snitily Graphics Consulting besluttet seg for å selge nyere versjoner av X386 som proprietær programvare, oppstod XFree86 i 1992 som et fritt alternativ for denne populære mikroprosessorfamilien. Under mesteparten av 1990-årene og like etter århundreskiftet, var XFree86 kilden til de fleste innovasjoner innenfor X. Frem til februar 2004 ble det brukt av nesten samtlige distribusjoner av Linux, og i BSD-operativsystemene.
I februar 2004 forandret XFree86 prosjektet sin lisens på en måte som Free Software Foundation oppfattet som i strid med GNU General Public License. De fleste Linux-distribusjoner valgte derfor X.org som et nytt alternativ.
X er idag distribuert av X.Org Foundation som fri programvare under X-lisensen. Revisjon 11 (X11) ble lansert den 15. september 1987. Siste versjon er 7.7 (X11R7.7), som ble lansert den 6. juni 2012.


== Sun Microsystems ==
Det første grafiske brukergrensesnitt basert på X Windows, var Open Look. Det ble utviklet av AT&T og Sun Microsystems, og lansert med SunOS 2.1. I SunOS 2.2 ble det omdøpt til SunView (Sun Visual Integrated Environment for Workstations). I SunOS 2.3 ble det kalt NeWS (Network extensible Window System). Sun Microsystems kombinerte senere SunOS med det grafiske brukergrensesnittet Open Windows og kalte det Sun Solaris.


== Motif ==
I 1980-årene ble Motif en konkurrent til alternativene fra Sun, og det ble gjort forsøk på å gjøre det til en industri-standard.


== KDE og GNOME ==
Den moderne skrivebordsmiljøene KDE og GNOME bruker X, og tilbyr biblioteker og utviklingsmiljøer som gjør at alle programmer for det skrivebordsmiljøet får en felles utseendemessig stil og oppførsel. Dette utseendet kan brukeren endre enkelt ved å endre tema og andre ting.


== Transparens ==
X er «nettverksgjennomsiktig»: småprogrammer («klienter») trenger ikke å kjøre på samme maskin som den brukeren sitter ved (display-serveren). X sin bruk av begrepene «klient» og «tjener» er motsatt av hva man ofte forventer, fordi «tjeneren» er brukerens lokale skjerm istedenfor den fjerne maskinen.
Det er den lokale maskinen som står for all tegning til skjerm. Andre maskiner kjører applikasjoner som så sender henvendelser til den lokale maskinens X-tjener om å få tegnet opp prikker, streker, og polygoner. Eksempelvis vil en lokal maskin med et godt 3D-kort kunne gi svært god ytelse på grafiske applikasjoner selv om applikasjonen egentlig kjører på en annen maskin med et dårlig grafikkort. En er dog avhengig av at den lokale maskinens X-tjener er satt opp med de egenskaper klientapplikasjonen trenger, som for eksempel en spesiell fargedypde eller mulighet for «Backing Restore» hvor X-tjeneren tar seg av å friske opp områder som har blitt tegnet over av andre applikasjoner.


== X11 ==
Prosjektet ledes av X.Org Foundation, som er en gruppe utviklere fra mange store firmaer verden over, blant annet Sun Microsystems, Red Hat, SUSE, Hewlett-Packard.


== Historie ==


=== Forgjengere ===

Flere grafiske brukergrensesnitt gikk forut for vindussystemet X, og inspirerte dets utforming. I 1973 lanserte Xerox den 74181-baserte arbeidsstasjonen Xerox Alto med sin skrivebordsmetafor; dette var en av de første personlige datamaskiner. I 1981 fulgte de opp med den AMD Am2900-baserte arbeidsstasjonen Xerox Star.

I 1981 lanserte Apollo Computer arbeidsstasjonen DN416/DN100; den var basert på Motorola 68000 og kjørte operativsystemet AEGIS (senere omdøpt til Domain/OS) med vindussystemet Display Manager (DM). I 1983 ble den Motorola 68000-baserte Apple Lisa lansert av Apple Inc.; den ble etterfulgt av Macintosh i 1984.I 1982 ble Andrew Project innledet ved Carnegie Mellon University i Pittsburgh, Pennsylvania. I prosjektet inngikk Andrew window manager (WM), som var et av de første nettverksorienterte vindussystemene. Med fjernstyringsprogrammet Alto Terminal, ble overlappende vinduer vist på datamaskiner av typen Xerox Alto. Vertsmaskinene, som typisk var DEC VAX stormaskiner og minidatamaskiner som kjørte UNIX, var ansvarlig for å håndtere vindushendelser og å oppfriske vinduenes innhold.I 1982 ble Blit laget av Robert Pike og Bart Locanthi Jr. ved Bell Laboratories. Dette var en programmerbar bitmapbasert grafisk dataterminal. Pike skrev to vindussystemer for Blit, mpx for UNIX versjon 8 og mux for UNIX versjon 9, som igjen påvirket de to vindussystemene 8½ og rio for det distribuerte operativsystemet Plan 9. Da Blit ble kommersialisert som DMD 5620, ble en variant av mpx («layers») tilføyd UNIX System V, Release 3.X fikk sitt navn fra vindussystemet W som ble utviklet av Stanford University før 1983 for det distribuerte operativsystemet V system. W brukte en nettverksprotokoll som støttet dataterminaler og grafikkvinduer, og en tjener til å vedlikeholde lister over hva som skulle vises. Vindussystemet W var den direkte forgjengeren til vindussystemet X (W er etter X i det latinske alfabetet).
Også Microsoft Windows hører med til historien om grafiske brukergrensesnitt. Men Microsoft Windows 1.0 ble lansert i 1985 og er derfor yngre enn vindussystemet X.


=== Opprinnelse og tidlig utvikling ===
Den opprinnelige idéen til vindussystemet X oppstod ved Massachusetts Institute of Technology (MIT) i 1984. Opphavsmennene var Jim Gettys fra Prosjekt Athena og Robert Scheifler fra MIT Laboratory of Computer Science. Project Athena var et felles prosjekt mellom Digital Equipment Corporation (DEC), MIT og IBM, som hadde som formål å gi alle studentene lett tilgang til dataressurser; prosjektet behøvde et plattformuavhengig grafisk system i et nettverk med systemer fra ulike leverandører. Vindussystemet som da ble brukt og var under utvikling, var den allerede nevnte Andrew window manager, men det var ingen lisenser tilgjengelige og ingen alternativer eksisterte.
Løsningen var en protokoll som kunne kjøre både lokale applikasjoner og aksessere ressurser i et nettverk. Vindussystemet W ble portert til Unix i midten av 1983 og den første versjonen kjørte i en femtedel av dens hastighet på V system. I mai 1984 erstattet Scheifler den synkrone protokollen med en asynkron protokoll, og displaylistene med en umiddelbar grafisk modus. Vindussystemet X ble det første vindussystemet som var maskinvareuavhengig og leverandøruavhengig.
I en e-post til Athena prosjektet den 19. juli 1984 presenterte Robert Scheifler vindussystemet X for MIT på følgende måte:

Jeg har brukt de siste ukene på å skrive et vindussystem for VS100 (VAXstation 100). Jeg stjal en betydelig mengde mengde med kode fra [vindussystemet] W, omga den med et asynkront i stedet for et synkront grensesnitt, og kalte det X. I sin helhet synes ytelsen å være omkring det dobbelte av den til W. Koden ser ut til å være temmelig solid på det nåværende tidspunkt, selv om det fortsatt er en del mangler som må rettes opp.Vi ved LCS (Laboratory of Computer Science) har stoppet bruken av W, og bygger nå aktivt applikasjoner for X. Alle andre som bruker W burde seriøst vurdere å svitsje. Dette er ikke det ultimate vindussystemet, men jeg tror at det er en god begynnelse for eksperimentering. For øyeblikket finnes det et CLU- (og et Argus-) grensesnitt til X; det arbeides med et C-grensesnitt. De tre eksisterende applikasjoner er en teksteditor (TED), et Argus I/O grensesnitt og en primitiv vindusbehandler. Det foreligger ingen dokumentasjon ennå; finnes det noen som er gal nok til å gjøre dette frivillig? Jeg kan komme tilbake til det til slutt.De som er interessert i å se en demo kan stikke innom NE43-531, selv om du kan ønske å ringe 3-1945 først. Alle som ønsker koden kan stikke innom med en tape. De som er interessert i å hacke [koden for å fjerne] manglene, er velkommen til å ta kontakt.
Schleifer, Gettys og Ron Newman satte i gang å arbeide og vindussystemet X utviklet seg raskt. I januar 1985 lanserte de versjon 6 (X6), den første versjon som ble lisensiert til selskaper utenfor MIT.
DEC planla på denne tiden lanseringen av sin første ULTRIX arbeidsstasjon, og betraktet vindussystemet X som det eneste vindussystem som på sikt ville overleve. Ingeniører ved DEC porterte X6 til DEC's QVSS-skjerm på MicroVAX. I september 1985 hadde vindussystemet X fått støtten for farger til å fungere på DEC VAXstation-II/GPX, og dannet det som ble til versjon 9 (X9).
En gruppe ved Brown University porterte versjon 9 til den RISC-baserte arbeidsstasjonen IBM 6150 RT, men problemer med å lese data som ikke var parallellstilte førte til en inkompatibel protokoll, og førte til versjon 10 (X10R1.0) i slutten av 1985. Denne versjonen ble også portert til IBM Personal System/2 med AIX og til MS-DOS. I 1986 hadde organisasjoner utenfor MIT begynt å be om linsenser til vindussystemet X. X10R2.0 ble lansert i januar 1986, og deretter X10R3.0 i februar 1986.
Selv om MIT hadde lisensiert X6 til enkelte grupper mot betaling, besluttet selskapet seg for å lisensiere X10R3 og fremtidige versjoner under det som ble kjent som MIT-lisensen. Motivet var å øke populariteten til vindussystemet X, og slik håpe på at flere applikasjoner ville bli tilgjengelige. X10R3.0 ble den første versjonen som oppnådde større utbredelse, og både DEC og Hewlett-Packard lanserte produkter som var basert på den.
Apollo Computer sørget for å portere vindussystemet X til arbeidsstasjonen DN416/DN100, og Sun Microsystems porterte det til sine 32-biter arbeidsstasjoner som kjørte SunOS. Demonstrasjoner av den første kommersielle applikasjonen for vindussystemet X – en CAD-programvare fra Cognition Inc. som kjørte på VAX og kunne vises på personlige datamaskiner over et nettverk som kjørte en X-tjener, fant sted på messen Autofact på denne tiden.

Den siste versjonen av X10, X10R4.0, ble lansert 25. desember 1986. Forsøk på å kjøre X-tjenere på utstyr for sanntid, på en måte som lignet Virtual Network Computing, tillot skrivebordet å deles mellom flere datamaskiner. Et eksempel på dette var programmet SharedX, som ble lansert av Philip J. Gust ved HP Laboratories i 1986.Selv om X10 hadde en interessant og god funksjonalitet, hadde det blitt innlysende at X-protokollen kunne behøve en mer maskinvareuavhengig konstruksjon for å bli mer utbredt, men MIT manglet de tilgjengelige ressurser til å omskrive protokollen. DEC's Western Software Laboratory (WSL) fant imidlertid seg selv involvert i prosjekter med et mer erfarent team. Smokey Wallace fra DEC WSL and Jim Gettys foreslo å skrive X11, og gjøre den fritt tilgjengelig under de samme reglene som X9 og X10. Arbeidet startet i mai 1986, og den endelige protokollen var ferdig i august. Alfatesting av programvaren startet i februar 1987, betatestingen i mai, og den endelige lanseringen av X11R1.0 fant sted den 15. september 1987.
X11-protokollens konstruksjon, som ble ledet av Scheifler, ble diskutert inngående på en åpen mailliste på Nascent Internet og koblet sammen med Usenet sine diskusjonsgrupper. Gettys flyttet til California for å hjelpe til med å lede utviklingen av X11 ved WSL fra DEC's Systems Research Center, hvor Phil Karlton og Susan Angebrandt ledet X11's tjenerdesign og implementasjon. X representerer på denne måte et av de første prosjekter for fri og åpen programvare i stor skala.


=== MIT X Consortium og X Consortium, Inc. ===
I 1987, da suksessen til X11 hadde blitt tydelig, ønsket MIT å gi avkall på forvaltningen av vindussystemet X. Under et møte i juni 1987 med ni leverandører, fortalte leverandørene MIT at de trodde på behovet for en nøytral part for å hindre at vindussystemet X ble fragmentert i markedet. I januar 1988 ble MIT X Consortium dannet som en ikke-kommersiell gruppe av leverandører, med Schleifer som direktør. Stiftelsens formål var å styre den fremtidige utvikling av vindussystemet X i en nøytral atomsfære, deriblant for kommersielle og utdanningsmessige interesser.


=== Open Group ===


=== X.Org og XFree86 ===


=== X.Org Foundation ===


== Versjoner ==


== Referanser ==


== Litteratur ==
Borenstein, Natahniel S. (1991). Programming as if People Mattered: Friendly Programs, Software Engineering, and Other Noble Delusions. Princeton University Press, 13. oktober 1991. ISBN 0 691 087 520. ISBN 978-0-69108-752-8. 
Wang, Shuangbao Paul; Ledley, Robert S. (2012). Computer Architecture and Security: Fundamentals of Designing Secure Computer Systems. John Wiley & Sons, 25. oktober 2012. ISBN 1 118 168 836. ISBN 978-1-11816-883-7. CS1-vedlikehold: Flere navn: forfatterliste (link)
Young, Jeffrey S.; Simon, William L. (2006). iCon Steve Jobs: The Greatest Second Act in the History of Business. John Wiley & Sons, 14. april 2006. ISBN 0 471 787 841. ISBN 978-0-47178-784-6. CS1-vedlikehold: Flere navn: forfatterliste (link)


== Eksterne lenker ==
Offisielt nettsted 
(en) X Window System – kategori av bilder, video eller lyd på Commons 
XOrg Foundation Open Source Public Implementation of X11 — Avtageren til XFree86 som blir standard.
XFree86 — Den mest brukte versjonen frem til nå, spesielt på åpen kildekode-platformer som Linux
X11 for Mac OS X — X11-tjener for Mac OS X – en modifisert versjon av XFree86 med en Aqua-kompatibel vindusbehandler.
Artikkelen X Windows system i Linuxguiden