Dokumentacija X.Org

Izvor: HrOpenWiki
Inačica od 01:43, 29. ožujka 2011. koju je unio/unijela Shrike (razgovor | doprinosi)

(razl) ←Starija inačica | vidi trenutačnu inačicu (razl) | Novija inačica→ (razl)
Skoči na: orijentacija, traži

X window system (X11, xorg, X) je računalni softver i mrežni protokol koji omogućuje osnovu za grafičko korisničko sučelje (GUI). X11 koristi sloj hardverske apstrakcije na način da se stvori generalizirani skup naredbi kojima će se postići isti efekt, bez obzira na to koja se grafička kartica koristi u stvarnosti na računalu. Svaki program koji koristi X11 ima neovisnost o hardveru na bilo kojem računalu koje koristi xorg. X je arhitekturalno neovisni sustav za prikaz grafičkog korisničkog sustava koji dozvoljava mnogim korisnicima da koriste procesorsko vrijeme istog računala, dok svaki korisnik može koristiti jednostavni mrežni terminal umjesto punog računala. Zbog univerzalne podrške na UNIX-u, Linux-u i ostalim sličnim sustavima, xorg se koristi čak i kada nema nikakve potrebe za terminalima (kao na primjerice na osobnim računalima). X također obrađuje i ulazne uređaje, poput tipkovnice i miša, osigurava standardni razvojni podsustav i protokole za izradu grafičkog korisničkog sučelja na UNIX i UNIX baziranim operacijskim sustavima (uključujući OpenVMS).

Xorg.png

X nudi osnovni kostur (framework), ili primitive, za gradnju GUI okruženja poput: crtanje i micanje prozora na ekranu i interakcija sa mišem i tastaturom. X ne zahtijeva korisničko sučelje – individualni programi poznati kao "window manageri" se mogu također pobrinuti za to (GNOME, KDE, xfce, E17,...). Zbog toga, vizualni izgled okruženja baziranih na X-ima je veoma različit; različiti programi mogu imati radikalno različita sučelja. X je stvoren kao dodatna aplikacijska apstrakcijska razina nad jezgrom (kernelom) operacijskog sustava.

Za razliku od prijašnjih grafičkih protokola, X je specifično napravljen kako bi funkcionirao preko mreže, umjesto kao lokalni integrirani sustav. X ima mogućnost mrežne transparentnosti: mašina na kojoj se pokreće klijentska aplikacija može biti drugačiji od korisničke lokalne mašine. X-ov mrežni protokol je baziran na X naredbenim primitivima i sa GLX-om, OpenGL 3D primitive umjesto uobičajene osnovne framebuffer paradigme. Ovaj pristup omogućuje da se i 2D i 3D operacije kompletno upogonjuju na udaljenom X serveru. Kada se koristi kroz mrežu, protok i latencija postaju bitni faktor u stabilnosti određenih programskih modela. Primjeri su gledanje videa u 2D i i prijenosti textura 3D objekata. X je započeo na MIT-u 1984. Trenutna verzija protokola, X11, se pojavila u rujnu 1987. X.Org Fondacija vodi X projekt, sa trenutno referentnom implementacijom, X.Org Serverom, dostupnim kao besplatan i otvoren softver pod MIT Licencom i drugim sličnim permisivnim licencama. X se često koristi u kahucu sa X session managerom kako bi se stvorile/započele (očito) korisničke sesije. Sesija se obično započne sa X display mangerom (XDM, KDM, GDM, WDM), ali može započeti i naredbom xinit ili češće startx iz komandne linije.

Dizajn

Xorg-struktura.png

X koristi klijent-server model: X server komunicira sa raznim klijentskim programima. Server prihvaća zahtjeve za grafičkim izlazom i šalje natrag korisnički unos (iz tastature, miša, ekrana na dodair). Server može između ostaloga raditi kao:

  1. Aplikacija koja prikazuje prozor unutaar nekog drugog prikaznog sustava.
  2. Sistemski program koji kontrolira video izlaz iz računala.
  3. Dedicirani komad hardvera.

Ova klijent-server terminologija – gdje je korisnikov terminal server i aplikacija klijent – često zbunjuje nove X korisnike jer su termini prividno obrnuti. Stvar je u tome što X uzima perspektivu aplikacije, umjesto krajnjeg korisnika: X osigurava prikaz i I/O usluge aplikacijama, što ga čini serverom; aplikacije koriste te usluge, što ih čini klijentima. Komunikacijski protokol između servera i klijenta funkcionira transparentno: klijent i server mogu biti na istoj ili na različitoj mašini, sa istim ili različitim operacijskim sustavima i hardverskim arhitekturama (powerpc, x86, x86-64, ia,... / HP-UX, Linux, *BSD, AIX,...). Klijent i server čak mogu sigurno komunicirat i preko interneta (dakle, čak nije potrebna ni LAN veza a kamoli localhost). X klijent također može emulirati X server kroz razne servise prema drugim klijentima (ovo se naziva "X gniježđenje" eng "X nesting"). Otvoreni klijenti poput xnest i xephyr podržavaju X gniježđenje. Kako bi se X klijent koristio na udaljenom stroju, korisnik treba učiniti slijedeće:

  1. Na lokalnom stroju, otvoriti terminal
  2. Otvoriti ssh konekciju prema udaljenom stroju
  3. zahtijevati lokalni display/input (prikaz/ulaz) servis (export DISPLAY[korisnikov_stroj]:0) ukoliko se nije iskoristio SSH sa X tuneliranjem (opcija -X u ssh programu)

Udaljeni X klijent će tada napravit spoj sa korisnikovim lokalnim X serverom, osiguravajući prikaz i ulazne uređaje korisniku. Alternativno, lokalni stroj može pokrenuti maleni program koji se spoji sa udaljenom mašinom i pokrene klijentsku aplikaciju.

Praktični primjeri udaljenih klijenata uključuju:

  1. Administriranje udaljenog stroja grafički.
  2. Izvršavati proračunski intenzivne simulacije na udaljenom stroju i prikazati ih na lokalnom računalu.
  3. Pokrenuti grafičke programe na više strojeva od jednom, te ih kontrolirati sa jednog monitora, tastature i miša.

Principi

1984, Bob Scheifler i Jim Gettys su postavili početne principe X-a:

  1. Ne dodaj novu funkciju ako implementator ne može završiti realnu aplikaciju bez te funkcije.
  2. X zvuči kao porno stvar, pa je dobra reklama za geekove. Pr0n ftw.
  3. Važno je odrediti što sustav nije kako bi se odlučilo što jest. Ne služi sve svjetske potrebe; umjesto, napravi sustav nadogradivim kako bi se dodatne potrebe mogle implementirati u "upward" kompatibilno.
  4. Jedina stvar gora od generalizacija baziranih na jednom primjeru, je generalizacija bez primjera.
  5. Ukoliko ne postoji kompletno razumijevanje problema, bolje je ne ponuditi ikakvo riješenje.
  6. Ako možeš dobiti 90% željenog efekta sa 10% rada, koristi jednostavnije riješenje
  7. Izoliraj kompleksnost što je više moguće
  8. Osiguraj mehanizam umjesto opće metode. Specifično, postavi korisničko sučelje u klijentove ruke.

Prvi princip je bio modificran tijekom dizajna X11 u: "Ne dodaj novu funkcionalnost ukoliko ne znaš realnu aplikaciju kojoj treba." X se u globalu držao ovih principa. Tokom razvoja i implementacije novih dodataka, osiguravala se podrška i kompatibilnost sa originalnom verzijom iz 1987. Ovo je učinilo da je xorg danas izuzetno glomazan, spor, neefikasan i kompliciran za napisati drivere i korištenje zbog svih silnih redundantnih, zastarjelih i nepotrebnih elemenata podrške koja nikome više realno ne treba, a u čistoj suprotnosti sa 3. principom. Trenutno se razvija Wayland kao lagani i brzi nasljednik X-a, ali koji neće biti kompatibilan sa Xorg.

Korisnička sučelja

X je primarni protokol i definicija grafičkih primitiva i namjerno ne sadrži specifikacije izgleda elemenata korisničkog sučelja poput gumbi, menija, izgleda obruba prozora, stilova, itd. Takve strani su definirane od strane upravljača prozora, GUI alata, desktop okruženja ili grafičkih korisničkih sučelja specifičnih za aplikacije. Rezultat je da ne postoji tipično sučelje X-a jer postoji više desktop okruženja popularnih kod korisnika (dva najveća su KDE i GNOME). Upravljači prozora (window manager) kontrolira položaj i izgled aplikacijskog prozora. Ovo znači da će neka sučelja izgledati slično kao ona u MS Windows ili Macintosh, a neka imati radikalno drugačije kontrole poput wmii ili ratpoison). Upravljači prozora su različite sofisticiranosti i kompleksnosti počevši od najjednostavnijih i najlakših upravljača poput twm-a ili evilwm-a, pa sve do veoma detaljnih i kompleksnih sustava poput Enlightenment-a (uobičajeno se označava kao E17). Mnogi korisnici koriste X desktop okruženja koja nude i, osim upravljača prozora, različite aplikacije koja koriste konzistentno korisničko sučelje. GNOME, KDE i Xfce su najpopularnija desktop okruženja. Standardno okruženje na UNIX-u se zove Common Desktop Environment (CDE); bitno je naglasiti da ovo nije standardno Linux okruženje. Budući da je X odgovoran za upravljanje tipkovnicom i mišem, određene kratice su postale povezane sa X. Ctrl+Alt+Backspace (obično) nasilno isključuje trenutnu X sesiju, dok Ctrl+alt+funkcijska tipka (F1,F2,...,F12) mijenja trenutni prikaz na jedan od virtualnih konzola. Ovo nije univerzalno, ali je tipično za razna sučelja i implementacije (windows i mac verzije Xorg neće reagirati na ove kratice).

Implementacije

X.org implementacija služi kao glavna implementacija za X. Zbog liberalnih licenci za X, pojavile su se brojne varijacije, bilo besplatne, bilo slobodne ili komercijalne. Komercijalne UNIX varijante tipično prilagode X za svoj hardver i implementiraju neke vlastite zatvorene dodatke. Do 2004, Xfree86 je bio najčešća varijanta X-a na besplatnim sustaviam sličnim UNIX-u. Xfree86 je započeo kao port X-a za 386 kompatibilni PC, te je do kraja 1990 postao najveći izvor inovacija za X i de facto standard X razvoja. Od 2004 na ovamo X.Org server, varijacija Xfree86 je postao dominantan. Iako se X često asocira sa UNIX-om, X serveri isto tako postoje unutar drugih grafičkih okruženja. Hewlett-Packardov OpenVMS operacijski sustav uključuje verziju X-a sa CDE-om, poznatiji kao DECwindows, kao standardno desktop okruženje. Apple-ov Mac OS X v10.3 (Panther) i v10.4 (Tiger) koriste X11.app, baziran na Xfree86 4.3 i X11R6.6 i sa nekim nadogradnjama.

Ograničenja i kritike

UNIX-HATERS Priručnik (1994) je podredio čitavo poglavlje problemima X-a. Zašto X Nije Naš Idealni Upravljač Prozora (1990,Gajewska, Manasse i McCormack) su detaljno razradili protokol sa preporukama za poboljšanje.

Problemi sa korisničkim sučeljem

Nedostatak vodilja za dizajn u X-u je rezultirao u nekoliko radikalno drugačijih sučelja i aplikacija koji su se pokazali da zajedno ne rade uvijek baš najbolje. ICCCM, specifikacija za klijentsku interoperabilnost, ima reputaciju kao tešku za implementirati po specifikaciji (dakle, točno). Trud uložen u dodatne standarde preko Motif-a i CDE-a nisu uklonili problem, što je strašn ofrustriralo korisnike i programere. Grafički programi sada osiguravaju konzistentnost putem pisanja programa za specifično desktop okruženje ili toolkit (GTK za GNOME, Qt za KDE ili EFL za Enlightenment), što je također način na koji se izbjegava direktno suočavati sa ICCCM-om.

Nedostatak podrške osobama sa posebnim potrebama

Sustavi bazirani na X mogu imati probleme u opsluživanju korisnika sa specijalnim potrebama (slijepi, motorno ograničeni, ...). Problemi se očituju u desnom kliku na mišu, srednjem kliku, "focus stealing", ... Neki X11 klijenti se sa ovime nose bolje od drugih, što znači da ljudi sa posebnim potrebama generalno neće biti odsječeni od mogućnosti korištenja X11; problem je u tome što nema standarda ili pravilnika za X11. Unutar X11 procesa i standarda ne postoji grupa koja se bavi ovom problematikom, što znači da će se trenutni problemi vjerojatno nastaviti i u budućnosti.

Mrežni problemi

X klijent ne može generalno biti odvojen od jednog servera i spojen na drugi ukoliko kod programa specifično ne podržava ovakvu funkciju (emacs je jedan od rijetkih generalnih programa sa ovom funkcijom). Slično, micanje čitave sesije sa jednog servera na drugi je generalno nemoguće; ovo se može zaobići pristupom koji koriste Virtual Network Computing (VNC), NX i Xpra koji dozvoljavaju virtualne sesije od stranih X servera (slično kao odnos GNU Screen ili dtach sa terminalima). Mrežni protok između X servera i udaljenog X klijenta nije enkriptiran po defaultu. Napadač sa snifferom paketa ga može presresti, što bi omogućilo da napadač vidi sve što se događa na korisničkom ekranu. Najčešći način enkriptiranja protoka je korištenjem SSH tuneliranja. Ovo je doduše namjerno tako, jer bi dodavanje sigurne komunikacije značilo dosta koda koji bi bilo teško korigirati ukoliko bi se pojavile greške. Greške i bugovi u ssh se mogu lagano, brzo i neovisno korigirati bez da se utječe na kod X-a. X je razvijen prije širokoraširenog korištenja računala za gledanje filmova i animacija, te je X u stanju obraditi većinom jednostavnu statičnu grafiku i tekst. Renderiranje bazirano na mrežnom prijenosu nema dovoljnu protočnost za količinu podataka potrebnu u animaciji visoke rezolucije koja koristi puni ekran. Primjerice, 640x480, 24 bitna boja i 30 sličica u sekundi zahtijeva 221,184,000 bit/s nekompresiranih podataka na klijentu ili 221 Mbit/s, što je mnogo iznad 10 Mbit/s Ethernet veze koja je bila dostupna kada je X bio svjež komad softvera. Tipični prikaz u rezoluciji 1920x1200 bi zahtijevao 1.65 Gbit/s za punu sliku ekrana, za svaki klijentski prikaz. Ova ograničenja nisu problem jada su klijent i server na istom računalu.

Odvojenost klijenta i servera

X-ov dizajn zahtijeva odvojeno funkcioniranje klijenta i servera, pa neovisnost i odvojenost klijenta i servera stvaraju gubitke u komunikaciji zbog redundancije. Većina ovoga dolazi iz mrežnoih protokola i vremenu koje je potrebno između klijenta i servera (latencija) umjesto iz protokola kao takvog: najbolja rješenja performansa ovise o efikasnom dizajnu aplikacija. Česta kritika X-a je da njegove mrežne mogućnosti rezultiraju u pretjeranoj kompleksnosti i smanjenoj performansi kada se koristi samo lokalno. Moderne implementacije X-a koriste "Unix domain sockets" za efikasno spajanje i komunikaciju, a dodatno se može koristiti dijeljena memorija (putem MIT-SHM ekstenzije) za bržu komunikacoiju na razini klijent-server. Ipak, programer mora eksplicitno aktivirati da bi se koristila dijeljena memorija. Također je nužno osigurati veze za starije implementacije i protoke, u slučaju da se komunicira sa ne lokalnim X serverima.


Povijest

Prethodnici

Postojalo je nekoliko je bitmap prikaznih sustava prije X-a. Iz Xerox-a je dožao Alto (1973) i Star (1983). Iz Apollo Computer je došao Display manager (1981), Apple je dao Lisa (1983) i Macintosh (1984). Unix svijet je imao Andrew Project (1982) i Rob Pikeov Blit terminal (1982). Univerzitet Carnegie-Mellon je napravio aplikaciju za udaljeni pristup "Alto Terminal", koji je prikazivao preklapajuće prozore na Xerox Alto i učino udaljeno računalo odgovorno za obradu prozora, događaja i osvježavanje sadržaja ekrana. X je dobio svoje ime kao nasljednik W prikaznog sustava (koristio se prije 1983) na V operacijskom sustavu. W je koristio mrežni protokol sa podrškom za prozore terminala i grafike.

Dolazak na scenu

X je predstavljen u srpnju 1984 MIT projektu Athena u sljedećem emailu:

From: rws@mit-bold (Robert W. Scheifler)
To: window@athena
Subject: window system X 
Date: 19 Jun 1984 0907-EDT (Tuesday)
I've spent the last couple weeks writing a window
system for the VS100. I stole a fair amount of code
from W, surrounded it with an asynchronous rather
than a synchronous interface, and called it X. Overall
performance appears to be about twice that of W. The
code seems fairly solid at this point, although there are
still some deficiencies to be fixed up. 

We at LCS have stopped using W, and are now
actively building applications on X. Anyone else using
W should seriously consider switching. This is not the
ultimate window system, but I believe it is a good
starting point for experimentation. Right at the moment
there is a CLU (and an Argus) interface to X; a C
interface is in the works. The three existing
applications are a text editor (TED), an Argus I/O
interface, and a primitive window manager. There is
no documentation yet; anyone crazy enough to
volunteer? I may get around to it eventually. 
 
Anyone interested in seeing a demo can drop by
NE43-531, although you may want to call 3-1945
first. Anyone who wants the code can come by with a
tape. Anyone interested in hacking deficiencies, feel
free to get in touch.

Početak i rani razvoj

Originalna ideja za X je nastala na MIT-u 1984 kao suradnja između Jima Gettysa (Projekt Atena) i Boba Scheiflera (MIT Laboratory for Computer Science). Scheifleru je trebalo iskoristivo grafičko okruženje za debugiranje Argus sustava. Projekt Atena je trebao grafički sustav neovisan o platformi kako bi spojio svoju heterogenu mrežu različitih sustava od različitih proizvođača; sustav koji je razvijao Univerzitet Carnegie Mellon (Andrew) nije izdao licencu, a alternative nisu postojale. Projekt je riješio problem na način da je stvorio protokol sposoban pokrenuti lokalne aplikacije i pozvati udaljene resurse. Tokom sredine 1983 inicijalni port W-a na Unix-u se vrtio jednom petinom svoje brzina ne V; u svibnju 1984 Scheifler je zamijenio sinkroni protokol W-a sa asinkronim protokolom, a prikazne liste sa "trenutnim" načinom prikaza grafike kada je X postala verzija 1. X je time postao prvi sustav i okruženje sposobno ponuditi istinsku hardversku i proizvođačku neovisnost. Scheifler, Gettys i Ron Newman su nastavili rad na X-u i progres je bio rapidan. Verzija 6 se pojavila u siječnju 1985. DEC se u to vrijeme prirpemao izdati svoju prvu Ultrix radnu stanicu i zaključio kako je X jedini sustav koji će biti spreman i završen na vrijeme. DEC-ovi inženjeri su portali X6 na DEC-ov QVSS ekran na MicroVAX-u. Tokom drugog kvartala 1985, X-u je dana spsobnost obrade boja kako bi se podržavala mogućnosti DEC VAXstation-II/GPX, što je postalo verzija X9. Grupa na Univerzitetu Brown je portala verziju 9 na IBM RT/PC, ali zbog problema sa čitanjem neprilagođenih podataka na RT-u je postal onužno promijeniti protokol u stanje nekompatibilnosti, što je dovelo do verzije 10 tokom 1985. Od 1986 su vanjske organizacije počele pitati za 1986. X10R2 je izdan u siječnju 1986, a X10R3 u veljači 1986. Iako je MIT nekima naplaćivao licence za X6, odlučeno je ubuduće staviti X10R3 pod licencom koja je postala poznata kao MIT licenca, a čija je svrha bila da popularizira X kod korisnika i povećanje aplikacija pisanih za X. X10R3 je postao prva raširena verzija, a koju su DEC i Hewlett-Packard pakirali sa svojim proizvodima. Neke druge grupe su portale X10 na Apollo i Sun radne stanice, pa ček i IBM PC/AT. Demonstracija prve komercijalne primjene X-a se dogodila na Autofact prodajnom sajmu. Zadnja verzija X10, X10R4 je izišla u prosincu 1986. Iako je X10 nudio interesantnu i moćnu funkcionalnost, postalo je jasno kako bi X protokol trebao koristiti hardverski neutralniji dizajn prije nego što upotreba postane previše raširena; MIT nije imao resurse za takvu potpunu rekonstrukciju. Igrom slučaja, DEC-ov Western Software Laboratory je imao slobodnog vremena, te je predloženo da se DEC primi ovog posla. Smokey Wallace u DEC WSL-u i Jim Gettys su predložili rad na X11 i to sa licencom koju su koristili X9 i X10. Ovo je započelo u svibnju 1986., a protokol je dovršen u kolovozu. Alfa testiranje je započelo u veljači 1987, beta testiranje u svibnju, a konačna verzija se pojavila 15. rujna 1987. Dizajn X11 protokola, kojeg je vodio Scheifler, se masivno diskutirao na otvorenim mailing listama na tek rođenom internetu koji je bio premošćen na USENET grupama. Gettys se preselio u Kaliforniju kako bi pomogao u razvoju X11 u prostorima DEC WSL razvojnog centra, gdje su Phil Karlton i Susan Angebrandt vodili razvoj X11 servera i implementacije. X stoga predstavlja prvi projekt koji se razvijao i vodio na vrlo velikim skalma, distribuirano a koji je bio besplatan i otvorenog koda.

MIT X Konzorcij i X Konzorcij, Inc

1987, sa uspjehom X11, MIT se poželio odreći nadgledanja razvoja X-a, no na sastanku sa devet različitih proizvođača je ideja odbačena, te je predloženo kako je nužno imati neutralnu stranu koja će spriječiti fragmentaciju i forkanje X-a. U siječnju 1988, MIT X Konzorcij je stvoren kao neprofitna grupa sa Scheiflerom kao direktorom kako bi vodio budući razvoj X-a u neutralnoj atmosferi sa ciljem kako bi se zadovoljile komercijalne i akademske potrebe. Jim Fulton se pridružio u siječnju 1988 i Keith Packard u ožujku 1988 kao "senior" razvijatelji. Jim se fokusirao na Xlib, fontove, upravljače prozora i alate, a keith na reimplementaciju servera. Donna Converse, Chris D. Peterson i Stephen Gildea su se pridružili kasnije iste godine i fokusirali na razvoj osnovnih alata i dodataka. MIT X Konzorcij je stvorio nekoliko velikih revizija na X11, prva od kojih je R2 (X11R2) u veljači 1988. Jay Hersh se pridružio osoblju u siječnju 1991 kako bi radio na PEX i X113D funkcionalnosti. 1993 su započele pripreme sa ciljem da se MIT X Konzorcij odvoji od MIT-a, a osoblju su se pridružili R. Gary Cutbill, Kaleb Keithley i David Wiggins. X Konzorcij je osnovan 1993 kao neprofitna organizacija nasljednica MIT X Konzorcija. X11R6 je pušten u javnost 16 svibnja 1994. 1995 pojačao se rad na Motiff toolkitu i Common Desktop Environment za Unix. X Konzorcij se ugasio 1996 sa završnom verzijom X11R6 i ostavštvinom komercijalnog utjecaja u razvoju X-a.

Open Group

U siječnju 1997, X Konzorcij je prenio odgovornost nad X-om "The Open Group", koja je stvorena u ranoj 1996 spajanjem Open Software Foundation i X/Open. Open Group je objavio X11R6.4 tokom rane 1998. Kontroverzno, X11R6.4 se odvojio od tradicionalnog liberalnog licenciranja kako bi se osigurao priljev sredstava za razvoj X-a. Novi uvjeti bi spriječili prihvaćanje od mnogih projekata (poput Xfree86), pa čak i nekih komercijalnih firmi. Kada se Xfree86 odlučio forkati, Open Group je odlučio relicencirati X11R6.4 unutar tradicionalne licence. Zadnja verzija Open Group je X11R6.4 patch 3.

X.Org i XFree86

Xfree86 je započet 1992 iz X386 servera za IBM PC kompatibile te je uključivao X11R5. Xfree86 je evoluirao kroz vrijeme iz samo jednog porta X u vodeću najpopularniju implementaciju i de facto standard za X razvoj. U svibnju 1999, Open Group je formirao X.Org koji je nadzirao razvoj X11R6.5.1 pa na dalje. U ovom trenutku je razvoj X-a postao skoro pa mrtav; najveći tehnološki razvoj od prekida X Konzorcija se dogodio kao djelom Xfree86 projekta. 1999, Xfree86 se pridružio X.Org kao počasni član, što je naišlo na odobravanje od mnogih kompanija zainteresiranih za korištenje Xfree86 na Linuxu. Do 2003, sa popularnošću Linuxa i sa njime Xfree86 kao instalirane verzije, X.Org je postao neaktivan, a razvoj se odvijao samo unutar xfree86. Unatoč tome, pojavio se veliki razdor unutar xfree86. Projekt je zadobio percepciju da se stvari previše odvijaju u monolitsko-katedralnom stilu; razvijatelji nis umogli dobiti pristup CVS commitu-u, a proizvođači (ili Linux distribucije) su morale držati kompleksne setove patcheva. U Ožujku 2003 Xfree86 je izbacio Keitha Packarda, koji se pridružio nakon kraja originalnog MIT X Konzorcija i to sa dosta negativnih emocija. X.Org i Xfree86 su započeli diskutirati reorganizaciju p=X.Org Fondacija= 2004 je oformirana X.Org Fondacija od strane različitih ljudi iz X.org i freedsktop.org, a Open Group je dala kontrolu nad x.org domenom. Ovo je označilo radikalnu promjenu u vodstvu X-a. Do tada su odgovorni za X bili proizvođači raznog softvera i firme, no Fondaciju vode razvijatelji softvera te se koristi bazaar model razvoja (oslanja se masivno na zajednicu). Članstvo je otvoreno individualcima, a korproacijsko članstvo je pretvoreno u sponzorstvo. Više velikih korporacija poput Hewlett-Packarda trenutno podržavaju X.Org Fondaciju. Fondacija nadzire razvoj X: donse tehničke odluke putem dolaženj do grubih konsenzusa među zajednicom. Tehničke odluke ne donosi odbor direktora; što je veoma slično modelu koji koristi GNOME. Fondaciaj ne zapošljava nikakve razvijatelje. Fondacija je pustila verziju X11R6.7, X.Org Server u travnju 2004 bazirane na Xfree86 4.4RC2 (spojena verzija sa X11R6.6). Gettys i Packard su uzeli zadnju verziju xfree86 pod starom licencom i uspjeli dovesti mnogo starih razvijatelja da rade i na ovom novom projektu. X11R6.8 je izišao u septembru 2004 sa mnogo dodatnih funkcija, uključujući preliminarnu podršku za razne napredne efekte i mehanizme kojima bi se povećala kompatibilnost i rad na 3D ekranima i prikazima.

U prosincu 2005 X.Org je izdao X11R6.9, izvorni kod u stilu monolitičkog stabla i X11R7.0, isti izvorni kod samo odvojen u neovisne module koji se mogu razvijati kao neovisni projekti. Fondacija je izdala X11R7.1 22. svibnja 2006, nekoliko mjeseci nakon izlaska verzije 7.0 i to sa dosta novih funkcija i korekcija. Na drugu stranu, Xfree86 se i dalje razvija, ali jako sporo. Verzija 4.8.0 je izdana 15 prosinca 2008. rilagođenu pravilnom razvijanju X-a. Jim Gettys je veoma zagovarao otvoreni model razvijanja još od 2000. Gettys, Packard i još neki su započeli detaljne diskusije o problematici upravljanja razvojem X unutar otvorenog modela. Xfree86 je izdao verziju 4.4 u veljači 2004 pod restriktivnijom licencom koju su mnogi projekti koji se oslanjaju na X vidjeli kao neprihvatljivi. Dodatni članak se bazirao na članku BSD licence, koju su Free Software Foundation i Debian smatrali kao nekompatibilnu sa GPL-om. Drugi su ovo vidjeli kao protiv duha originalnog X-a. Theo de Raadt iz OpenBSD-a je primejrice prijetio forkom Xfree86 citirajući licencu kao razlog. Problemi sa licencom, skupa sa teškoćama sudjelovanja u razvoju je stvorilo osjećaj da je vrijeme za odvajanje projekta.