Servo (jádro prohlížeče)
Vývojář | Linux Foundation a dobrovolníci; původně Mozilla Corporation |
---|---|
Operační systém | multiplatformní |
Platforma | x86-64, ARM (64-bit i 32-bit) |
Vyvíjeno v | Rust |
Typ softwaru | Renderovací jádro prohlížeče |
Licence | MPL 2.0[1][2] licence |
Web | servo.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]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]
Odkazy
[editovat | editovat zdroj]Reference
[editovat | editovat zdroj]V tomto článku byl použit překlad textu z článku Servo (layout engine) na anglické Wikipedii.
- ↑ https://www.mozilla.org/en-US/about/legal/eula/
- ↑ Mozilla Licensing Policies [online]. mozilla.org [cit. 2013-03-26]. Dostupné online.
- ↑ Eich, Brendan (Oct 13, 2012).
- ↑ Moffitt, Jack (April 17, 2014).
- ↑ "Servo Continues Pushing Forward".
- ↑ LARABEL, Michael. Mozilla's Servo Is Whooping The Other Browsers In Performance. http://www.phoronix.com [online]. [cit. 2016-03-08]. Dostupné online.
- ↑ 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.
- ↑ STANKE, Michal. Projekt Tofino. http://www.mozilla.cz [online]. [cit. 2016-04-11]. Dostupné online.
- ↑ ČÍŽ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.
- ↑ Testování nového jádra Servo a browser.html. Mozilla.cz [online]. [cit. 2016-07-01]. Dostupné online.
- ↑ JEŽEK, David. Podpora Intel Xe2 míří do Mesa, web engine Servo hlásí pokroky. Root.cz [online]. [cit. 2023-09-17]. Dostupné online.
- ↑ 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)
- ↑ 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)
- ↑ 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)
- ↑ 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)
- ↑ 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)
- ↑ 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)
- ↑ 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]- Obrázky, zvuky či videa k tématu Servo na Wikimedia Commons
- (anglicky) Oficiální web
- (anglicky) Oficiální blog
- (č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