Logo archivu

SoftwarovΘ noviny
Φ. 8/97

zpet na domovskou stranku
titulni strana
obsah
predchozi cast
nasledujici cast
Saga rod∙ LAN a WAN
X-terminßly: prvnφ pokus o grafickΘ terminßly
titulni strana obsah
predchozi dil nasledujici dil

Snaha dodat terminßl∙m schopnost pracovat v grafickΘm re₧imu samoz°ejm∞ neskonΦila u konstatovßnφ, ₧e zp∙sobem naznaΦen²m v zßv∞ru odstavce cesta opravdu nevede. Zopakujme si znovu, v Φem je zßkladnφ kßmen ·razu: v tom, ₧e veÜkerß grafickß data vznikajφ tam, kde b∞₧φ vlastnφ aplikace (tj. na hostitelskΘm poΦφtaΦi), a tato data jsou opravdu p°φliÜ velkß na to, aby bylo ·nosnΘ je p°enßÜet n∞kam jinam (na u₧ivatel∙v terminßl), a teprve tam je zobrazovat. Lidi vÜak brzy napadlo efektivn∞jÜφ °eÜenφ: vzφt funkce spojenΘ s generovßnφm grafick²ch dat (kterΘ produkujφ ony p°φliÜ velkΘ objemy), odd∞lit je od samotnΘ aplikace a p°enΘst je p°φmo na u₧ivatel∙v terminßl. Ten pak sice bude muset mφt urΦitou v²poΦetnφ kapacitu, aby tyto funkce dokßzal zajiÜ¥ovat, ale na druhΘ stran∞ se tφm hodn∞ uÜet°φ na objemech komunikaci mezi aplikacφ a terminßlem, na kterΘm jsou zobrazovßny. Pokud pak aplikace bude chtφt vykreslit na u₧ivatelov∞ obrazovce nap°φklad rßmeΦek, u₧ mu nebude muset posφlat tento rßmeΦek rozkreslen² a₧ do jednotliv²ch pixel∙ - mφsto toho mu poÜle krßtk² p°φkaz ve stylu "Vykresli_rßmeΦek()", jeho₧ "objem" je prakticky zanedbateln². O p°φsluÜnΘ vykreslenφ rßmeΦku se ji₧ postarajφ zobrazovacφ funkce, realizovanΘ p°φmo v terminßlu, a jimi vytvo°enß grafickß data se ji₧ nebudou nikam p°enßÜet, ale "zkonzumujφ se" p°φmo na mφst∞.

Obrßzek 1.
P°edstava fungovßnφ systΘmu X Window

Pro praktickou vyu₧itelnost tΘto myÜlenky je samoz°ejm∞ velmi podstatnΘ, jak se navrhne rozhranφ mezi aplikacφ a zobrazovacφmi funkcemi, implementovan²mi p°φmo v terminßlu, vΦetn∞ pravidel a konvencφ pro jejich vzßjemnou komunikaci. Jedno z prvnφch praktick²ch °eÜenφ nabφdnul systΘm X Window (pozor, bez "s" na konci), Üit² na mφru prost°edφ Unixu. Podle filosofie tohoto systΘmu je zobrazovßnφ (vykreslovßnφ) slu₧bou, realizovanou na architektu°e klient/server. Serverem zde je ten, kdo zajiÜ¥uje vykreslovßnφ nejr∙zn∞jÜφch objekt∙ (a tedy terminßl vybaven² pot°ebn²mi schopnostmi), zatφmco klientem je ten, "kdo si °φkß" o vykreslovßnφ, resp. ten kdo generuje konkrΘtnφ po₧adavky na vykreslenφ (a to je samotnß "u₧iteΦnß" aplikace, se kterou u₧ivatel pracuje). Pon∞kud odliÜn∞ od obvyklΘ konvence zde tedy aplikace vystupuje v roli klienta, zatφmco v roli serveru vystupuje terminßl (oznaΦovan² v tomto konkrΘtnφm p°φpad∞ takΘ jako tzv. X-terminßl).

SystΘm X-Window a jeho X-terminßly se ale v praxi moc neuchytili. D∙vod∙ bylo vφce: svou roli jist∞ sehrßla i relativnφ komplikovanost a nßroΦnost tohoto °eÜenφ na nastavenφ a konfiguraci. Nev²hodou pak byla i relativnφ univerzßlnost celΘho °eÜenφ, kterΘ sice umo₧nilo vyjφt vst°φc mnoha r∙znorod²m aplikacφm a systΘm∙m, ale na druhΘ stran∞ si to vy₧ßdalo nep°φjemnou da≥: komunikace mezi klientem a serverem v prost°edφ X Window nemohla b²t vφce "uÜita na mφru", resp. optimalizovßna tak, aby objem p°enßÜen²ch dat byl opravdu hodn∞ mal². X-terminßly majφ stßle jeÜt∞ relativn∞ vysokΘ nßroky na pr∙chodnost p°enosov²ch cest.


Tento Φlßnek m∙₧e b²t voln∞ Üφ°en, pokud se tak d∞je pro studijnφ ·Φely, na nev²d∞leΦnΘm zßklad∞ a se zachovßnφm tohoto dov∞tku. Podrobnosti hledejte zde, resp. na adrese http://archiv.czech.net/copyleft.htm