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
Softwarové zprávy: LLVM kompilátor, první ukázky Snow Leoparda a Safari 3.1.2 pro Windows. (23.6.08)
23. června 2008, 04.00 | Projekt LLVM by měl podstatně vylepšit kompilátory Applu. Objevily se první snímky obrazovek předběžné verze Mac OS X 10.6 Snow Leopard. A Apple vydal Safari 3.1.2 pro Windows, opravující bezpečnostní chyby.
V tomto článku najdete výběr softwarových novinek pro Macy, druhý dnešní článek se zabývá oznámením klonu Xserve.
Nejprve se podívejme na software:
Další velké softwarové téma – LLVM kompilátor
Vývojářská konference WWDC skončila už před týdnem, ale stále se objevují další zprávy z ní. To zase tolik nepřekvapuje, protože vyjma toho, co se objevilo v zahajovacím proslovu, podléhá veškeré dění na konferenci smlouvě o nešíření důvěrných informací. Přesto se tyto informace nakonec dostanou na veřejnost, zvlášť jestliže se týkají využívání otevřeného softwaru.
Tak tomu bylo v případě SproutCore, javascriptového vývojového rámce pro webové aplikace.
Další takovou technologii, s jejímž využitím Apple počítá do budoucnosti, tvoří LLVM, projekt kompilační infrastruktury s nízkoúrovňovým virtuálním strojem (Low Level Virtual Machine).
Ani LLVM není nějaké velké tajemství, informace o něm se začaly objevovat již dávno, jen se jim nevěnovala velká pozornost, ovšem teď Apple blíže nastínil své plány s ním.
Rozvrh konference na úterý 10. června zahrnoval přednášku na téma „Nová technologie kompilátorů a budoucí směry vývoje“, ve stručném popisu její náplně se mluvilo o tom, že Xcode zavádí dva nové kompilátory pro Mac OS X, GCC 4.2 a LLVM-GCC, vylepšení v těchto novinkách mohou pomoci vývojářům vytvářet lepší aplikace. A přednáška měla také poskytnout náhled na budoucí vývoj kompilátorů.
Apple a GCC
Zkratka GCC původně znamenala GNU C Compiler, šlo o projekt Richarda Stallmana v rámci jeho iniciativy FSF ( Free Software Foundation), jež položila základ pro vývoj svobodného (free) softwaru. Stallman tehdy chtěl vyvinout svobodnou verzi Unixu a začal právě svobodným kompilátorem jazyka C. To se stalo už v polovině 80. let minulého století.
Od té doby GCC prošel velmi dlouhým vývojem, stal se standardním kompilátorem pro mnohé operační systémy (Linux, BSD a též Mac OS X), navíc dnes již podporuje i jiné programovací jazyky než C.
Apple ve svém vývojovém prostředí (IDE) Xcode 3.1 pro Leoparda využívá kompilátor GCC ve verzích 4.0 a 4.2, který podporuje kompilování kódu jazyků Objective-C, C a C++ pro procesory PowerPC a Intel pro Macy a také pro architekturu ARM v případě iPhonu.
GCC v současné době zajišťuje všechny fáze kompilace pro Xcode, avšak s tím se pojí určité nedostatky. Kompilátor GCC se šíří pod licencí GPL, což znamená, že ho nelze přímo integrovat do Xcode, to by si totiž vynutilo, že by Apple musel z Xcode učinit též otevřený software (a to od Applu lze čekat jen těžko). Apple dává přednost otevřeným licencím typu BSD/MIT, jež dovolují zahrnutí otevřených projektů i do rozsáhlejších uzavřených softwarových projektů.
Navíc je GCC, jak plyne z výše uvedeného, dost letitý a v některých jeho částech se to přece jen už projevuje. A právě zde nastupuje LLVM, poměrně moderní projekt, který se snaží nově uspořádat spolupráci jednotlivých součástí kompilátoru, klade důraz na JIT kompilaci (zde najdete dobře srozumitelné vysvětlení tohoto pojmu pro Javu, ale JIT kompilace se dá použít i pro jiné jazyky), na optimalizaci kompilace z více souborů (kdy se spojuje kód z různých programovacích jazyků a optimalizuje se výsledek kompilace) a na architekturu kompilátoru, kdy na sobě jednotlivé komponenty závisí jen ve velmi malé míře, takže se dají snadno tvořit nové komponenty a zároveň je lze dobře integrovat se stávajícími kompilačními nástroji.
Projekt LLVM
Projekt LLVM začal na University of Illinois v roce 2000 jako výzkumný projekt Chrise Lattnera, verze 1.0 byla uvolněna v roce 2003. Lattner na sebe přilákal pozornost Applu poté, co začal zasílat otázky do poštovní konference Applu o Objective-C. V roce 2005 Apple počal sám přispívat k projektu LLVM a nakonec Lattnera přímo najal jako svého zaměstnance.
Vloni se pak objevil Applem vedený projekt Clang, samostatná implementace nástrojů LLVM kompilátorů, jež se snaží poskytnout rychlou kompilaci s nízkou spotřebou paměti, silnou diagnostikou, architekturou postavenou na modulárních knihovnách a těsnou integrací do vývojových prostředí (jako třeba Xcode), to vše pod otevřenou licencí BSD.
Vedle projektu Clang postaveného čistě na LLVM, který využívá nový vývojový syntaktický analyzátor (parser) pro Objective C, C a C++, začal Apple také integrovat některé komponenty LLVM do stávajícího GCC kompilátoru v rámci Lattnerova návrhu LLVM/GCC Integration Proposal. Z něj vznikl hybridní systém, uchovávající vyzrálé komponenty GCC, například jeho syntaktický analyzátor a zároveň přidávající nejhodnotnější komponenty LLVM, včetně moderních optimalizátorů kódu.
Projekt LLVM-GCC
Tento projekt, označovaný jako LLVM-GCC, vkládá do GCC optimalizátor a generátor kódu z LLVM, poskytuje tak moderní metody optimalizace a hloubkové analýzy programového kódu, jež ve standardních komponentách GCC chybějí.
LLVM-GCC se snaží o maximální kompatibilitu s GCC, aby vývojáři mohli snadno přejít na nový kompilátor a těžit z jeho optimalizace kódu bez významných změn svých stávajících projektů. Zasvěcenci tvrdí, že LLVM-GCC vytváří výsledný kód, který soustavně pracuje o 33 procent rychleji než kód vygenerovaný z GCC.
Samotný Apple použil LLVM architekturu pro některé části Leoparda, konkrétně pro implementaci OpenGL (což potvrdil přímo Lattner), s její pomocí emuluje hardwarové OpenGL prvky na těch Macích, co postrádají grafický hardware potřebný k interpretaci OpenGL kódu. Ten se místo toho interpretuje JIT algoritmem na procesoru.
A LLVM se rovněž využívá ve vývoji pro iPhone, modulární architektura projektu usnadňuje doplnění podpory pro další procesorové architektury, v tomto případě ARM.
LLVM bude zřejmě hrát ještě větší roli v budoucnosti, protože Apple plánuje větší využití vícejádrového a víceprocesorového paralelního zpravování. Jiným směrem se ostatně ani vydat nemůže, nárůst taktovacích frekvencí procesorů se výrazně zpomalil, takže jejich výrobci místo toho začali přidávat procesorová jádra (nakonec již dnes obsahuje Mac Pro standardně osm procesorových jader) a výhledově Intel uvažuje o procesorech s dvouciferným počtem jader.
Avšak využití vícejádrových procesorů není zrovna přímočaré, narozdíl od zvyšování taktovací frekvence bude nutné této architektuře přizpůsobit programový kód, aby jejího výkonu skutečně využil.
Budoucnost kompilátorů Applu
Se současnými programovacími prostředky se však takový kód připravuje obtížně, proto Apple chystá v budoucí verzi Mac OS X, nazvané Snow Leopard, prostředky usnadňující využití více procesorů a též moderních vysoce paralelních grafických procesorů, jako třeba jazyk OpenCL a technologii Grand Central (bližší podrobnosti najdete tady).
Ovšem aby aplikace skutečně účinně využily paralelní architektury hardwaru, musí být jejich kód přímo optimalizován kompilátorem. A právě v tom by se měl LLVM stát klíčovým nástrojem.
Apple, jakožto největší přispěvatel do projektu LLVM, spolupracuje na posunutí technologie kompilátorů tímto směrem jak s výzkumníky z akademického prostředí, tak s dalšími firmami, včetně výrobce superpočítačů Cray. A obdobně přisívá i do projektu GCC.
Protože se v obou případech jedná o otevřené projekty, lze z jejich volně přístupného zdrojového kódu snadno odhadnout, co Apple plánuje dál. Hodlá vylepšit ladění kódu, urychlit kompilaci, zvýšit rychlost výsledného kódu, chce posílit bezpečnostní prvky zamezující nebezpečným přetečením bufferu a snaží se optimalizovat výsledný kód pro konkrétní procesory.
Výsledkem by měly být rychlejší aplikace, jejichž autoři se budou moci soustředit na samotnou jejich tvorbu, aniž by se museli potýkat se zastaralou technologií kompilátoru.
Optimalizace pro konkrétní hardware navíc znamená, že Apple bude moci svůj software vyladit pro specializovaný hardware. V dubnu Apple převzal firmu PA Semi zabývající se vývojem specializovaných čipů. Apple naznačil, že hodlá PA Semi využívat zejména pro speciální čipy do iPhonu a iPodů, díky LLVM pro ně bude moci poměrně snadno vyvíjet potřebný software.>
Podrobné informace o projektu LLVM shrnuje tento web, vyžaduje ovšem příslušné znalosti.
Běžní uživatelé Maců či iPhonu sice asi s projektem LLVM nikdy pracovat nebudou, avšak s jeho výsledky se stejně setkají, protože by jim měl zajistit výkonnější a bezpečnější aplikace. Lze předpokládat, že ohlášené optimalizace ve Snow Leopardovi budou do značné míry vycházet právě z implementace LLVM do vývojových nástrojů, totéž by mělo platit i pro aplikace. Ačkoli bude zřejmě ještě třeba překonat mnohé překážky, budoucnost (Mac) OS X a jeho aplikací se tak jeví docela optimisticky.
První snímky obrazovek Snow Leoparda
Na konferenci WWDC Apple předvedl předběžnou vývojářskou verzi Mac OS X 10.6, kódově označenou Snow Leopard. Naznačil základní vlastnosti nového systému, které by měly spočívat především v posílení stability a ve zvýšení výkonu.
A nyní se začaly objevovat první bližší podrobnosti k předvedenému sestavení Snow Leoparda.
Německý web Apfeltalk přinesl snímky obrazovek této předběžné verze. (Stručnější anglický výtah nabízí Engadget).
Tyto snímky ukazují, že Safari (zřejmě ve vývojářské verzi 4.0) nabízí položku menu „Save as Web Application“ (Uložit jako webovou aplikaci), jež vytvoří úplnou verzi webu, kterou půjde použít i bez připojení a bez webového prohlížeče.
Podobně jako ikony webových aplikací na domovské obrazovce iPhonu tato funkce usnadní přístup k internetovým aplikacím typu Google Docs či Photoshop Express, do jisté míry nahrazujícím lokální programy počítače.
Nová verze Safari by též měla obsahovat nové javascriptové jádro SquirrelFish, podstatně výkonnější než to v současném Safari, což rovněž přispěje k lepší podpoře webových aplikací.
Dalších zjevných změn se objevuje už jen málo (nijak překvapivé, když samotný Apple prohlásil, že se ve Snow Leopardovi hodlá soustředit na doladění „vnitřností“ systému), většinou se projevují pouze ve vyšším čísle verze aplikací a utilit. Na to, že jde o hodně předběžnou verzi, ukazuje také to, že dané sestavení zatím používá QuickTime 7.6 namísto zásadně přepracovaného QuickTimu X plánovaného pro konečnou verzi.
Ta ovšem má vyjít až za rok (tedy někdy v létě 2009), do té doby Snow Leopard jistě projde ještě mnoha dalšími změnami.
Safari 3.1.2 pro Windows opravuje bezpečnostní chyby
A na závěr ještě jedna zpráva o Safari, tentokrát však ve verzi pro Windows. Ve čtvrtek Apple vydal Safari 3.1.2 pro Windows, jež přináší především opravy chyb.
Konkrétně se jedná o čtyři opravy, jedna napravuje chybu WebKitu, kvůli níž by záškodnický javascriptový kód mohl způsobit zhroucení prohlížeče. Další oprava zabraňuje záškodnickým BMP nebo GIF souborům zjistit, co se právě nachází v aktivní paměti. Verze 3.1.2 též řeší problém s vykonáváním kódu v souborech stažených do plochy a s bezpečnostní dírou dovolující spuštění souborů stažených z důvěryhodných webů. Podrobnější popis těchto bezpečnostních aktualizací najdete v příslušném dokumentu Applu. Dále by Safari 3.1.2 mělo přinášet blíže nespecifikovaná vylepšení stability.
Safari 3.1.2 se nabízí jen pro Windows, pod Mac OS X se zřejmě tyto chyby neprojevují. Novou verzi lze získat přes funkci automatické aktualizace v Safari, případně se dá stáhnout z webu Applu (má velikost 44 MB).