Přeskočit na obsah

Servo (jádro prohlížeče)

Z Wikipedie, otevřené encyklopedie
Servo
Logo
VývojářLinux Foundation a dobrovolníci; původně Mozilla Corporation
Operační systémmultiplatformní
Platformax86-64, ARM (64-bit i 32-bit)
Vyvíjeno vRust
Typ softwaruRenderovací jádro prohlížeče
LicenceMPL 2.0[1][2] licence
Webservo.org (anglicky)
Některá data mohou pocházet z datové položky.

Servo je experimentální jádro internetového prohlížeče napsané v jazyce Rust. Od počátku jde o výzkumný projekt, který má základy v roce 2012 v Mozilla Corporation. Jeho vývojáři hledají způsob, jak vytvořit vysoce výkonné a paralelní prostředí. Z množství úkolů, které představuje vykreslování (zpracování HTML, dekódování obrázků atd.), jsou vytvářeny dobře zpracovatelné, paralelizovatelné a izolované procesy.

Do roku 2020 většina vývoje probíhala v Mozille, kde byly části projektu začleněny do jádra Gecko prohlížeče Firefox. Od konce roku 2020 je projekt kompletně veden dobrovolníky a spravován konsorciem Linux Foundation.

Servo je pojmenováno po postavě Tom Servo, robotu z televizní show Mystery Science Theater 3000.[3]

Vlastnosti

[editovat | editovat zdroj]
Mozilla Servo zobrazující test Acid2

Vývoj Serva je stále v rané fázi, přesto již úspěšně vykresluje Wikipedii a GitHub a úspěšně absolvuje test Acid2. Servo nabízí inovace jako je paralelní vykreslovací algoritmus, který je zvláště vhodný pro vícejádrové procesory (speciálně mobilní), a svůj vlastní CSS3 a HTML5 parser naprogramovaný v jazyce Rust.[4][5]

Přestože je Servo stále označováno za experimentální, tak se aktuální verze Serva může pochlubit výrazně vyšším výkonem než jiná jádra prohlížečů.[6]

Konkrétní výsledky:

jádro výkon
Mozilla Servo 60 FPS
Chrome Canary 15 FPS
Mozilla Firefox Developer 9 FPS
Apple WebKit Nightly 5 FPS

Historie vývoje

[editovat | editovat zdroj]

Paul Rouget z Mozilly oznámil záměr vydat alpha verzi prohlížeče Browser.html za tři měsíce, tedy v červnu 2016. Tato verze by navíc měla zvládnout vykreslovat weby GitHub, DuckDuckGo, HackerNews a Reddit.[7][8]

Dne 16. března 2016 Mozilla uvolnila Servo pro uživatelské testování. Zatím je sice k dispozici pouze na mobilní (pro Android) a unixové platformy (pro Linux a macOS), ale připravují se i další verze (pro Windows x86-64) a pro ARM (64bit a 32bit).[9]

Jak bylo slíbeno, bylo uvolněno testovací sestavení jednoduchého prohlížeče s jádrem Servo a rozhraním kompletně naprogramovaným v jazycích HTML, CSS a JavaScript, které si je možno vyzkoušet. Jsou pro operační systém macOS a Linux, budou následovat verze pro Windows a Android.[10]

Po organizačních změnách v srpnu 2020 zanikl v Mozilla Corporation celý Servo vývojový tým a projekt převzalo konsorcium Linux Foundation s cílem vytvořit embeddovatelné, nezávislé, paměťové bezpečné, modulární a paralelně fungující (maximálně využívající vícejádrové procesory) renderovací jádro prohlížeče. V lednu 2023 byl díky nové vlně financování umožněn týmu vývojářů restart prací a později v roce 2024 na konferenci FOSDEM představen plán dalšího vývoje. Novinky zahrnují nové uživatelské rozhraní, experimentální podporu WebGPU, dále je kryptografická knihovna OpenSSL nahrazena RustSL, napsaném v Rustu. Také je vylepšen systém hlášení chyb.[11]

Dne 24. ledna 2024 byly oznámeny následující změny. U aktuálního vydání byla použita stabilní verze Rustu a vylepšena kontrola nad typografií, velmi raná podpora pro lepivé umístění a tabulky, a navíc aktualizace miniprohlížeče Servo a nástrojů pro sestavení. Servo "nightly" také má podporu pro kaskádové styly (CSS) „text-align-last“, „text-align: justify“, „vertical-align: baseline“ a „position: sticky“. Dále má Servo "nightly" základní podporu pro rozložení tabulek, když je povolena příslušné předvolba.[12]

Od 12. února 2024 je přítomna základní podpora pro záložní písmo. To je důležité zejména pro stránky, které kombinují text z různých jazyků. Je však třeba více práce na podpoře vykreslování, přes hranice prvků a tvarování složitých skriptů, jako je arabština, ale současná verze by měla stačit pro čínštinu, japonštinu a korejštinu. Pokud narazíte na text, který se stále nezobrazuje, nezapomeňte zkontrolovat nainstalovaná písma se styly stránek a výchozími seznamy písem Servo (Windows, macOS, Linux). Servo "nightly" ukazuje webovou stránku Space Jam (1996) se správně sestaveným tabulkovým menu.

Dne 24. února 2024. Tento měsíc se v Servu objevila podpora gamepadu, záložní písmo a další. Dále je znovu vylepšena práce s vlákny.

Dne 28. února 2024 došlo k velkým pokrokům v tabulkách a architektuře rozvržení prvků stránky, a nový milník kaskádových stylů je CSS2, dále se objevily změny ve vývoji ve WebRenderu a Stylu, plus vylepšení konzole, plátna a CSSOM. Servo "nightly" zobrazuje čínské, japonské a korejské Wikipedie s funkčním záložním písmem. Záložní písmo nyní funguje pro čínštinu, japonštinu a korejštinu.[13]

Dne 30. března 2024 končí starší rozvržení, tabulky, runtime filtrování protokolů událostí a vylepšení konzole, plátna, WebGPU, DOM a CSS.[14]

Duben 2024 v Servu: Acid2 redux, Servo book, Qt demo a další. Dne 26. dubna 2024 začíná nový milník rozvržení, s přepracovanými dokumenty, rychlejším sestavováním a také vylepšeným vkládáním, videem, písmy, WebGPU a CSS.[15]

Hlavní změny v Servu k 30. květnu 2024 jsou v systému písem a servoshellu plus vylepšení flexboxu, tabulek, podpory DOM a rozhraní API pro vkládání. Servo dále nyní podporuje několik dalších funkcí CSS, barevné emotikony, servoshell a další změny.[16]

Ke konci července 2024 je hlášen zejména pokrok v paralelizaci zpracování HTML tabulek, na jejichž vykreslení tak spolupracují všechna CPU jádra, a dále podpora generických rodin fontů jako sans-serif a monospace, vylepšené ladění (debugging), experimentální podpora systému OpenHarmony. Servo také začalo podporovat několik dalších metod a atributů přístupných v objektovém modelu (DOM - Document Object Model) aktuálního EcmaScriptu (dříve JavaScript). Byly přidány také nové atributy CSS.[17][18]

V tomto článku byl použit překlad textu z článku Servo (layout engine) na anglické Wikipedii.

  1. https://www.mozilla.org/en-US/about/legal/eula/
  2. Mozilla Licensing Policies [online]. mozilla.org [cit. 2013-03-26]. Dostupné online. 
  3. Eich, Brendan (Oct 13, 2012).
  4. Moffitt, Jack (April 17, 2014).
  5. "Servo Continues Pushing Forward".
  6. LARABEL, Michael. Mozilla's Servo Is Whooping The Other Browsers In Performance. http://www.phoronix.com [online]. [cit. 2016-03-08]. Dostupné online. 
  7. FIKAR, Jan. Alfa verze prohlížeče Browse.html s jádrem Servo bude v červnu. http://www.root.cz [online]. 2016-03-15 [cit. 2016-03-15]. Dostupné online. 
  8. STANKE, Michal. Projekt Tofino. http://www.mozilla.cz [online]. [cit. 2016-04-11]. Dostupné online. 
  9. ČÍŽEK, Jakub. Mozilla se v červnu pochlubí prohlížečem Servo. Bude úplně jiný, než na co jste zvyklí. http://www.zive.cz/ [online]. 2016-03-16 [cit. 2016-03-16]. Dostupné online. 
  10. Testování nového jádra Servo a browser.html. Mozilla.cz [online]. [cit. 2016-07-01]. Dostupné online. 
  11. JEŽEK, David. Podpora Intel Xe2 míří do Mesa, web engine Servo hlásí pokroky. Root.cz [online]. [cit. 2023-09-17]. Dostupné online. 
  12. DEVELOPERS, The Servo Project. Two months in Servo: better inline layout, stable Rust, and more! - Servo, the embeddable, independent, memory-safe, modular, parallel web rendering engine. Servo [online]. [cit. 2024-03-03]. Dostupné online. (anglicky) 
  13. DEVELOPERS, The Servo Project. This month in Servo: gamepad support, font fallback, Space Jam, and more! - Servo, the embeddable, independent, memory-safe, modular, parallel web rendering engine. Servo [online]. [cit. 2024-03-03]. Dostupné online. (anglicky) 
  14. DEVELOPERS, The Servo Project. This month in Servo: tables, WOFF2, Outreachy, and more! - Servo, the embeddable, independent, memory-safe, modular, parallel web rendering engine. Servo [online]. [cit. 2024-05-07]. Dostupné online. (anglicky) 
  15. DEVELOPERS, The Servo Project. This month in Servo: Acid2 redux, Servo book, Qt demo, and more! - Servo, the embeddable, independent, memory-safe, modular, parallel web rendering engine. Servo [online]. [cit. 2024-05-07]. Dostupné online. (anglicky) 
  16. DEVELOPERS, The Servo Project. This month in Servo: new CSS units, color emoji, servoshell, and more! - Servo, the embeddable, independent, memory-safe, modular, parallel web rendering engine. Servo [online]. [cit. 2024-05-30]. Dostupné online. (anglicky) 
  17. DEVELOPERS, The Servo Project. This month in Servo: console logging, parallel tables, OpenXR, and more! - Servo, the embeddable, independent, memory-safe, modular, parallel web rendering engine. Servo [online]. [cit. 2024-07-31]. Dostupné online. (anglicky) 
  18. JEŽEK, David. Servo Engine už umí renderovat HTML tabulky vícevláknově. Root.cz [online]. [cit. 2024-07-31]. Dostupné online. 

Související články

[editovat | editovat zdroj]

Externí odkazy

[editovat | editovat zdroj]
  • Logo Wikimedia Commons Obrázky, zvuky či videa k tématu Servo na Wikimedia Commons
  • (anglicky) Oficiální web
  • (česky) JEŽEK, David. Výkon AMD Ryzen a Intel Core v novém Ubuntu, GTK přechází na Vulkan. Root.cz [online]. [cit. 2024-04-27]. Dostupné online.  - Servo engine zvládne test Acid2
  • (anglicky) The Servo Browser Engine Has Been Making Great Progress In 2023. www.phoronix.com [online]. [cit. 2023-10-02]. Dostupné online. (anglicky) 
  • (česky) Článek na DiiT - Budoucnost Firefoxu: Mozilla Servo, revoluční nástupce Gecko enginu
  • (česky) Článek na DiiT - Mozilla chystá engine Servo na rok 2016, letos přijde první alfa
  • (česky) Článek na Root.cz - Mozilla zapnula ve Firefoxu Nightly akcelerované vykreslování na GPU