Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!
Zadejte Vaši e-mailovou adresu:
Kamarád fotí rád?
Přihlas ho k odběru fotomagazínu!
Zadejte e-mailovou adresu kamaráda:
Software
Rychlost MacOS X - základy
macosearly
13. ledna 2003, 00.00 | Na čem je vlastně rychlost počítače závislá? Jak ji ovlivňuje programátor nebo uživatel? Odpovědi na tyto a mnohé další otázky najdete v seriálu o rychlosti OSX.
Dnešní článek je založen na informacích, které jsem získal ve vývojářské skupině "> a na internetu na řadě míst a v několika diskusních skupinách - jejich stručný seznam najdete na konci článku. Jeho účel vidím v tom, že shrnuje názory z více stran, takže výsledkem je sice poměrně stručná, ale na druhou stranu zase bohatá názorová směs. Protože u toho tématu se nedá dost dobře vyhnout technickým termínům, najdete jejich krátké vysvětlení také na konci textu.
Nejdříve bych se rád pozastavil nad jednoduchou úvahou. Na čem je vlastně rychlost počítače závislá? A přestože se jedná o otázku jednoduchou, odpověď na ni je nepoměrně složitější. Už samotný pojem rychlost počítače je velmi subjektivní, protože vývojář očekává něco jiného než běžný uživatel a ten zase něco úplně jiného než statistik, zpracovávající miliony záznamů. A od těchto požadavků jsou pak na hony vzdálené údaje, kterými nás „krmí“ PR oddělení výrobců procesorů, ostatního hardware a operačních systémů.
Podle mého názorů naprostá většina uživatelů, ať jsou to z jakékoliv jmenované skupiny, porovnávají rychlost počítače podle subjektivního hlediska – odezvy operačního systému nebo své nejoblíbenjěší aplikace na požadavky. Mezi ně patří například: rychlost spouštění aplikace, odezva na kliknutí do menu, případně na změnu velikosti okna. V poslední době, tím, jak se internet stává pro rostoucí množství uživatelů každodenním chlebem, se do výše uvedených požadavků zařadila také rychlost zobrazení stránky v internetovém prohlížeči.
Přesto, že jsem na počítače Apple Macintosh a operační systém MacOS X hodně zatížen, musím velmi kriticky uznat, že v parametrech výše uvedených zaostáváme. Nechci být označen za nějakého buřiče, ani se nechci nijak zaplést do nikdy nekončící diskuse mezi uživateli MacOS a Windows, ale vzhledem k tomu, že musím každodenně pracovat na obou platformách vím, že to je pravda. Ale zároveň jedním dechem dodávám, že jako zatvrzelý „mekista“ bych neměnil. O tom ale tento článek nemá být a nebude. Slibuji. V celé další části budu popisovat ne rozdíly mezi MacOS a Windows, ale mezi různými aplikacemi pro MacOS X.
Jak jistě všichni víte a tady na serveru www.mujmac.cz to bylo několikrát popsáno, sestává se operační systém MacOS X z několika vrstev. Tyto vrstvy se dají porovnávat a rozdělovat podle několika kritérií, ale pro náš učel si vybereme rozdělení podle API. Pro vysvětlení a názornost se prosím podívejte na následující obrázek. Jsou na něm vyznačeny ty vrstvy, které nás zajímají. Jak vidíte, úplně dole je jádro, kernel označovaný jako Mach. Jádro se stará o služby nejnižší úrovně, jako jsou správa virtuální paměti, rozdělování procesů procesorům, multithreading a podobně. Nad jádrem jsou vrstvy, které nás budou zajímat, jsou to Carbon a Cocoa. Javu a BSD vynecháme, protože o Java vrstvě nic nevím a dozvěděli byste se ode mne nanejvýš sbírku hloupostí, a BSD mám (sice z jiného pohledu) připravené pro některý z dalších článků a spoustu informací můžete najít v musíte-si-přečíst sérii článků Ondry Čady. Carbon a Cocoa jsou termíny hodně omílané ve všech médiích, mezi všemi laiky i jejich zasvěcenějšími verzemi. Co to však znamená z programátorského hlediska už všem tak jasné není.
Všichni sice dokola opakujeme, že Carbon používají ti, kteří měli již své aplikace napsané pro dřívější verze operačního systému MacOS, ale proč to tak je, případně, že to vůbec nemusí být pravda, se už dozvědět nemusíte. Nejdříve bych vám rád udělal velmi rychlou a povrchní exkursi do oblasti programovacích jazyků. Z mé zkušenosti a teď všichni programátoři méně používaných jazyků (ASM, LISP, Fortran, lex, yacc a mnohé další) prominou, se používají jazyky Pascal, rodina jazyků na základě C (C++, Objektive C, Objektive C++), Java, Basic, Apple Script. Vím, že jsem nezmínil webové jazyky, ale v tuto chvíli je nepotřebujeme. Pascal je rozhodně na úbytě, protože v tuto chvíli není žádný kompiler pro OSX.
Protože jsem programoval v C++ a snažím se programovat v Objective-C, rád bych se zastavil u těchto dvou. Pro ty, kteří to nevědí, jsou C++ i Objective-C nadstavbou nad jazykem C, takže se to, co je napsané v C, lze použít i v C++ a Objective-C.
API - application programing interface. Rozhraní pro programátora. Spočívá v tom, že programátor dostane k použití knihovny a hlavičky, ve kterých jsou popsané funkce. Jako příklad uveďme třeba funkci na načtení obrázku ze souboru (v Cocoa):
NSImage
- (id)initWithContentsOfFile:(NSString *)filename
Carbon
Aplikace označované jako Carbon jsou z naprosté většiny aplikace vytvořené od dvou kategorií programátorů.
- a) Dlouhodobí vývojáři pro počítače Macintosh, kteří již měli své aplikace napsané pro předchozí verze systému MacOS a chtěli relativně jednoduše uvést své aplikace na MacOS X
- b) Vývojáři, kteří vidí svůj osud v používání C++
Cocoa
Hledáte-li nějakou typickou Cocoa aplikaci, podívejte se na všechny iAplikace od Apple. Pak můžete započítat všechny aplikace od bývalých programátorů pro NeXTStep/OpenSTEP jako je například sada aplikací Create od společnosti Stone a mnohá další. A všichni vývojáři, kteří jsou unešeni jednoduchostí programování v Objective-C.
BSD
Varianta UNIXu, použitá pro OS X.
http://www.apple.com/developer
http://www.arstechnica.com
http://www.byte.com/documents/s=7692/byt1035828368066/1028_bar.html
http://www.osxfaq.com
http://cocoadevcentral.com/
http://www.macdevcenter.com/mac/
http://www.stepwise.com/
Obsah seriálu (více o seriálu):