Blink — вільний рушій для відображення вебсторінок, розроблений компаніями Google та Opera Software на основі початкового коду WebCore з WebKit для браузера Chromium. Blink базується на багатопроцесній архітектурі і суттєво відрізняється від основної архітектури розпаралелювання операцій у WebKit.
Тип | браузерний рушій |
---|---|
Розробник | Google, Opera Software |
Операційна система | крос-платформовий |
Мова програмування | |
Ліцензія | BSD v2.0 та GNU LGPL v2.1 |
Репозиторій | chromium.googlesource.com/chromium/src/+/master/third_party/blink/ |
Вебсайт | www.chromium.org/blink |
Історія розробки
Проєкт WebKit був створений в 2001 році як форк рушія KHTML, який розвивала спільнотою KDE.
У представленому в 2008 році браузері Chrome компанія Google використовувала підсистему WebKit WebCore для рендерингу HTML і CSS, але замість JavaScript-рушія WebKit JavaScriptCore використовувала власний рушій V8. Фактично компанія Google спочатку розвивала в Chrome форк WebKit, тому що використовує у своєму браузері окрему гілку WebKit, безпосередньо вносячи в неї власні зміни і портуючи сторонні зміни з WebKit, після чого повертаючи свої покращення в upstream. У WebKit2 з'явилося багато нових можливостей і особливостей, які не мала наміру використовувати Google, але які доводилось враховувати при портуванні. У підсумку ресурси витрачані на портування стали неприйнятно великі.
Основною причиною створення форку стала зростаюча трудомісткість паралельної підтримки розробки окремої багато-процесорної моделі, спочатку використовуваної в Google Chrome, але неприйнятної для універсального рушія WebKit і деяких інших браузерах. Суть відмінностей зводиться до того, що WebKit2 надає спеціальний фреймворк для поділу за різними процесами обробки контенту та формування інтерфейсу, а механізм поділу за процесами Chrome заснований на ідеї використання WebKit WebCore як одного з багато-процесних модулів, котрі взаємодіють з іншими модулями через окремий диспетчер ресурсів. В процесі розробки спостерігалося постійне ускладнення коду як WebKit, так і Chrome, що помітно гальмувало розробку Chrome через необхідність постійного портування коду. Крім того, із створенням форку у Google з'являться нові можливості з оптимізації рушія і збільшенню продуктивності, що потребують внесення кардинальних змін до WebKit. Створення Blink зняло з Google зобов'язання з повернення змін до WebKit.
На думку Google, створення нового браузерного рушія не відіб'ється негативно на екосистемі і лише оздоровить її, бо конкуренція спонукає до розвитку інновацій, так само як поява кількох конкурентних браузерів стимулювала розвиток Веб. При цьому розробники Blink відзначають як пріоритетний напрямок співпрацю з творцями інших браузерних рушіїв в плані забезпечення сумісності, слідування інтернетовим стандартам і створення нових вебтехнологій. Першим часом розвиток Blink був сфокусований на поліпшенні внутрішньої архітектури і спрощенні кодової бази. Наприклад, припинено підтримку 7 складальних систем і вилучено близько 7 тисяч файлів, що включають понад 4.5 млн рядків коду.
Про намір перейти до використання рушія Blink заявила компанія Opera, в процесі своєї міграції на WebKit з власного рушія Presto. Таким чином, сформована навколо WebKit спільнота розкололася на два табори, що представляють технології та інтереси проєктів Google Chrome і Apple Safari.
У квітні 2013 компанія Adobe, що раніше брала участь у розвитку WebKit, оголосила про намір підключитися до роботи над рушієм Blink. Adobe продовжить свою співпрацю з проєктами WebKit і Mozilla, але створюваний Adobe продукт Edge Tools базуватиметься на наданому проєктом Chromium фреймворці для інтеграції браузерних функцій в сторонні продукти.
У вересні 2013 про підтримку Blink оголосив проєкт Qt. Ларс Нол (Lars Knoll), творець рушія KHTML, керівник проєкту Qt Project і директор з розвитку фреймворку Qt в компанії , представив Qt WebEngine, новий компонент для використання браузерного рушія в Qt-застосунках. Qt WebEngine йде на зміну Qt WebKit і відрізняється переходом на кодову базу проєкту Blink.
Відмінності від WebKit
Серед причин переходу на Blink називають
- У розробці Chromium велика увага приділяється крос-платформовості, підтримуються всі основні настільні платформи і Android. У WebKit підтримка сучасних платформ відстає від Chromium
- Багато можливостей, що вимагають додаткового доопрацювання при використанні WebKit, доступні з коробки в Chromium. Наприклад, Chromium спрощує використання напрацювань з адаптації продукту для різних платформ і операційних систем, без додаткових надбудов працюють мультимедійні можливості і WebRTC
- При використанні Chromium спрощується інтеграція з операційною системою, що дозволяє зосередити увагу на розвитку API
- Розробка Chromium ведеться під дуже серйозним контролем відповідно до високих вимог до якості, що спрощує тестування похідних продуктів
З планів розвитку архітектури Blink можна відзначити:
- Реалізація обробки вмісту iframe в окремому ізольованому процесі. У WebKit зазначена можливість не може бути інтегрована, бо вона вимагає значної реструктуризації методів обробки iframe і зав'язана на особливостях sandbox-ізоляції і методів управління процесами в Chrome.
- Прискорення і спрощення коду для забезпечення мережевої взаємодії. Мережева підсистема WebKit обмежена необхідністю забезпечення сумісності зі старим API для платформ Mac, що не дозволяє інтегрувати в WebKit деякі поліпшення і змушує використовувати в Chrome ряд обхідних методів, реалізація яких не найкраща.
- Переклад обробки Document Object Model (DOM) на плечі JavaScript-рушія, що дозволить істотно прискорити доступ до DOM з JavaScript-скриптів. Втілення в життя подібної ідеї вимагає повної переробки реалізації DOM в WebKit і утруднено у світлі підтримки в WebKit одночасно двох рушіїв JavaScript;
- Розбиття WebKit WebCore на модулі і розширення засобів розпаралелювання обробки контенту (парсинг HTML, рушій обробки стилів, парсер JavaScript);
- Пряме використання у рушії основного Platform API для управління sandbox-ізоляцією;
- Перехід на використання високопродуктивного менеджера розподілу пам'яті tcmalloc;
- Використання JIT-компіляції при організації доступу з JavaScript коду до деяких атрибутів DOM, таких як div.id і div.firstChild;
- Підтримка збереження у рушії V8, що дозволить позбутися від стадії розбору для вже завантажених раніше сторінок;
- Поліпшення ізоляції ниті, що відповідає за формування виводу (compositor).
- Рішення позбутися CSS-префіксів для експериментальних можливостей. Замість префікса «-webkit» вирішено не вводити префікси «-blink» або «-chrome», а наслідувати приклад Mozilla і додавати всі експериментальні можливості без префіксів, але включати їх тільки при зміні спеціальних налаштувань в браузері.
Поза цими озвученими змінами Blink залишається відносно подібним до WebCore.
Див. також
Примітки
- Adam Barth (3 квітня 2013). Blink: A rendering engine for the Chromium project (англ.). Google. Архів оригіналу за 21 квітня 2013. Процитовано 13 квітня 2013.
- . Архів оригіналу за 5 жовтня 2013. Процитовано 4 жовтня 2013.
- . Архів оригіналу за 5 жовтня 2013. Процитовано 4 жовтня 2013.
- Qt переходить з WebKit на браузерний рушій Blink і технології Chromium [ 21 вересня 2013 у Wayback Machine.] (рос.)
- . Архів оригіналу за 21 вересень 2013. Процитовано 4 жовтень 2013.
- Компанія Google представила Blink, форк рушія WebKit [ 4 жовтня 2013 у Wayback Machine.] (рос.) // opennet.ru 04.04.2013
- . Ars Technica. Архів оригіналу за 6 квітня 2013. Процитовано 4 квітня 2013.
Посилання
- Blink
- Blink developer FAQ [ 1 травня 2013 у Wayback Machine.]
- www.chromestatus.com [ 16 квітня 2011 у Wayback Machine.]
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Blink vilnij rushij dlya vidobrazhennya vebstorinok rozroblenij kompaniyami Google ta Opera Software na osnovi pochatkovogo kodu WebCore z WebKit dlya brauzera Chromium Blink bazuyetsya na bagatoprocesnij arhitekturi i suttyevo vidriznyayetsya vid osnovnoyi arhitekturi rozparalelyuvannya operacij u WebKit BlinkTip brauzernij rushijRozrobnik Google Opera SoftwareOperacijna sistema kros platformovijMova programuvannya C Licenziya BSD v2 0 ta GNU LGPL v2 1Repozitorij chromium googlesource com chromium src master third party blink Vebsajt www chromium org blinkIstoriya rozrobkiProyekt WebKit buv stvorenij v 2001 roci yak fork rushiya KHTML yakij rozvivala spilnotoyu KDE U predstavlenomu v 2008 roci brauzeri Chrome kompaniya Google vikoristovuvala pidsistemu WebKit WebCore dlya renderingu HTML i CSS ale zamist JavaScript rushiya WebKit JavaScriptCore vikoristovuvala vlasnij rushij V8 Faktichno kompaniya Google spochatku rozvivala v Chrome fork WebKit tomu sho vikoristovuye u svoyemu brauzeri okremu gilku WebKit bezposeredno vnosyachi v neyi vlasni zmini i portuyuchi storonni zmini z WebKit pislya chogo povertayuchi svoyi pokrashennya v upstream U WebKit2 z yavilosya bagato novih mozhlivostej i osoblivostej yaki ne mala namiru vikoristovuvati Google ale yaki dovodilos vrahovuvati pri portuvanni U pidsumku resursi vitrachani na portuvannya stali neprijnyatno veliki Osnovnoyu prichinoyu stvorennya forku stala zrostayucha trudomistkist paralelnoyi pidtrimki rozrobki okremoyi bagato procesornoyi modeli spochatku vikoristovuvanoyi v Google Chrome ale neprijnyatnoyi dlya universalnogo rushiya WebKit i deyakih inshih brauzerah Sut vidminnostej zvoditsya do togo sho WebKit2 nadaye specialnij frejmvork dlya podilu za riznimi procesami obrobki kontentu ta formuvannya interfejsu a mehanizm podilu za procesami Chrome zasnovanij na ideyi vikoristannya WebKit WebCore yak odnogo z bagato procesnih moduliv kotri vzayemodiyut z inshimi modulyami cherez okremij dispetcher resursiv V procesi rozrobki sposterigalosya postijne uskladnennya kodu yak WebKit tak i Chrome sho pomitno galmuvalo rozrobku Chrome cherez neobhidnist postijnogo portuvannya kodu Krim togo iz stvorennyam forku u Google z yavlyatsya novi mozhlivosti z optimizaciyi rushiya i zbilshennyu produktivnosti sho potrebuyut vnesennya kardinalnih zmin do WebKit Stvorennya Blink znyalo z Google zobov yazannya z povernennya zmin do WebKit Na dumku Google stvorennya novogo brauzernogo rushiya ne vidib yetsya negativno na ekosistemi i lishe ozdorovit yiyi bo konkurenciya sponukaye do rozvitku innovacij tak samo yak poyava kilkoh konkurentnih brauzeriv stimulyuvala rozvitok Veb Pri comu rozrobniki Blink vidznachayut yak prioritetnij napryamok spivpracyu z tvorcyami inshih brauzernih rushiyiv v plani zabezpechennya sumisnosti sliduvannya internetovim standartam i stvorennya novih vebtehnologij Pershim chasom rozvitok Blink buv sfokusovanij na polipshenni vnutrishnoyi arhitekturi i sproshenni kodovoyi bazi Napriklad pripineno pidtrimku 7 skladalnih sistem i vilucheno blizko 7 tisyach fajliv sho vklyuchayut ponad 4 5 mln ryadkiv kodu Pro namir perejti do vikoristannya rushiya Blink zayavila kompaniya Opera v procesi svoyeyi migraciyi na WebKit z vlasnogo rushiya Presto Takim chinom sformovana navkolo WebKit spilnota rozkololasya na dva tabori sho predstavlyayut tehnologiyi ta interesi proyektiv Google Chrome i Apple Safari U kvitni 2013 kompaniya Adobe sho ranishe brala uchast u rozvitku WebKit ogolosila pro namir pidklyuchitisya do roboti nad rushiyem Blink Adobe prodovzhit svoyu spivpracyu z proyektami WebKit i Mozilla ale stvoryuvanij Adobe produkt Edge Tools bazuvatimetsya na nadanomu proyektom Chromium frejmvorci dlya integraciyi brauzernih funkcij v storonni produkti U veresni 2013 pro pidtrimku Blink ogolosiv proyekt Qt Lars Nol Lars Knoll tvorec rushiya KHTML kerivnik proyektu Qt Project i direktor z rozvitku frejmvorku Qt v kompaniyi predstaviv Qt WebEngine novij komponent dlya vikoristannya brauzernogo rushiya v Qt zastosunkah Qt WebEngine jde na zminu Qt WebKit i vidriznyayetsya perehodom na kodovu bazu proyektu Blink Vidminnosti vid WebKitSered prichin perehodu na Blink nazivayut U rozrobci Chromium velika uvaga pridilyayetsya kros platformovosti pidtrimuyutsya vsi osnovni nastilni platformi i Android U WebKit pidtrimka suchasnih platform vidstaye vid Chromium Bagato mozhlivostej sho vimagayut dodatkovogo doopracyuvannya pri vikoristanni WebKit dostupni z korobki v Chromium Napriklad Chromium sproshuye vikoristannya napracyuvan z adaptaciyi produktu dlya riznih platform i operacijnih sistem bez dodatkovih nadbudov pracyuyut multimedijni mozhlivosti i WebRTC Pri vikoristanni Chromium sproshuyetsya integraciya z operacijnoyu sistemoyu sho dozvolyaye zoserediti uvagu na rozvitku API Rozrobka Chromium vedetsya pid duzhe serjoznim kontrolem vidpovidno do visokih vimog do yakosti sho sproshuye testuvannya pohidnih produktiv Z planiv rozvitku arhitekturi Blink mozhna vidznachiti Realizaciya obrobki vmistu iframe v okremomu izolovanomu procesi U WebKit zaznachena mozhlivist ne mozhe buti integrovana bo vona vimagaye znachnoyi restrukturizaciyi metodiv obrobki iframe i zav yazana na osoblivostyah sandbox izolyaciyi i metodiv upravlinnya procesami v Chrome Priskorennya i sproshennya kodu dlya zabezpechennya merezhevoyi vzayemodiyi Merezheva pidsistema WebKit obmezhena neobhidnistyu zabezpechennya sumisnosti zi starim API dlya platform Mac sho ne dozvolyaye integruvati v WebKit deyaki polipshennya i zmushuye vikoristovuvati v Chrome ryad obhidnih metodiv realizaciya yakih ne najkrasha Pereklad obrobki Document Object Model DOM na plechi JavaScript rushiya sho dozvolit istotno priskoriti dostup do DOM z JavaScript skriptiv Vtilennya v zhittya podibnoyi ideyi vimagaye povnoyi pererobki realizaciyi DOM v WebKit i utrudneno u svitli pidtrimki v WebKit odnochasno dvoh rushiyiv JavaScript Rozbittya WebKit WebCore na moduli i rozshirennya zasobiv rozparalelyuvannya obrobki kontentu parsing HTML rushij obrobki stiliv parser JavaScript Pryame vikoristannya u rushiyi osnovnogo Platform API dlya upravlinnya sandbox izolyaciyeyu Perehid na vikoristannya visokoproduktivnogo menedzhera rozpodilu pam yati tcmalloc Vikoristannya JIT kompilyaciyi pri organizaciyi dostupu z JavaScript kodu do deyakih atributiv DOM takih yak div id i div firstChild Pidtrimka zberezhennya u rushiyi V8 sho dozvolit pozbutisya vid stadiyi rozboru dlya vzhe zavantazhenih ranishe storinok Polipshennya izolyaciyi niti sho vidpovidaye za formuvannya vivodu compositor Rishennya pozbutisya CSS prefiksiv dlya eksperimentalnih mozhlivostej Zamist prefiksa webkit virisheno ne vvoditi prefiksi blink abo chrome a nasliduvati priklad Mozilla i dodavati vsi eksperimentalni mozhlivosti bez prefiksiv ale vklyuchati yih tilki pri zmini specialnih nalashtuvan v brauzeri Poza cimi ozvuchenimi zminami Blink zalishayetsya vidnosno podibnim do WebCore Div takozhPortal Vilne programne zabezpechennya V8 rushij JavaScript DartPrimitkiAdam Barth 3 kvitnya 2013 Blink A rendering engine for the Chromium project angl Google Arhiv originalu za 21 kvitnya 2013 Procitovano 13 kvitnya 2013 Arhiv originalu za 5 zhovtnya 2013 Procitovano 4 zhovtnya 2013 Arhiv originalu za 5 zhovtnya 2013 Procitovano 4 zhovtnya 2013 Qt perehodit z WebKit na brauzernij rushij Blink i tehnologiyi Chromium 21 veresnya 2013 u Wayback Machine ros Arhiv originalu za 21 veresen 2013 Procitovano 4 zhovten 2013 Kompaniya Google predstavila Blink fork rushiya WebKit 4 zhovtnya 2013 u Wayback Machine ros opennet ru 04 04 2013 Ars Technica Arhiv originalu za 6 kvitnya 2013 Procitovano 4 kvitnya 2013 PosilannyaBlink Blink developer FAQ 1 travnya 2013 u Wayback Machine www chromestatus com 16 kvitnya 2011 u Wayback Machine