Koncept a história GUI
Aj keď nevieme, čo všetko sa odohrávalo v utajených výskumných laboratóriách, každý určite uzná, že vojaci i iné bezpečnostné zložky majú technológie o niekoľko desiatok rokov v budúcnosti. Napríklad vojenská obranná agentúra DARPA v USA vznikla ako reakcia na úspech sovietskeho Sputniku, a práve táto financovala a podporovala Berkeley verziu Unixu a TCP/IP, ktorý je tak dobrý, že kolujú chýry, že ho vykradol aj Microsoft.
Ak sa však vzdialime od laboratórií či veľkých sálových počítačov, nemôžem nespomenúť fakt, že spoločnosť Xerox už v roku 1972 začala s projektom grafického prostredia pre počítače a v roku 1974 uzrel svetlo sveta Alto - ani nie veľký počítač, ktorého koncept prebrala aj spoločnosť Apple.
Xerox teda priviedol na svet predchodcu X i Windows, myš a GUI. Boli aj paralelné projekty, napr. ďalšie grafické prostredie GEOS vyvinula spoločnosť Berkeley Softworks v roku 1984 ako GUI pre Commodore 64. Microsoft Windows vyšiel na svetlo sveta koncom roku 1983.
Začiatkom osemdesiatych rokov inštitút MIT (Massachusetts Institute of Technology) sformoval projekt Athena, ktorého cieľom bolo vytvoriť sieť s grafickým rozhraním. Takto v podstate vznikol systém X Window. Treba povedať aj to, že počítače Macintosh boli v grafike ďaleko v predstihu. Medzi ďalšie špičkové systémy s grafickým prostredím patria aj počítače NeXT, čo bola spoločnosť, ktorú založil bývalý zamestnanec Apple.
X Window nie je X Windows
X Window systém je skupina ovládačov a knižníc, pomocou ktorých získame grafické prostredie na báze vzťahu klient-server. Ide teda o viac než len o "okná" nielen pre systémy Unix, pre ktoré je však grafické prostredie X určené majoritne.
X Window systém používa protokol, ktorého dizajn špecifikuje vzťah klient-server medzi aplikáciou a displejom. Softvér, ktorý spravuje obrazovku, klávesnicu a myš, sa nazýva X server, a aplikácia, ktorá sa zobrazuje na obrazovke, je chápaná ako X klient. X server prijíma žiadosti od X klienta/klientov. X Window systém sa skrátene volá aj "X" či "X11", jeho názov je derivovaný od pôvodného pomenovania, ku ktorému ešte prídeme, ide de facto o grafický štandard pre systémy Unix a teda aj Linux, ktorý premosťuje rôzne platformy.
X Window nie je ani Windows, ktorého sieťové schopnosti vo verzi 3.1 neboli takmer žiadne, nápravu priniesol Windows for Workgroup 3.11. X bol, na rozdiel od Windows, sieťovo schopný od samého počiatku.
X a Unix
Pod termínom "Unix" máme na mysli Unixu podobný a jemu kompatibilný systém, aj keď túto značku si už niekto osvojil. Unix mal hneď po väčšom nábehu PC na trh problém s tým, že vtedy to ešte nebol systém pre širšiu verejnosť, skôr pre entuziastov, aj keď v laboratóriách grafické prostredie nebolo ničím výnimočným. Začal vývoj, ku ktorému veľmi dopomohli rôzne fakty, ale aj vzhľad a nádhera počítačov Apple a NeXT.
O NeXT sa vraví, že tieto systémy boli nedocenené, a zďaleka predstihli svoju dobu. V súčasnosti X Window beží na rôznych platformách a aj na rôznom hardvéri a verzia systému X, na ktorú dnes najčastejšie narazíte, je X.org (www.x.org) alebo aj XFree (www.xfree86.org). Hoci termín "X Windows" sa objavuje tiež, nejde o terminologicky presné pomenovanie, najskôr je príčinou preklepu alebo neznalosti. Máme ešte niekoľko komerčných X systémov, napr. Metro-X Server alebo DeXtop. Ale poďme k histórii...
Na počiatku bolo slovo, teda UniX…
Unix prvotne postrádal grafické rozhranie, čo pravdaže nemal pri svojom vzniku ani DOS. S príchodom operačných systémov bola komunikácia s užívateľom orientovaná najmä v textovom móde a Unix, ktorého história siaha až do sedemdesiatych rokov, tiež dostal do vienka grafické prostredie neskôr. X, v prechode z drahých vedeckých staníc k nám a do našich domovov, má bohatú históriu. Koncom roka 1989 nemecký študent Thomas Roell začal portovať zdrojový kód pre X server za účelom rozbehnúť grafiku na svojom počítači z rady 386. PC, ktoré sa objavili už v osemdesiatych rokov, boli totiž pre verejnosť dostupnejšie. Vznikol tak X server, ktorému dal Roell pracovné pomenovanie X386.1.1.
Jeho úspech upútal pozornosť vývojárov X v MIT, konzorcia X a Dell Unix tímu v Austine v Texase. Tím Dellu primäl Roella k ďalšej práci na ovládačoch pre grafické karty na systéme, na ktorom mal bežať licencovaný Unix System V Release 4 (SVR4).
Roell ďalej pokračoval v spolupráci s X konzorciom a v auguste 1991 vznikol systém X s názvom X11R5 - IBM kompatibilný PC tak dostal svoju prvú oficiálnu implementáciu systému X. Linux sa narodil iba o niečo málo skôr. X konzorcium požiadalo Roella, aby odstránil istý kód v assembleri a Roell súhlasil. Niektorí v komunite však s týmto krokom nesúhlasili. Tu môžeme hovoriť o prelome v histórii. Roell sa rozhodol pracovať pre komerčnú organizáciu určite aj zo zištných dôvodov, čo spôsobilo, že z projektu X386 vypadol.
XFree, alebo čomu vďačí Linux za svoj rozmach
Stretli sa štyria ľudia, ktorí mali spoločný záujem modifikovať X386 server. Jim Tsilla pracoval na open-source riešení a čerpal z Roellovej práce. Jim prišiel k záveru, že chýbajúci kód v assembleri oslabil výkon, tak sa rozhodol ho zaradiť späť.
Glenn G. Lai, David Wexelblat z AT&T Bell Labs a David Dawes, študent z University of Sydney, pracovali každý zvlášť na odstránení chýb. Netrvalo dlho, kým sa skupina štyroch dozvedela o svojej práci a že ju vlastne duplikujú. Výsledkom bolo zlúčenie síl.
Keďže Roell si osvojil termín X386, Wexelblat a Dawes, aj s narastajúcim počtom stúpencov, sa rozhodli pre iné meno - XFree86. Ak viete trochu anglicky, foneticky sa X386 veľmi podobá výrazu XFree86, ak ho vyslovíte - X386 sa číta ako "X srí eit six". XFree86 sa číta ako "X frí eit six" - vidieť teda, že ide o slovné hranie sa, pričom výraz "x86", ktorý sa týka platformy Intel, nie je celkom presný, lebo XFree86 siaha ďaleko za hranice procesora Intel a jemu kompatibilných.
Projekt XFree86 sa sformoval do konkrétnejšej podoby koncom roka 1992. Konzorcium X, ktoré pozostávalo z firiem ako IBM, AT&T, DEC, Sun a Hewlett-Packard, spolupracovalo s X tímom inštitútu MIT a výsledná práca na systéme X sa stala štandardom pre grafické rozhranie počítačov najvyššej triedy. Tu môžeme spomenúť najmä iné architektúry, nie PC (napr. RISC). Projekt XFree86 však získaval na popularite, hoci primárne bol v tom čase zameraný na počítače Intel - architektúru PC, ktorú väčšina členov konzorcia X prehliadla.
Napriek pokroku, ktorý tím XFree86 dosiahol, projekt bol stále v nevýhode. Keďže skupina nebola členom konzorcia X, nemala prístup k zdrojovým kódom, iba ak sporadicky. Získať prístup ku kódu, ktorý bol nevyhnutnosťou pre ďalší vývoj projektu XFree86, znamenalo stať sa členom konzorcia X, to však nebolo ľahké, pretože XFree86 nebola zatiaľ ani formálna organizácia a aj keby bola, nemohla zaplatiť za drahé členstvo. Bez sponzora bol projekt XFree86 odsúdený do zapadnutia.
Koncom roka 1993, keď konzorcium X pripravovalo verziu X11R6, tím XFree86 sa pokúsil získať členstvo. Spomína Wexelblat: "Celý koncept korporácie pre 'free' projekt bol úplne nový - my sme boli celkom prví. Preskúmali sme dve cesty - buď nájdeme sponzorujúcu spoločnosť, alebo si založíme vlastnú. Keďže sme nemali zdroje, museli sme začať ich získavať…"
Pre členstvo v X konzorciu bolo potrebné obstarať si 5000 dolárov. Po istom úsilí dostáva Wexelblat odpoveď a vraví: "Okamžite som dostal ponuku od John Gilmorea zo spoločnosti Cygnus, ktorý mi poskytol sumu 5000 dolárov pod podmienkou, aby bol projekt XFree86 s licenciou GPL. Ja som to rýchlo odmietol, lebo o GPL sme vôbec nemali záujem… Hneď potom ma oslovil Rick Adams, prezident UUNET, ktorý sa ma spýtal na niekoľko detailov a potom mi poslal šek na 5000 dolárov."
XFree86 Project Inc. ako organizácia bola tak formálne zaregistrovaná začiatkom roka 1994 a stala sa členom X konzorcia. Roku 1994 vyšla verzia XFree86 3.0. O oznámení o členstve v X konzorciu píše aj druhé číslo časopisu Linux Journal. Touto udalosťou sa začali dvíhať vlny s trhom operačných systémov Linux, nastalo obdobie, kedy vznikli "mainstream" distribúcie, teda distribúcie Linuxu hlavného prúdu, medzi ktoré patrí pravdaže aj Red Hat i ďalšie väčšie distribúcie. Možno nie ani tak jadro Linuxu či Linus Torvalds osobne, ale práve dostupnosť verzie X predovšetkým napomohla masovejšiemu rozmachu Linuxu, pre ktorý bol rok 1995 jeden z míľnikových.
Nedávna história
Prvého júla 1996 prešiel manažment vyššie uvedenej skupiny X pod skupinu Open Group, ktorej cieľom bolo štandardizovať rôzne otvorené architektúry vrátane systému X. Skupina Open Group zmenila systém poskytovania licencií pre verziu X11R6.4, čo znamenalo, že zatiaľ čo projekt XFree86 mohol naďalej distribuovať kód pre Linux, predajcovia museli pýtať licenčné poplatky za každú kópiu, ktorú predali, čím sa eliminovala životaschopnosť XFree. Skupina Open Group opäť pristúpila k pôvodnej licenčnej politike, ale citeľné škody tu boli.
Ako vidieť, cesta to bola neľahká a XFree86 Project Inc. sa ako organizácia vyvíjala do dnešnej podoby s rôznymi zmenami a problémami, ale práve vďaka snahe priekopníkov X bola zabezpečená voľne šíriteľná open-source implementácia systému X Window, ktorý beží na operačnom systéme Unix a jeho klonoch (Linux, Sun Solaris, BSD a jeho deriváty, Mac OS X, Darwin, pričom existuje aj port pre OS/2, DOS, QNX, Windows (Cygwin) a ďalšie systémy.
Ak rastie X, rastie aj Linux
Zatiaľ čo projekt XFree86 zažiaril jasne ako hviezda na nebi open source, úspech neprišiel celkom sám od seba. Prielom s príchodom verzie XFree86 4.0 znamenal podporu ďalších účastníkov, keď spoločnosti ako Xi Graphics, Metro Link, Pittsburgh Power Computing, NCR a Unix Systems Laboratories (USL) úzko spolupracovali s Wexelblatom, Dawesom a ďalšími priekopníkmi. Ďalej nemožno nespomenúť ani výraznejšiu podporu firmy Metro Link, ktorá koncom roka 1996 venovala projektu časť technológie, čo spôsobilo relevantnejšiu úpravu kódu XFree86.
Popri spoločnosti Metro Link tu bola ešte ďalšia - Precision Insight, ktorá predstavovala pri uvoľnení verzie XFree86 4.0 významné miesto. Spoločnosť Precision Insight formovali v roku 1998 bývalí Roellovi kolegovia z Xi Graphics. Tím Precision ďalej oslovil dlhoročného vývojára XFree86, Kevina Martina, ktorý sa stal jedným z prvých inžinierov pre grafiku. Spoločnosť Precision zamestnala aj ďalších svetových expertov a jej dlhodobým cieľom bolo posunúť svet X do oblasti 3D. Nízko-úrovňový dizajn architektúry XFree86 sa pohol dopredu koncom roka 1998.
Systém XFree86 4.0 bol k dispozícii v marci 2000, sprevádzaný hlasným trúbením - v histórii X nastal míľnikový krok!
Súčasnosť - X.org
"Free" a open-source komunity sú známe svojimi spormi, čo sa týka licencovania. Dnes toto možno viditeľne pozorovať na útokoch spoločnosti SCO. Podobný problém bol aj ohniskom svárov v skupine XFree86, čo spôsobilo, že sa z tejto skupiny vyčlenila iná, ktorá sformovala X.org. Pred touto udalosťou skoro každá linuxovská i BSD distribúcia obsahovala XFree86. Dnes je to X.org, ktorý však z XFree vychádza. Momentálne na domovskej stránke XFree86 (www.xfree86.org/distros) nájdete distribútorov, ktorí ostali svojmu "staršiemu bratovi" verní.
Ale to je z používateľského hľadiska menej relevantné. XFree si môžete stiahnuť, inštalovať i používať.
Poznámky:
X predstavuje základ pre grafické prostredie Unixov, ktorý sa rozširuje a ktorý možno ďalej dokrášľovať pomocou tzv. window manažérov (správcov okien) ako Enlightenment, BlackBox, AfterStep, Window Maker, Fvwm či TWM a pravdaže aj pomocou desktopového prostredia KDE, GNOME či dokonca prostredia pripomínajúceho NeXT.
Systém X je v kráse grafiky sám o sebe nezaujímavý a potrebuje čosi naviac. Prostredie rozdeľujeme na desktopové a na správcov okien. Okrem prostredia ako KDE a GNOME (desktop) je k dispozícii veľa window manažérov, niektoré sú robustnejšie, iné "ľahšie" a kompaktnejšie. Veľmi užitočná a prehľadná stránka o window manažéroch je aj na adrese: xwinman.org.
Pre automatické nabiehanie systému X musíte editovať skript /etc/inittab, ktorého syntax v Red Hat sa trochu líši od iných Linuxov (napr. SuSE). Stačí, ak zmeníte číslo "3" v časti id:3:initdefault:, ktoré predstavuje v systéme Red Hat multi-používateľský mód bez automatického nabiehania X. Ak chcete, aby X nabiehal automaticky, zmeňte toto číslo podľa pokynov v súbore /etc/inittab vášho Linuxu (Default runlevel).
Ak beží X server, do ďalšieho okna (ako ďalší alebo ten istý užívateľ) sa dostanete použitím kláves [Ctrl+Alt+F1] (alebo [F2] atď.), naspäť do grafického prostredia sa dostanete pomocou [Ctrl+Alt+F7] (u niektorých Linuxoch to môže byť [F5]). Použijete na to príkaz: startx -- :1 z ďalšej konzoly, kde :1 je označenie pre displej (za predpokladu, že už bežiaci X server používa displej :0). Ak vám beží niekoľko grafických inštancií systému X, prepínať medzi nimi budete pomocou [Ctrl+Alt+F7] až [Ctrl+Alt+F12]. Ďalší X server spustíte aj vtedy, keď vám už jeden (viac) beží.
Ak používate terminálové okno (xterm, Konsole), pri zadaní príkazu v okne stratíte nad ním kontrolu, lebo tá je odovzdaná programu pre príkazy, ktorý ste práve spustili. Ak nechcete stratiť kontrolu nad terminálovým oknom, použite príkaz (a obdobne iné príkazy): mozilla index.html &.
Spúšťanie aplikácií na vzdialenom počítači je v systéme X samozrejmosťou. Aj keď má X vlastné utility ako xhost, prihlásiť sa cez sieť do iného počítača je najlepšie pomocou ssh s voľbou -X, teda ako na nasledovnom príklade:
ssh -X -l vase_uzivatelske_meno adresa_pocitaca
Po prihlásení v terminálovom okne stačí uviesť hocijaký príkaz grafickej aplikácie vzdialeného počítača.
Ako zistiť, či funguje GL (Graphics Language)? V X terminálovom okne zadajte príkaz: glxinfo | grep direct. Ak dostanete odpoveď "direct rendering: Yes", potom GL bude fungovať. Ak chcete zistiť, ako funguje obraz, alebo sa chcete pobaviť s grafickou kartou, zadajte nasledovný príkaz do terminálového okna X: glxgears.