Internetové prohlížeče a renderovací jádra - Historie a srovnání

Tagy:  jádra prohlížečů, renderovací jádra, vykreslovací jádra, rendering engine, layout engine, browser engine, web, surfing, Trident, Gecko, Presto, WebKit, Servo, Blink, Internet Explorer, IE, Firefox, Mozilla, Netscape, Google Chrome, Opera, Safari

Sponzorované odkazy

Internetové prohlížeče a renderovací jádra - Historie a srovnání

Internetové stránky, jak je vidíme každý den zobrazené před sebou, ve své podstatě neexistují. Každá taková stránka je pouze textový dokument, zpravidla ve formátu HTML, který je plný kódu, pod kterým si jen obtížně představíme nějaké skutečné prvky. Proto používáme internetové prohlížeče, které se starají o to, abychom před sebou viděli už plně funkční internetovou stránku. Ale tím, kdo stará o vykreslování těchto prvků, není ve skutečnosti prohlížeč samotný, ale jeho součást, která se nazývá vykreslovací jádro (angl. rendering engine). V dnešním článku zjistíte, jak tato jádra vznikla, na jakém principu fungují a kde všude je můžeme najít.

Kód, který má jádro za úkol vykreslitKód, který má jádro za úkol vykreslit

Historie

Použití specializovaného software pro vykreslování obsahu nebylo vždy samozřejmostí. První internetový prohlížeč vznikl v roce 1990, o pět let později ho následoval prohlížeč Netscape v závěsu s prohlížečem Internet Explorer z dílny Microsoftu. Z obou se stali v příštích letech silní konkurenti. V této době byly prohlížeče monolitické – jako jeden kus softwaru obstarávaly vše, co bylo při práci s webem potřeba.

Válka mezi IE a NetscapeVálka mezi IE a Netscape

Společně se zvyšující se komplikovaností webů a hlavně s nutností dodržovat standardy organizace W3C přišla potřeba vyvíjet software pro zpracování a zobrazování obsahu internetových stránek odděleně. V říjnu 1997 vyšel Internet Explorer ve verzi 4.0 a přinesl s sebou nové vykreslovací jádro Trident. Netscape ho následoval vzápětí na počátku roku 1998, kdy uvolnil pod licencí open-source své vlastní jádro, které se původně jmenovalo Raptor, ale kvůli problémům s ochrannou známkou muselo být přejmenováno a dnes ho známe pod názvem Gecko.

Od té doby vzniklo více podobných enginů, těch vyvíjených a používaných je v současnosti okolo deseti. Některé jsou vyvíjeny firmami pouze pro vlastní účely, jiné jsou s otevřenou licencí využívány různými programy. Zdaleka nejde jen o internetové prohlížeče, vykreslovací jádra jsou dnes využívána například v e-book čtečkách, v e-mailových klientech nebo třeba pro zobrazení nápovědy – všude, kde je potřeba pracovat s formátovacími informacemi zapsanými převážně jako HTML, CSS nebo XML.

Jak jádro pracuje

Princip fungování vykreslovacích jader byl původně poměrně jednoduchý. Za posledních patnáct let vývoje ale přibylo v jejich zdrojovém kódu mnoho nových řádků, prošly rozsáhlou optimalizací, musely se přizpůsobit řadě webových standardů a v neposlední řadě se také naučily opravovat ty nejčastější chyby tvůrců webu. Celý proces je proto v současnosti velmi komplexní posloupností operací a v následujícím odstavci je popsán pouze velmi zjednodušeně.

V okamžiku, kdy kliknete na nějaký odkaz, prohlížeč začne přijímat pakety obsahující zdrojový kód načítané stránky, které posílá vykreslovacímu jádru tak, jak k němu postupně přicházejí. Společně s tím mu předá údaj o tom, kde se nacházejí jeho okraje a jaká je tím pádem velikost pole, na kterém se stránka může zobrazit. O více se už nemusí starat, nyní pouze čeká na výsledek. Renderovací engine mezitím začne zpracovávat zdrojový kód. Ze značek zvaných HTML tagy si sestaví pomyslný strom s objekty na stránce a udělá si představu o tom, jak daná stránka bude vypadat. Zatímco ještě čeká na nějaké dodatečné soubory, jako například obrázky, které budou načteny až po samotném zdrojovém kódu, začne se starat o rozmisťování prvků. Na základě znalosti rozlišení obrazovky a velikosti okna prohlížeče určí pozici všech objektů na stránce. Ta se může v průběhu tohoto procesu měnit, jak postupně přicházejí nové součásti stránky. Poslední fází je pak samotné vykreslování, kdy se stránka zobrazí do těla prohlížeče. Tím je práce vykreslovacího jádra hotová, ale zůstává i nadále v pohotovosti. Kdykoliv totiž může přijít potřeba stránku překreslit. Nemusí to být jen při načtení nového odkazu, ale také při změně velikosti okna nebo pokud se třeba po nějaké činnosti uživatele objeví na stránce nový prvek, který je potřeba do současného rozložení zakomponovat.

Takto celý proces vypadá zakreslený v grafuTakto celý proces vypadá zakreslený v grafu

Přehled

Trident

Jak už bylo zmíněno v úvodu, Trident patří mezi vykreslovací jádra s nejdelší historií. Jedná se o produkt Microsoftu a je pod licencí MS-EULA k dispozici i ostatním vývojářům. Toho využívají některé méně známé browsery a další jako např. Maxthon nebo Lunascape ho využívají v kombinaci s ostatními jádry. Primární uplatnění ale má v prohlížeči Internet Explorer. Ten byl ve svých dřívějších verzích značně kritizován pro nedodržování standardů, což se značně zlepšilo od verze 7, pro kterou Microsoft značně Trident přepracoval. Zajímavostí je, že tento engine je použit v Průzkumníku ve Windows 98, Me a 2000 a také pro Ovládací panely ve Windows XP.

Nová podoba loga IENová podoba loga IE

Gecko

Gecko je kompletně open-source engine vyvíjený společnostmi Mozilla Corporation a Mozilla Foundation, které původně vznikly právě pod záštitou Netscape Communications Corporation. Byl určen pro prohlížeč Netscape, ale dnes je nejvíce rozšířený díky Firefoxu a další produktům od společnosti Mozilla, z nichž nejznámější je e-mailový klient Thunderbird. Také ho můžeme najít například v linuxové verzi správce fotografií Picasa od Googlu.

Gecko a Mozilla FirefoxGecko a Mozilla Firefox

Presto

Presto patří mezi jádra s privátní licencí. Je vyvíjeno společností Opera pro své produkty, konkrétně pro desktopový prohlížeč od verze 7 a dále pak pro mobilní prohlížeče Opera Mobile a Opera Mini. Poprvé bylo představeno v roce 2003.

Presto EnginePresto Engine

WebKit

Přestože se WebKit osamostatnil jako open-source teprve v roce 2005, má za sebou už delší historii. Vznikl totiž jako odnož KHTML, renderovacího enginu z projektu KDE. Na jeho vývoji se v minulosti podíleli například Apple, Google, Nokia nebo Blackberry a v současnosti se jedná o nejrozšířenější engine na světě. Hlavní podíl na tom má fakt, že je využit v prohlížečích Google Chrome a Safari. Stejně tak je ale základem i vestavěných prohlížečů na Symbianu nebo na Androidu a pro renderování internetového obsahu ho využívá i Playstation 3, Steam nebo čtečka knih Amazon Kindle.

WebKitWebKit

Servo, Blink

Podíl jader prohlížečů na trhu by se mohl v blízké budoucnosti výrazně změnit. Mozilla před nedávnem oznámila, že společně se Samsungem vyvíjí kompletně nový engine pod názvem Servo, který bude určen speciálně pro potřeby mobilních zařízení. Ve stejnou dobu oznámil Google, že pracuje na jádru se jménem Blink, které je částečně odvozeno od WebKitu. Bude v Google Chrome od verze 28 a přijala ho také Opera, která ho do svého prohlížeče začlení od verze 15.

Závěrem

Vykreslovací jádra se starají o tu pro uživatele nejpodstatnější část surfování po internetu a tou je zobrazování obsahu. S tím je spojena i další, s oblibou porovnávaná vlastnost prohlížečů – jejich rychlost. Proto je výběr jádra pro vývojáře internetových prohlížečů podstatnou záležitostí a ve většině případů se na jeho vývoji sami podílejí. Doufejme, že konkurenční boj, který mezi jejich tvůrci probíhá, bude nakonec výhrou pro uživatele a přinese nám lepší zážitky z prohlížení webu, ať už si zvolíme kterýkoli prohlížeč.

Článek Internetové prohlížeče a renderovací jádra - Historie a srovnání byl publikován 1. července 2013 v 05.00 v rubrice Technologie. Autorem článku je Zdeněk Kasner. Pro diskusi slouží komentáře (0).

Prosím čekejte ...
Prosím čekejte ...
Prosím čekejte ...