· Minulá kapitola · Obsah · Další kapitola


Trochu technický úvod

Mac OS X je objektový, velmi luxusní operační systém pro osobní počítače a počítačové sítě. Standardně obsahuje velké množství prvků, které pro jiné systémy bývají k dispozici pouze jako komerční dodatečné programové balíky. Navíc je ve všech současných versích (kromě API hostujícího pod NT) stoprocentně kompatibilní s UNIXem a je plně portabilní (ačkoli toho nejnovější verse -- MacOS X -- zatím bohužel nevyužívá, Apple ji dosud distribuuje jen pro Macintoshe). Díky kvalitnímu jádru a špičkovému grafickému subsystému přitom jeho nároky na výpočetní výkon ani zdaleka nedosahují nároků např. Windows NT.

Struktura systému

Mac OS je kompromisem mezi stoprocentně objektovým, ale v praxi obtížně použitelným prostředím jakým je např. SmallTalk ma jedné straně a praktickými požadavky na straně druhé -- např. kompatibility s UNIXem nebo bezproblémové přenositelnosti již existujících klasických programů by v plně objektovém prostředí nebylo možné dosáhnout.

StrukturaMacOSuX

Mac OS má proto strukturu, kterou přibližně vidíme na obrázku: centrem systému je jádro MACH, ovladače a samotné technické vybavení. Nad ním je vrstva knihoven, které zajišťují standardní přístup k systémovým službám, k jednotlivým zařízením a samozřejmě nabízejí množství dalších vlastních služeb. Na další úrovni je rozsáhlá vrstva objektových knihoven (tzv. "kitů") Mac OS, které nabízejí aplikacím (a serverům) všechny potřebné služby prostřednictvím objektových rozhraní. Servery -- samostatné tásky, zabezpečující některé činnosti systému -- využívají služeb knihoven a naopak samy některé své služby knihovnám nabízejí (využijeme-li např. knihovní funkci pro kreslení, bude ve skutečnosti požadavek předán WindowServeru). Konečně na nejvyšší úrovni jsou aplikace, které standardně využívají služby objektových knihoven (a jejich prostřednictvím i serverů) a služby ostatních aplikací prostřednictvím objektových vazeb. Je-li to však zapotřebí, může aplikace přímo komunikovat se serverem, nebo využívat API standardních UNIXových knihoven, které je postaveno na neobjektovém rozhraní knihovních funkcí (a mimo jiné ukrývá objektové služby MACHu).

Grafika a GUI

Jednou z nejsilnějších stránek Mac OSu jsou jeho grafické schopnosti. Grafický model Mac OS X je samozřejmě postaven na technologii klient-server, která bez problémů umožňuje aby např. program pracoval na velmi výkonném centrálním počítači, ale jeho vstup a výstup byl realizován grafickým serverem na pracovní stanici na našem pracovním stole, jež je k serveru připojena lokální sítí.

Grafická primitiva, jimž WindowServer -- grafický server Mac OS -- rozumí, nejsou ad hoc zvolenou sadou primitivních grafických služeb, s jakými se setkáme např. v X Windows. WindowServer namísto toho dokáže interpretovat Display PostScript -- jazyk, který je zcela bezkonkurenčním standardem pro všechna výstupní zařízení. Díky tomu v Mac OS neexistují problémy s rozdíly mezi zobrazením dat na monitoru a jejich tištěnou (nebo faxovanou, nebo svícenou, ...) podobou -- ve všech případech se použije tentýž PostScriptový program, popisující grafický výstup aplikace. Ukažme si velmi jednoduchý příklad -- následující obrázek:

ShadedMacOSX

byl vytvořen odesláním triviálního pětiřádkového programu v PostScriptu přímo Window Serveru; program by měl být v hrubých rysech srozumitelný i bez podrobného vysvětlení jednotlivých operátorů, a vypadá takto:

/Times-Italic findfont 120 scalefont setfont
/printIt {0 0 moveto (NeXT) show} def
60 10 translate
.98 -.02 0 {setgray printIt -1 .5 translate} for
2 3 div setgray printIt

PostScript má mnoho nejrůznějších výhod, ale jednu velkou nevýhodu: je závislý na licenci Adobe. V minulosti z toho plynula nejen vyšší cena celého systému, ale i řada drobných problémů -- NeXTStep např. nemohl tisknout na nepostscriptových tiskárnách (vyjma vlastní tiskárny NeXT); technický problém by to samozřejmě nebyl, jenže licence Adobe to nepovolovala. MacOS X Server ještě zčásti tyto problémy má; pro klientský Mac OS X se firma Apple rozhodla problém odstranit tím, že PostScript nahradí téměř stejně výkonným, ale licencí nesvázaným standardem PDF. Samozřejmě, že na rozdíl od PostScriptu v PDF není možné programovat přímo; to je však prakticky jediná jeho nevýhoda.

Naopak je nový grafický server Quartz až neskutečně rychlý, a umožňuje bezproblémové využívání řady nejrůznějších efektů (jako je průhlednost, real-time deformace obrázků a podobně). Na příštím obrázku např. vidíme tzv. dok v Mac OS X; v něm jsou ikony, jež se dynamicky zvětšují a zmenšují přejedeme-li přes ně myší:

AquaDok

Kromě dynamických změn ikon stojí za povšimnutí miniaturizovaná okna: jak je dobře vidět např. na okně textového editoru (nad kterým je zrovna myš, proto je zobrazen i jeho titulek "Testovací text.rtfd"), nebo na sousedním miniaturizovaném okně Finderu, obsahují miniaturizovaná okna kompletní obsah oken skutečných!

Další zajímavostí grafického modelu Mac OS je jeho schopnost práce s barvami v libovolném z běžně užívaných formátů: RGB, CMYK nebo HSB. Volíme-li barvu prostřednictvím GUI, můžeme samozřejmě použít i klasický barevný kruh nebo můžeme barvu sejmout z libovolného bodu obrazovky. Ti, kdo se zabývají profesionálně grafikou, však pravděpodobně zvláště ocení schopnost Mac OS pracovat s barvami podle standardu PANTONE.

Poslední specialitou grafického systému Mac OS o které se zde zmíníme je jeho schopnost pracovat s tzv. alfa kanálem, tj. mírou průhlednosti. Použijeme-li např. barevný model RGB, nemá barva v Mac OS tři složky, ale čtyři -- červenou, zelenou, modrou a alfa; má-li alfa hodnotu 0, je barva zcela průhledná, při hodnotě 1 je zcela neprůhledná. Hodnoty mezi nulou a jedničkou reprezentují více či méně průsvitnou barvu. Tak tomu bylo už v NeXTstepu; teprve nové grafické rozhraní Aqua však průhlednost využívá doslova "na každm kroku" -- podívejte se na titulky neaktivních oken:

AquaTransparency

Standardní aplikace

Mac OS standardně obsahuje řadu aplikací, usnadňujících práci uživatele i programátora. Můžeme je pro lepší přehlednost rozdělit do čtyř skupin: uživatelské aplikace, aplikace pro administrátora systému, programátorské aplikace a demonstrační aplikace. S prvními dvěma skupinami se seznámíme v tomto školení (administrativě se věnujeme jen stručně); programátorské aplikace budou součástí samostatného školení API OpenStepu, a s demonstračními si může pohrát každý sám...


· Minulá kapitola · Obsah · Další kapitola


Copyright © OCSoftware, 2000; all right reserved