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
WebKit2 přinese do Safari oddělené procesy na způsob Chrome
14. dubna 2010, 00.00 | Minulý týden ohlášená nová verze rámce WebKit přinese do prohlížečů Safari zpracování kódu ve více na sobě nezávislých procesech, což by mělo citelně zvýšit jejich stabilitu a flexibilitu.
Řada dnešních webových prohlížečů vychází z projektu WebKit, patří k nim také Safari pro Mac OS X a Windows a Mobile Safari pro iPhone OS (WebKit ovšem tvoří též základ prohlížeče Google Chrome a využívají ho rovněž prohlížeče mobilních systémů Google Android a Palm webOS).
WebKit se samozřejmě stále rozvíjí, na čemž nadále má značný podíl Apple, jenž stál u jeho zrodu (původní kód ovšem pochází z projektu KDE) a minulý čtvrtek byly ohlášeny jeho významné úpravy.
WebKit2 zavede nový model zpracování v oddělených procesech
Anders Carlsson, který u Applu pracuje jak na Safari, tak na WebKitu, sdělil, že brzy se začnou objevovat významné úpravy WebKitu, na nichž se u Applu už nějakou dobu pracuje, pod názvem „WebKit2“.
WebKit2 je od počátku navržený tak, aby podporoval model oddělených procesů, kde zpracování webového obsahu (JavaScriptu, HTML, rozvržení stránky, a tak dále) probíhá v samostatném procesu. Podobný model již teď nabízí prohlížeč Google Chrome, který toho však dosahuje vlastními prostředky, zatímco WebKit2 tuhle možnost zabudovává přímo do základního vývojového rámce, proto bude dostupná pro všechny prohlížeče využívající WebKit, k nimž samozřejmě patří také Safari.
To mimo jiné znamená, že každý panel prohlížeče postaveného na WebKitu2 bude moci fungovat jako oddělený proces do značné míry nezávislý na zbytku prohlížeče, takže při zablokování či zhroucení daného panelu neohrozí stabilitu celého programu.
WebKit2 poskytne stabilní, neblokující API rozhraní
Na Webu se již nachází vysokoúrovňová dokumentace popisující hlavní vlastnosti WebKitu 2. Užitý název vysvětluje tím, že jde o změnu API rozhraní nekompatibilní s původním WebKitem, na Macu se proto zřejmě bude instalovat jako samostatný rámec WebKit2.
WebKit2 poskytne stabilní, neblokující API rozhraní pro jazyk C, maximálně nezávislé na platformě, jež dovolí, aby ho současně mohl volat neomezený počet programových vláken, zařídí to kombinací oznámení a zásad uzpůsobených pro nový model zpracování.
Pro Mac OS X se plánuje vytvoření odvozeného neblokujícího API rozhraní pro Objective-C a podobná rozhraní budou zřejmě připravena i pro další platformy.
Nové API rozhraní WebKitu 2 sice pochopitelně není kompatibilní, ale WebKit2 bude nadále obsahovat všechna dosavadní API rozhraní a nemění se ani jádro WebCore, takže půjde nadále využívat výsledky dosavadního vývoje pro WebKit.
Model zpracování WebKitu2 půjde použít pro všechny odvozené prohlížeče
Dokumentace dále podrobněji vysvětluje, jak se liší implementace oddělených procesů ve WebKitu2 a v projektu Chromium (tvořícím základ prohlížeče Chrome). Chromium zpracování procesů zařizuje až nad vrstvou API rozhraní WebKitu a správu procesů obstarává vlastními prostředky, z tohoto důvodu je to použitelné v podstatě pouze pro prohlížeč Chrome. Naproti tomu WebKit2 oddělené zpracování zabudovává přímo do svých API rozhraní, tedy o úroveň níž, právě díky tomu budou nový model moci využívat všechny z něj odvozené aplikace.
Zatím se ovšem WebKit2 nachází ve stavu velice předběžné vývojářské verze, kterou si lze vyzkoušet pod Mac OS X a Windows, když se příslušný kód zkompiluje s odpovídajícím parametrem (není to rozhodně záležitost pro běžné uživatele). Se Safari nový WebKit zatím pracovat nebude, brzy by se však měl objevit jednoduchý webový prohlížeč dovolující testování WebKitu2.
Bude tedy ještě nějakou dobu trvat, než se WebKit dostane do Safari, nakonec k tomu však jistě dojde (zatím ovšem není jasné, kolik času si to vyžádá). Dá se předpokládat, že budoucí verze Safari bude model zpracování v oddělených procesech podporovat, což jistě přispěje ke zvýšení jeho stability. A stejnou možnost by nakonec měly nabízet všechny prohlížeče postavené na WebKitu (přinejmenším na osobních počítačích).