Открыть сервис

Gecko

Gecko — это браузерный движок с открытым исходным кодом, разрабатываемый корпорацией Mozilla Foundation (организация признана в РФ нежелательной) и используемый в основном в веб-браузере Firefox, а также в ряде других программных продуктов. Движок отвечает за рендеринг (отображение) веб-страниц: интерпретацию HTML, CSS, JavaScript и других технологий, а также за обеспечение корректного отображения контента на экране пользователя. Gecko известен своей строгой приверженностью веб-стандартам, модульной архитектурой и кроссплатформенностью.

История

Создание и ранние годы (1997–2003)

Разработка Gecko началась в 1997 году как ответвление от устаревшего движка Netscape Communicator (NGLayout). Первоначально проект назывался «Raptor», затем «NGLayout», и лишь в 1998 году получил кодовое имя «Gecko» (от англ. «геккон» — ящерица). Целью было создание более быстрого, компактного и модульного движка, способного конкурировать с Internet Explorer от Microsoft, который доминировал на рынке в конце 1990-х. Первая публичная версия Gecko была выпущена в составе Netscape 6 (2000 год), однако она страдала от ошибок и нестабильности. Тем не менее, Gecko быстро завоевал репутацию движка, поддерживающего современные веб-стандарты, что было особенно важно для разработчиков.

Эра Firefox (2004–2010)

Ключевым моментом в истории Gecko стал выпуск браузера Firefox 1.0 в 2004 году. Firefox, построенный на Gecko, предложил пользователям быстрый, безопасный и настраиваемый браузер с поддержкой вкладок, что резко контрастировало с громоздким Internet Explorer. Gecko в этот период активно развивался: были внедрены поддержка CSS 2.1, улучшенная обработка JavaScript (через движок SpiderMonkey), а также встроенные средства для работы с RSS и SVG. Версия Gecko 1.8 (2005 год) принесла поддержку Canvas и улучшенную производительность.

Модернизация и многопроцессность (2011–2017)

С 2010-х годов Gecko столкнулся с серьёзной конкуренцией со стороны движков WebKit (Safari) и Blink (Chrome, Opera, Яндекс.Браузер). В ответ Mozilla начала масштабную модернизацию. В 2011 году был запущен проект «Electrolysis» (e10s), направленный на внедрение многопроцессной архитектуры, при которой каждый вкладка работает в отдельном процессе. Это повысило стабильность и безопасность. В 2016 году с выходом Firefox 48 многопроцессность стала включена по умолчанию. В 2017 году был представлен проект «Quantum», который включал в себя переписывание ключевых компонентов Gecko на языке Rust, что значительно повысило производительность и надёжность.

Современное состояние (2018–настоящее время)

С 2018 года Gecko продолжает развиваться под названием «GeckoView» — мобильная версия движка для Android. В десктопной версии (Firefox) Gecko остаётся одним из трёх основных браузерных движков (наряду с Blink и WebKit). В 2020-х годах Mozilla сосредоточилась на улучшении конфиденциальности (например, встроенная защита от отслеживания), поддержке новых веб-стандартов (WebAssembly, WebGPU) и оптимизации для современных процессоров. Gecko также используется в проектах, не связанных напрямую с Mozilla, таких как почтовый клиент Thunderbird и некоторые приложения для чтения электронных книг.

Архитектура и компоненты

Gecko имеет модульную архитектуру, состоящую из нескольких ключевых компонентов:

  • Рендеринг (Layout): Отвечает за преобразование HTML и CSS в визуальное представление на экране. Включает в себя парсеры HTML и CSS, а также алгоритмы компоновки (например, Flexbox, Grid).
  • JavaScript-движок (SpiderMonkey): Интерпретирует и выполняет код JavaScript. SpiderMonkey является одним из старейших JS-движков и поддерживает все современные стандарты ECMAScript.
  • Графический движок (WebRender): Отвечает за отрисовку (растеризацию) веб-страниц. WebRender, написанный на Rust, использует графический процессор (GPU) для ускорения рендеринга, что особенно эффективно для сложных анимаций и интерфейсов.
  • Сетевая подсистема (Necko): Обрабатывает HTTP-запросы, управляет кэшированием, поддержкой протоколов (HTTP/2, HTTP/3, WebSocket) и безопасностью соединений (TLS).
  • Платформа (XPCOM): Кроссплатформенная объектная модель компонентов, обеспечивающая взаимодействие между различными частями Gecko и внешними расширениями.
  • Безопасность: Включает в себя песочницу (sandbox) для изоляции процессов, защиту от вредоносных скриптов, управление сертификатами и политику безопасности контента (CSP).

Ключевые особенности

  • Строгое следование веб-стандартам: Gecko известен своей высокой степенью соответствия спецификациям W3C и WHATWG, что делает его предпочтительным выбором для разработчиков, тестирующих кросс-браузерную совместимость.
  • Модульность: Архитектура позволяет заменять или обновлять отдельные компоненты (например, SpiderMonkey или WebRender) без переписывания всего движка.
  • Кроссплатформенность: Gecko работает на Windows, macOS, Linux, Android, iOS (через WebKit-обёртку) и других операционных системах.
  • Открытый исходный код: Исходный код Gecko распространяется под лицензией MPL 2.0 (Mozilla Public License), что позволяет любому желающему изучать, модифицировать и распространять его.
  • Поддержка современных технологий: Gecko поддерживает HTML5, CSS3, JavaScript ES6+, WebAssembly, WebGPU, WebRTC, SVG, MathML и другие технологии.
  • Фокус на конфиденциальности: Встроенные механизмы защиты от отслеживания, блокировка сторонних cookie и поддержка Do Not Track.

Применение

Gecko используется в следующих продуктах:

  • Веб-браузеры:
  • Mozilla Firefox — основной браузер, использующий Gecko.
  • Firefox Focus — браузер с акцентом на конфиденциальность.
  • Tor Browser — браузер, основанный на Firefox, обеспечивающий анонимность в сети Tor.
  • Waterfox — форк Firefox, ориентированный на производительность.
  • Pale Moon — форк Firefox, сохраняющий старую архитектуру XUL.
  • Почтовые клиенты:
  • Mozilla Thunderbird — популярный почтовый клиент, использующий Gecko для отображения HTML-писем.
  • Приложения для чтения:
  • Calibre — программа для управления электронными книгами, использует Gecko для конвертации и отображения.
  • Разработка:
  • GeckoView — библиотека для Android, позволяющая встраивать Gecko в сторонние приложения.
  • Прочие:
  • Instantbird (устарел) — мессенджер, использующий Gecko.
  • Songbird (устарел) — медиаплеер, основанный на Gecko.

Критика

Несмотря на сильные стороны, Gecko подвергался критике по ряду причин:

  • Производительность: Исторически Gecko уступал по скорости рендеринга и запуска браузерам на основе Blink (Chrome). Проект Quantum значительно сократил этот разрыв, но на некоторых задачах (например, запуск сложных веб-приложений) Gecko всё ещё может быть медленнее.
  • Потребление памяти: В ранних версиях Firefox (до e10s) Gecko потреблял много оперативной памяти, особенно при большом количестве открытых вкладок. Многопроцессная архитектура улучшила ситуацию, но потребление памяти остаётся выше, чем у некоторых конкурентов.
  • Совместимость: Из-за меньшей доли рынка (по сравнению с Chrome) некоторые веб-сайты и веб-приложения могут быть оптимизированы в первую очередь под Blink, что приводит к проблемам с отображением или функциональностью в Firefox. Однако это касается в основном устаревших или плохо написанных сайтов.
  • Сложность разработки: Модульная архитектура Gecko, написанная на C++ и Rust, считается сложной для понимания и модификации сторонними разработчиками по сравнению с более простыми движками, такими как WebKit.

Интересные факты

  • Название «Gecko» (геккон) было выбрано как отсылка к логотипу Netscape — ящерице. Первоначально планировалось название «Chameleon» (хамелеон), но оно уже было занято.
  • Gecko стал первым браузерным движком, который полностью реализовал поддержку CSS 2.1.
  • В 2013 году Mozilla запустила проект «Servo» — экспериментальный движок, написанный на Rust, который позже стал основой для WebRender и других компонентов Gecko.
  • Gecko используется не только в браузерах: например, в некоторых автомобильных информационно-развлекательных системах (на базе Linux) применяется Gecko для отображения веб-контента.

Источники

  • Официальная документация Mozilla Developer Network (MDN) — раздел «Gecko».
  • История развития Firefox на сайте Mozilla Wiki.
  • Статья «Gecko (software)» в англоязычной Википедии.
  • Публикации на блоге Mozilla Hacks (2016–2024) о проектах Quantum и Electrolysis.
  • Книга «Browser Wars: The History of the Internet Browser» (2017).

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →