Mac OS X 10.5: História, architektúra

macos9 25 12 07 - Mac OS X 10.5: História, architektúra

Na trh nedávno vo veľkom štýle prišiel Mac OS X 10.5 „Leopard“ a bolo by trestuhodné, keby ste na MacBlogu nenašli jeho recenziu. Dnes máte možnosť prečítať si prvý diel o tomto operačnom systéme, ale aby bolo možné posudzovať Leoparda ako celok, je dobré vedieť, čo sa v ňom skrýva a hlavne, odkiaľ to pochádza.Z his­torického hľadiska je Mac OS X kríženec Mac OS 9 a systému NeXTSTEP. Operačné systémy z rady klasických Mac OS (tj. 7, 8 a 9) si boli veľmi podobné a datujeme ich na počiatok 90-tych rokov.

System 7 (1991) bol vo svojej dobe pomerne moderný, plne 32-bitový operačný systém. Vytratil sa z neho pôvodný single-taskový Finder, a zostal mu iba MultiFinder, ktorý podporoval multitasking. Bolo možné mať spustených niekoľko aplikácií naraz. Slovko naraz je ale trochu diskutabilné. Iste totiž viete, že aplikácie na žiadom počítači (aspoň pokiaľ má iba jeden procesor) nemôžu bežať v jednom okamihu, a iba sa striedajú, deliac si procesorový čas podľa priority. Multitasking v Systéme 7 bol ale na aplikačnej úrovni, čo je z dnešného pohľadu priam úsmevné. Napriek tomu bol vystriedaný systémom Mac OS 8 až po šiestich rokoch.

Mac OS 8 (1997) priniesol prvé technológie, ktoré prežili dodnes. Dostal tiež meno Mac OS, miesto pôvodného „System“. Bežal na ňom Carbon, ktorý svet pomaly pripravil na revolúciu v podobe o pár rokov neskôr uvedeného Mac OS X. Bolo to API, ktoré umožnilo programátorovi tvoriť aplikácie bežiace nie len na klasických systémoch, ale jeho podpora bola pridaná aj do dnešných systémov. Mac OS X ešte pred nedávnom podporoval aj aplikácie natívne bežiace len v starých systémoch prostredníctvom emulačnej vrsty Classic. S príchodom Intelu však updala do zabudnutia. Vo verzií 8.5 bola vypustená podpora procesorov Motorola 680×0, a s updatom 8.6 prišiel vytúžený multitasking na úrovni systému. Samozrejme zostal kooperatívny a teda niesol so sebou všetky zápory tohto riešenia, ale oproti Systému 7 to bol jednoznačný prínos. V rámci modernizácie prišlo aj nové užívateľské rozhranie Platinum, ktoré bolo viac 3D, ale uchovalo si skvelú ergonómiu, vďaka čomu si ho mnohí pochvaľujú a vyzdvihujú jeho použiteľnosť nad súčasný Aqua interface.

V roku 1998 prišiel na svet Mac OS 9, posledný klasický systém vôbec. Apple mal s touto radou systémov iba jeden úmysel – zbaviť sa ich. A tak okrem bežných evolučných zlepšení, ako podpora viacerých procesorov. Prišiel aj Carbon a systém bol upravený na beh v spomínanej emulačnej vrstve Classic. Aj keď som pred chvíľou napísal, že Carbon bežal na OS 8, prvýkrát bol uvedený až s devinou a následne bol portovaný aj pre tento starší systém.

Čo si teda uchoval Mac OS X z tejto vetvy? Dodnes v sebe obsahuje Carbon, čo na počiatku roku 2001 významne uľahčilo prechod z OS 9 a prvé verzie mali aj Classic na spúšťanie aplikácií písaných pre tie najstaršie systémy. Carbon API je veľmi rozsiahle a umožňuje prístup k veľkému množstvu služieb jadra. Je ho možné rozširovať a vďaka nemu je možné tvoriť aplikácie natívne bežiace na OS X i OS 9.

Z dôb OS 9 prežili aj niektoré aplikácie, samozrejme sú takmer úplne prepísané, ale zachovali si svoju filozofiu. Pekné, nemyslíte? Ja určite nie, prinieslo to vo väčšine prípadov skôr menšií chaos, ktorý už ale s postupom času nie je tak viditeľný. Najznámejším príkladom je Finder. Patrí mu titul najstarší, naviac modifikovaný a najviac kritizovaný program v historií spoločnosti Apple. Zobral si so sebou do OS X svoje Aliasy, teda po slovensky odkazy. Nevinne vyzerajúca drobnosť, ktorá ale zdvihne zo stoličky nejedného programátora. Aliasy totiž nie sú podporované na systémovej úrovni a plynie z toho jeden problém. Predstavte si modelovú situáciu, keď váš program má skopírovať súbory do priečinka. Ak zadáte cestu na priečinok a kód programu je správny, súbory si do cieľa cestu nájdu, ale čo ak zadáte cestu na odkaz priečinka? V tom prípade sa stane všetko, len tie súbory sa tam neskopírujú. Inak povedané, Aliasom rozumie iba Finder, a len on ich vie rozumne interpretovať. Na systémovej úrovni sú podporované len hardlinky a softlinky, ktoré ale Finder nevie tvoriť a používať ich môžte len vďaka Terminálu, čo má od užívateľskej prívetivosti ďaleko. Ak to celé zhrnieme, z klasických systémov prežili iba veci, ktoré mali uľahčiť prechod na Mac OS X. Asi už viete, že z NeXTSTEPu zostalo oveľa, oveľa viac.

NeXTSTEP

Je pomerne známe, že Steve Jobs bol po nezhodách s vedením zo spoločnosti Apple vyhodený a založil si druhú, zvanú NeXT. Tam vyvíjal počítače, ktoré boli ďaleko pred vtedajšími modelmi Macintosha po technickej i softvérovej stránke. Pochopiteľne preto neboli vôbec lacné a nerozšírili sa. Ale všetky technické inovácie by bola škoda zahodiť a v roku 1996 bolo všetko odkúpené. A na nákupoch nebol nikto iný ako Apple. Jeho zamestnanci vedeli, že z klasických systémov už nič dobré nevznikne a potrebovali novú inšpiráciu a hlavne technológie, niečo na čom sa dá stavať. Operačný systém NeXTSTEP bol na tento účel ideálny. Mal totiž všetko, čo človek očakával. Bol objektovo orientovaný, disponoval perfektným preemptívnym multitaskingom a komplexnými vývojárskymi nástrojmi. Bol Unixovo založený, a driemal v ňom Mach kernel spolu s časťami BSD. Mal tiež moderný interface a obsahoval niečo, čo sa neuveriteľne podobalo na Dock. Podpora Drag & Drop v celom systéme, podobne ako to poznáme dnes s Mac OS X, tiež dávala systému náskok po užívateľskej stránke. Interface priniesol aj podporu transparencie, kvalitných zvukových efektov rozhrania, multijazyčnosť, unifikoval správanie všetkých aplikácií a tiež farebné profily pre DTP. NeXTSTEP bol rovnako pripravený na éru internetu, veď napokon prvý prehliadač na svete bol vyvinutý práve na týchto počítačoch v roku 1991. Mnohé klávesové skratky, ktoré sú používané v dnešných prehliadačoch boli kedysi iba štandardnou skratkou pre NeXTSTEP, a až neskôr si ich privlastnili prehliadače pre iné platformy ako svoju vlastnú funkciu. Jednoducho, Apple v tomto systéme videl svoju budúcnosť, aj keď pôvodne chcel kúpiť BeOS. Ale s majiteľom BeOS sa nemohol dohodnúť na cene a NeXT stál iba príjemných 427 miliónov dolárov.

Je jasné, že dnešný Mac OS X je z hlavnej časti kód NeXTSTEPu, ale sú technológie, ktoré sú pre dnešné Macy kľúčové, a boli vyvinuté koncom 80-tych rokov. Veľmi dôležité je hlavne API, ktoré nesie názov Cocoa. Je to viacúrovňové API, ktoré pracuje s mnohými funkciami systému, je prepojené so systémovými knižnicami a frameworkmi, a to všetko zvláda vďaka integrácií veľmi efektívne a z hľadiska programátora pomerne jednoducho. Aplikácie sa dajú písať v Jave alebo Objective C (tiež po prvý krát uvedený na NeXTSTEPe) a ak sa neuspokoja so službami Cocoa, môžu bez problémov nahliadnuť do ponuky Carbonu. Vďaka tomu máte prístup do komplexných služieb QuickTimu, OpenGL a môžte ľahko integrovať aplikáciu do systému. Tie bez problémov zvládajú Drag & Drop, kontrolu pravopisu v EditFieldoch, klávesové skratky a preberajú mnoho vlastností systému. Preto vytvoríte skvelú aplikáciu rešpektujúcu chovanie systému aj keď nechcete. Na druhej strane, neberie vám to kontrolu nad správou threadov, výmenou dát medzi aplikáciami či sieťovaním. Takže kto chce, môže tvoriť aj naozaj veľmi zložité veci.

Samotný NeXTSTEP nám do Mac OS X prispel hlavne svojou architektúrou, otázka dňa je teda, ako vyzerá dnešný Mac OS zvnútra. Keď už vieme čo od koho zdedil, pozrime sa na to, ako to inžinieri v Apple spojili do tak krásneho funkčného celku. Samozrejme, nebolo to jednoduché a Mac OS X nebol hotový ihneď. Produktom kríženia mal najprv byť systém Rhapsody. Apple portoval jadro NeXTSTEPu pre vtedy používanú architektúru PowerPC, a navrchu to zakryl užívateľským rozhraním Platinum z Mac OS 8. Aby sa zachovala kompatibilita, bola pridaná emulačná vrstva BlueBox, neskôr známa ako Classic, a tiež Yellow Box, ktorý vstúpil do histórie ako Cocoa. Projekt Rhapsody vyústil až do serverovej verzie Mac OS X uvedenej v roku 1999. Od bežnej verzie, uvedenej 24. marca 2001 sa na prvý pohľad líšil chýbajúcim Aqua interfacom, ale to vzhľadom na serverové zameranie nebol problém. Horšie to bolo so stabilitou, pretože takto narýchlo upečený hybrid mal občas problém so stabilným behom, napriek tomu bol na tom dosť dobre, aby mohol konkurovať aj na tomto trhu. Do finálnej verzie bol pridaný ešte Carbon, keďže vývojári boli nespokojní s nemožnosťou tvorby univerzálnych aplikácií. Až s postupom času vzniklo niečo, čo používame dodnes. Najlepšie bude, ak si pozriete graficky znázornené vrstvy OS X, kde jasne vidíte, čo je z OS 9, čo z NeXTSTEPU, a samozrejme, ako je to poskladané.

Architektura Mac OS X

Najhlbšie je ukrytý Darwin, ktorý sa však skladá z ďalších súčastí. Skutočný základ sa volá Mach, ktorý sa stará o komunikáciu s Open Firmware (pri PPC Macoch) alebo EFI (pri Intel Macoch), spravuje vlákna programov a prideľuje im pamäť, má na starosti I/O operácie a ovládače. Mach zdieľa pamäťový priestor s BSD. Mach a BSD tvoria unixovo založené jadro XNU. Ak k tomu pridáme vyše 250 ďalších súčastí, ako Apache, PHP a podobne, získame Darwin. Tieto veci sú s otvoreným kódom. Darwin si môžete stiahnuť z internetu, ak chcete. Aj keď je teda Mac OS X derivát BSD, dostal certifikát UNIX 03, čo znamená jednoduché portovanie UNIXových aplikácií na Macy. V rámci tejto špecifikácie boli v Leopardovi trochu pozmenené niektoré súčasti a príkazy v Terminále, aby sa plne zhodovali s týmto štandardom. UNIX 03 pokrýva aj typy knižníc, systémových volaní, prítomnosť niektorých utilít, medzinárodnosť a používanie programovacieho jazyka C.

Nad Darwinom sú Core Services, vďaka ktorým môžu aplikácie napísané v Carbone alebo Cocoa pristupovať k low-level službám, vymieňať si medzi sebou dáta a napríklad komunikovať po sieti. Nad tým sú Application Services, ktoré tvoria zvyčajne front-end programu. Do tejto skupiny spadajú veci ako Quartz, OpenGL, QuickTime, či PrintCore. Core Audio, Core Image, Core Video, Core Animation sú na rovnakej úrovni a pomáhajú v práci s multimédiami. Ešte vyššie sa nachádzajú API’s, ktoré spomínané služby ovládajú, teda Carbon, Cocoa, Java a kedysi Classic. To krásne pozlátko je Aqua, čiže užívateľské rozhranie, tlačítka, okná, slidery a vôbec všetky tie veci, ktoré vám možno aj teraz svietia na monitore, ak sedíte za Macom.

Snaď vám to aspoň trochu pomohlo pochopiť, odkiaľ je váš obľúbený systém, a ako vyzerá z vnútra. Nabudúce si urobíme malý prierez históriou jednotlivých verzií OS X a pustíme sa priamo do najnovšej šelmy – Mac OS X 10.5 „Leopard“.

Zdroje:

Viac článkov na tému

Zatiaľ žiadne komentáre

Pridať komentár

Partneri

Send this to a friend