LinuxDoc.ru - Новости Linux - Google представила Blink, форк движка WebKit

\Google представила Blink, форк движка WebKit

LinuxDoc.Ru,
Компания Google объявила о создании собственного форка движка WebKit и его использования в браузерах Chrome и Chromium. Новый движок, названный Blink, базируется на многопроцессной архитектуре, изначально используемой в проектах Chrome/Chromium и существенно отличающейся от основной архитектуры распараллеливания операций в WebKit.

Основной причиной создания форка является возросшая трудоёмкость параллельного поддержания разработки отдельной многопроцессной модели, изначально используемой в Chromе, но неприемлемой для универсального движка WebKit и некоторых других браузеров. Суть различий сводится к тому, что WebKit2 предоставляет специальный фреймворк для разделения по разным процессам обработки контента и формирвоания интерфейса, а механизм разделения по процессам Chrome основан на идее использования WebKit WebCore в качестве одного из многопроцессных модулей, взаимодействующих с другими модулями через отдельный диспетчер ресурсов. Последнее время наблюдается постоянное усложнение кода как WebKit, так и Chromе, что заметно тормозит разработку Chromе из-за необходимости постоянного портирования кода. Кроме того, отмечается, что с созданием форка у Google появятся новые возможности по оптимизации движка и увеличению производительности, требующих внесения кардинальных изменений в WebKit.

В представленном в 2008 году браузере Chrome компания Google использовала подсистему WebKit WebCore для реднеринга HTML и CSS, но вместо javascript-движка WebKit javascriptCore использовала собственный движок V8. Фактически компания Google изначально развивает в Chrome форк WebKit, так как использует в своём браузере отдельную ветку WebKit, непосредственно внося в неё собственные изменения и портируя сторонние изменения из WebKit, после чего возвращая свои улучшения в upstream. В WebKit2 появилось много новых возможностей и особенностей, которые не намерена использовать Google, но которые приходится учитывать при портировании. В итоге затрачиваемые на портирование ресурсы стали неприемлемо велики. Создание Blink снимает с Google обязательства по возврату изменений в WebKit.

О намерении перейти к использованию движка Blink, уже заявила компания Opera, находящаяся в процессе миграции на WebKit с собственного движка Presto. Таким образом, сформированное вокруг WebKit сообщество раскололось на два лагеря, представляющих технологии и интересы проектов Google Chrome и Apple Safari. Следует напомнить, что, в свою очередь, проект WebKit был создан в 2001 году как форк движка KHTML, развиваемого сообществом KDE.

По мнению Google, создание нового браузерного движка негативно не отразится на экосистеме и лишь оздоровит её, так как конкуренция подстегнёт к развитию инноваций, как появление нескольких конкурирующих браузеров подстегнуло развитие Web. При этом разработчики Blink отмечают в качестве прироитетного направления сотрудничество с создателями других браузерных движков в плане обеспечения совместимости, следования стандартам Web и создания новых Web-технологий. В ближайшее время развитие Blink будет сфокусировано на улучшении внутренней архитектуры и упрощении кодовой базы. Например, планируется прекратить поддержку 7 сборочных систем и удалить около 7 тысяч файлов, включающих более 4.5 млн строк кода.

Дополнительно можно отметить решение избавиться от CSS-префиксов для экспериментальных возможностей. Вместо префикса "-webkit" решено не вводить префиксы "-blink" или "-chrome", а последовать примеру Mozilla и добавлять все экспериментальные возможности без префиксов, но включать их только при изменении специальных настроек в браузере.

Из планов по дальнейшему развитию архитектуры 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, что позволит избавиться от стадии разбора для уже загруженных ранее страниц;
Улучшение изоляции нити, отвечающей за формирование вывода (сompositor).
linux

Новости Linux

. \Google представила Blink, форк движка WebKit \Google представила Blink, форк движка WebKit
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
Если Вы обнаружите в опубликованных документах ошибки, опечатки, несоответствия и неточности - сообщите о них.
>>> После пяти месяцев разработки увидел свет релиз десктоп-окружения MATE 1.12, в рамках которого продолжено развитие кодовой базы GNOME 2.32 с сохранением классической концепции формирования рабочего стола. Установочные пакеты с MATE 1.12 в ближайшее время будут подготовлены для Arch Linux, Linux Mint, Debian, Ubuntu, Fedora, Mageia, Slackware и openSUSE. MATE 1.12 войдёт в состав ближайшего выпуска Linux Mint 17.3, а также будет доступен через репозиторий для пользователей Ubuntu MATE.
>>> Кес Кук (Kees Cook), бывший главный сисадмин kernel.org и лидер Ubuntu Security Team, ныне работающий в компании Google над обеспечением защиты ChromeOS, объявил о создании проекта Kernel Self Protection Project, в рамках которого планируется сформировать сообщество для развития и продвижения в основное ядро Linux технологий активной защиты, большинство из которых уже подготовлены в рамках проектов PaX и Grsecurity. Финансирование и ресурсы для проведения работ будут предоставлены организацией Linux Foundation и участниками программы Core Infrastructure Initiative.
>>> Состоялся релиз Linux-дистрибутива Ubuntu 15.10 "Wily Werewolf". Готовые установочные образы созданы для Ubuntu Desktop, Ubuntu Server и Ubuntu Core (для них на прошлых этапах тестирования предлагались только ежедневные сборки), а также для Kubuntu, Lubuntu, Ubuntu MATE, Ubuntu Cloud, Ubuntu GNOME и Xubuntu.
>>> Объявлено о начале альфа-тестирования дистрибутива Ubuntu 15.10 "Wily Werewolf". В соответствии с планом разработки, уже опробованном при подготовке прошлых выпусков, отдельные альфа-сборки не будут сформированы, вместо них для тестирования предлагается использовать ежедневные экспериментальные сборки. Готовые тестовые образы созданы только для Kubuntu, Lubuntu, Ubuntu GNOME, Ubuntu MATE и Ubuntu Cloud. Второй альфа-выпуск Ubuntu 15.10 запланирован на 30 июля, релиз намечен на 22 октября.


Редакция портала:

Добро пожаловать на сайт, посвященный документации к ОС Linux, ее переводу и распространению. Мы надеемся, что Вы найдете тут всю необходимую информацию. Здесь представлены три основных вида документации на русском языке: руководства (man-pages), HOWTO и mini-HOWTO. В скором будущем возможно появление и других видов документации.
Авторские права на представленные документы принадлежат авторам перевода и распространяются в соответствии со Стандартной Общественной Лицензией, если в документе не указано обратное.
Если Вы обнаружите в опубликованных документах ошибки, опечатки, несоответствия и неточности - сообщите о них.