X11

Iz MaFiRaWiki

Logotip  X Window sistema
Enlarge
Logotip X Window sistema

Vsebina


X11 je zbirka komunikacijskih protokolov in računalniških programov za krmiljenje grafičnih zaslonov ter za prikaz grafične uporabniške površine. Uporabljajo ga predvsem sistemi Unix in Linux.

X11 je znan tudi pod imenom X Window System, X Version 11 in X (vendar ne X-Windows).

Zgodovina

X je skupni razvojni projekt treh ogranizacij: Massachussets Institute of Technology (MIT), Digital Equipment Corporation in IBM, projekt je nastal pod imenom "Projekt Athena".

  • Prva verzija je izšla junija 1984, septembra 1987 pa je sledila verzija X11.
  • Zaradi vse večjega uspeha, je bil leta 1988 ustanovljen X-konzorcij, ki je prevzel nadaljnji razvoj. Na trg so prišle različne verzije, zadnja večja X11R6 leta 1996.
  • Nato je prevzela razvoj in standardizacijo "The open group".
  • Od leta 2004 dalje pa vodi standardizacijo "X.Org". Decembra 2005 je izšla verzija X11R7.0.
  • Širitev na osebne računalnike je povzročila predvsem implementacija v obliki proste programske opreme XFree86. Leta 2003 je le ta imela licenčnopravne in interne projektne težave, kar je privedlo do razpada tima razvijalcev.
  • Nadaljnji razvoj X.Org-server-ja je nato šel ustaljeno pot v okviru X.Org Foundation, od tedaj pa velja za najbolj razširjen X-server.

Delovanje

X-server krmili vhodne in izhodne enote (miš, tipkovnica, grafična kartica, zaslon). Za dosego tega teoretično komunicira z jedrom operacijskega sistema, v praksi pa jedro tudi zaobide.

Prikaz pri X je okenski upravljalec (manager) z različnimi funkcijami, ki temelji na rasterski grafiki. Sem spada risanje in premikanje oken, dogodkovno orientirana uporaba kazalne naprave (npr. miš), medprocesna komunikacija in delno tudi funkcije za upravljanje tiska in zvoka. X je torej minimalni sistem za zagotavljanje risanja zgolj enostavnih zadev (na primer črte, vzorci ipd.)

Sam videz in obnašanje okenskega sistema zato ne določa X, temveč okenski upravljalec (manager), ki se zaganja kot običajna aplikacija kot client X-serverja. Le ta pa ni odgovoren za sam izgled programov, to nalogo pogosto prevzema Toolkit (posebna knjižnica), ki prevzema risanje in upravljanje tipičnih elementov grafične površine kot na primer menijev in gumbov.

Komunikacijski model

X je mrežno transparenten in temelji na modelu odjemalec-strežnik. Treba pa je upoštevati, da X server teče na lokalnem računalniku, medtem ko teče X client bodisi prav tam bodisi ga izvajamo na oddaljenem računalniku.

X server deluje na delovni površini računalnika in daje na razpolago svoje grafične storitve X client-om. Vsebuje gonilnike za grafično kartico kot tudi gonilnike za tipkovnico, miš in komunicira z X clientom preko mreže.

X client je uporabniški program, ki lahko deluje lokalno na istem ali pa drugem računalniku (v kolikor je na razpolago omrežna povezava z obema). X client uporablja storitve X serverja za dosego grafične predstavitve in od tega prejema razne dogodke (event-e) kot na primer pritisk tipke na tipkovnici, premikanje miši, klikanje in podobno.

X-terminal

V svetu velikih računalnikov je doživel poznani tekstovni terminalski sistem (npr. IBM 5250 in 3270, pod Unixom pa znani npr. VT100) grafični razvoj pod imenom X-terminal. Gre za računalnik, na katerem teče le X server. X-terminale pogosto uporabljamo za dostop manj zmogljivih računalnikov do računsko intenzivnih aplikacij. Aplikacija sama deluje na serverju, X-terminal pa prevzame le vlogo prikaza grafične površine.

Kaj odlikuje X11?

X server je od vsega začetka zasnovan na učinkovitem mrežnem pogonu. Komunikacija med clientom in serverjem poteka preko standardnega protokola, ki potrebuje le relativno majhne hitrosti povezave. Izvorna koda X sistema je sicer objektno orientirana, pa vendarle napisana v C-ju, tako da je možno prevajanje na vsakem Unix računalniku. X sistem v nasprotju s trenutno MS Windows verzijo ni operacijski sistem, zato sesutje X-a praviloma nima vpiva na integriteto operacijskega sistema. Nadalje ima Window manager ("upravljalna površina") v principu isti status kot X client: v času delovanja lahko en Window manager brez težav nadomestimo z drugim. Z že zelo majhnimi okenskimi upravljalci lahko delamo zelo udobno (npr. twm, ki ima le pribl. 140 KB).

Zaradi premišljene hierarhične zgradbe je možno naslednje:

  • izvajanje programov na računalniku s popolnoma drugo programsko in strojno opremo kot jo imamo v "roki"
  • en server lahko upravlja več zaslonov računalnikov
  • v raziskovalne in testne namene lahko pustimo delovati en X server v oknu drugega X serverja

Razvoj X-a poteka za razliko od strojne opreme na dolg rok z majhnimi spremembami. Zato ni problemov s kompatibilnostjo, če uporabljamo le standardne knjižnice. Pa vendarle uporablja dandanes velik del X clientov razširitve kot na primer Xft, XVideo ali Xinerama.

Šibkosti

Strogo ločevanje X Window sistema od uporabnikove površine vodi sicer k fleksibilnejšemu sistemu, vendar včasih deluje neenotno. Ker ni na voljo - v nasprotju z Windowsi ali MacOS-om - nek glavni Toolkit, ampak imamo različne Toolkite (npr. Qt, GTK+) z različnimi lastnostmi, se lahko zgodi, da se vsak od zagnanih programov različno obnaša.

Poskusa odpravljanja te šibkosti:

  • Možna rešitev je formiranje namizja z enotnimi knjižnicami na površini ali pa da se izognemo X-u in ga nadomestimo s sistemom nameščenim na višjem nivoju, ki že od vsega začetka vsebuje enotno obravnavo elementov na površini. Problem skušajo rešiti v okviru projekta Fresco ter z zamenjavo z Y Window sistemom.
  • Enotnost skušajo doseči tudi tako, da poskušajo vzpostaviti enotnost med različnimi Toolkit-i s pomočjo skupnih smernic za uporabniške vmesnike in načine obnašanja - projekt Freedesktop.org.

Literatura

Osebna orodja