Jump to content

Геккон (программное обеспечение)

(Перенаправлено из движка рендеринга Gecko )
Геккон
Разработчик(и) Mozilla Foundation , Mozilla Corporation , Adobe Systems и другие участники.
Стабильная версия
125 / 4 ноября 2022 г .; 21 месяц назад ( 4 ноября 2022 г. )
Репозиторий
Написано в С++ , JavaScript , Руст
Тип Браузерный движок
Лицензия МПЛ 2.0 [1] [2]
Веб-сайт разработчик .mozilla .org /en-US /документы /Глоссарий /Геккон

Gecko (стилизовано под ɢecko) — браузерный движок, разработанный Mozilla . Он используется в браузере Firefox , Thunderbird почтовом клиенте и многих других проектах.

Gecko разработан для поддержки открытых стандартов Интернета и используется различными приложениями для отображения веб-страниц приложения и, в некоторых случаях, самого пользовательского интерфейса (путем рендеринга XUL ). Gecko предлагает богатый программный API , который делает его подходящим для широкого спектра ролей в интернет-приложениях, таких как веб-браузеры , представление контента и клиент/сервер . [3]

Gecko написан на C++ и JavaScript . [4] [5] а с 2016 года дополнительно в Rust . [6] [7] Это бесплатное программное обеспечение с открытым исходным кодом, на которое распространяется действие общественной лицензии Mozilla версии 2. [8] Mozilla официально поддерживает его использование на Android . [4] Linux , macOS и Windows . [9]

Разработка механизма компоновки, теперь известного как Gecko, началась в Netscape в 1997 году, после покупки компанией DigitalStyle . Существующий механизм рендеринга Netscape, первоначально написанный для Netscape Navigator 1.0 и модернизировавшийся с течением времени, был медленным, плохо соответствовал стандартам W3C, имел ограниченную поддержку динамического HTML и не имел таких функций, как инкрементальное перекомпонование (когда механизм компоновки переупорядочивает элементы на экран по мере загрузки и добавления новых данных на страницу). Новый механизм компоновки разрабатывался параллельно со старым, с намерением интегрировать его в Netscape Communicator, когда он станет зрелым и стабильным. Ожидалось, что до перехода будет выпущена как минимум еще одна крупная версия Netscape со старой системой компоновки.

После запуска проекта Mozilla в начале 1998 года код нового механизма верстки был выпущен под лицензией с открытым исходным кодом. Первоначально представленный как Raptor , название пришлось изменить на NGLayout (макет следующего поколения) из-за проблем с товарными знаками . Позже Netscape переименовала NGLayout в Gecko . Хотя организация Mozilla (предшественница Mozilla Foundation ) первоначально продолжала использовать название NGLayout (Gecko была торговой маркой Netscape), [10] в конечном итоге бренд Gecko победил. [ нужна ссылка ]

В октябре 1998 года Netscape объявила, что ее следующий браузер будет использовать Gecko (который в то время еще назывался NGLayout), а не старый механизм компоновки, что потребует переписывания больших частей приложения. Хотя это решение было популярно среди сторонников веб-стандартов, оно было в значительной степени непопулярным среди разработчиков Netscape, которые были недовольны шестью месяцами, отведенными на переписывание. [11] Это также означало, что от большей части работы, проделанной для Netscape Communicator 5.0 (включая разработку улучшений Mariner для старого механизма компоновки), пришлось отказаться. Netscape 6, первая версия Netscape, включающая Gecko, была выпущена в ноябре 2000 года (название Netscape 5 никогда не использовалось). [ нужна ссылка ]

По мере продолжения разработки Gecko его начали использовать другие приложения и разработчики. America Online , к тому времени материнская компания Netscape, в конечном итоге приняла его для использования в CompuServe 7.0 и AOL для Mac OS X (ранее в эти продукты был встроен Internet Explorer). Однако, за исключением нескольких бета-версий , Gecko никогда не использовался в основном клиенте Microsoft Windows AOL. [ нужна ссылка ]

15 июля 2003 года AOL уволила оставшихся разработчиков Gecko, и Mozilla Foundation (сформированный в тот же день) стал главным управляющим разработкой Gecko. Сегодня Gecko разрабатывают сотрудники корпорации Mozilla , сотрудники компаний, участвующих в проекте Mozilla, и волонтеры. [ нужна ссылка ]

В октябре 2016 года Mozilla анонсировала Quantum , текущий проект, включающий несколько усилий по разработке программного обеспечения , направленных на «создание веб-движка следующего поколения для пользователей Firefox ». Он включал в себя многочисленные улучшения Gecko, взятые из экспериментального проекта Servo . [12] [13] Firefox 57, также известный как «Firefox Quantum», впервые выпущенный в ноябре 2017 года, представляет собой первоначальную версию, в которой включены основные компоненты из проектов Quantum/Servo. К ним относится повышение производительности компонентов рендеринга CSS и графического процессора . Дополнительные компоненты будут постепенно объединяться из Servo в Gecko в будущих версиях. [12]

В сентябре 2018 года Mozilla анонсировала GeckoView, основу следующего поколения мобильных продуктов Mozilla, основанную на библиотеке программного обеспечения, которая делает Gecko многоразовым для Android, включая новые усилия по разработке программного обеспечения, направленные на «отделение самого движка от его пользовательского интерфейса и упрощение его использования». вставлять в другие приложения». Firefox Focus 7.0, выпущенный в том же месяце, [14] — это начальная версия, представленная GeckoView, с повышенной производительностью при средней загрузке страниц. [15] [16] Firefox Reality также был создан с использованием GeckoView. [15] В июне 2019 года Mozilla объявила Firefox Preview как продолжающийся проект, направленный на создание веб-браузера Android с GeckoView. [17] Firefox для Android 79, также известный как «Firefox Daylight», впервые выпущенный в августе 2020 года, является первой стабильной версией, основные компоненты которой основаны на движке GeckoView. [18]

Поддержка стандартов

[ редактировать ]

С самого начала Gecko был разработан для поддержки открытых стандартов Интернета. Некоторые из стандартов, поддерживаемых Gecko, включают:

Gecko также поддерживает SVG . [20]

Нестандартная поддержка устаревшего IE

[ редактировать ]

Для поддержки веб-страниц, разработанных для устаревших версий Netscape и Internet Explorer, Gecko поддерживает DOCTYPE переключение . Документы с современным DOCTYPE отображаются в режиме соответствия стандартам, который строго соответствует стандартам W3C . Документы, у которых нет DOCTYPE или более старый DOCTYPE, отображаются в режиме совместимости , который имитирует некоторые нестандартные особенности Netscape Communicator 4.x; однако некоторые функции версии 4.x (например, слои ) не поддерживаются.

Gecko также имеет ограниченную поддержку некоторых нестандартных функций Internet Explorer, таких как элемент выделения и document.all свойство (хотя страницы явно проверяются на наличие document.all будет сказано, что он не поддерживается). [21]

Использование

[ редактировать ]

Gecko в основном используется в веб-браузерах , самыми ранними из которых являются Netscape 6 и Mozilla Suite (позже переименованный в SeaMonkey ). Он также используется в других производных веб-браузера Mozilla, таких как Firefox и Firefox для мобильных устройств , а также в реализации клона Internet Explorer, входящего в состав Wine . [22] Mozilla также использует его в своем почтовом клиенте Thunderbird .

Другие веб-браузеры, использующие Gecko, включают GNU IceCat , [23] Waterfox , K-Meleon , Lunascape , Portable Firefox , Conkeror , Classilla , TenFourFox .

Gecko также используется Шугаром для компьютера OLPC XO-1 . [24] и используется как полная реализация XUL ( языка пользовательского интерфейса XML ). Gecko в настоящее время определяет спецификацию XUL. [ нужно обновить ] Gecko также используется мобильной операционной системой KaiOS , основанной на снятой с производства ОС Firefox . [25]

Предыдущие пользователи

[ редактировать ]

Продукты, которые раньше использовали Gecko, включают Pale Moon (теперь использующий Goanna ), Epiphany (теперь известный как GNOME Web и использующий WebKitGTK ) и GNOME DevHelp (теперь использующий WebKitGTK ).

В число снятых с производства продуктов, использовавших Gecko, входят Swiftfox , Flock , Galeon , Camino , Minimo , Beonex Communicator , Kazehakase , Songbird , Sunbird (календарь) , MicroB , Nightingale , Instantbird и Picasa для Linux. [26]

Собственная зависимость

[ редактировать ]

В Windows и других платформах Gecko зависит от проприетарных компиляторов. [27] Таким образом, FOSS дистрибутивы Linux не могут включать пакет Gecko, используемый на уровне совместимости Windows Wine . [28]

После Gecko 2.0 номер версии был увеличен до 5.0, чтобы соответствовать Firefox 5, и с тех пор синхронизируется с основным номером версии как для Firefox, так и для Thunderbird. [29] чтобы отразить тот факт, что это больше не отдельный компонент. [30]

Раздуваться

[ редактировать ]

В эпоху Netscape сочетание плохих технических и управленческих решений привело к раздуванию программного обеспечения Gecko . [11] [31] [32] Таким образом, в 2001 году Apple решила создать форк KHTML , а не Gecko, чтобы создать WebKit движок для своего браузера Safari . [31] [32] Однако к 2008 году Mozilla устранила некоторые проблемы раздувания, что привело к значительному повышению производительности Gecko. [33]

Квантовый

[ редактировать ]

Quantum — это проект Mozilla , включающий в себя несколько усилий по разработке программного обеспечения, направленных на «создание веб-движка следующего поколения для пользователей Firefox ». Он включает в себя многочисленные улучшения Gecko, в основном заимствованные из экспериментального проекта Servo . Quantum также включает в себя усовершенствования пользовательского интерфейса и взаимодействия. [12] [13]

Firefox 57, выпущенный в ноябре 2017 года, является начальной версией с включенным компонентом Servo. Mozilla называет этот и несколько запланированных будущих выпусков «Firefox Quantum». [34] [35]

В 2012 году Mozilla начала экспериментальный проект Servo , который представляет собой движок, разработанный с нуля с целью улучшения параллелизма и параллелизма , а также снижения уязвимостей безопасности памяти . Servo написан на языке программирования Rust , также созданном Mozilla, который предназначен для генерации скомпилированного кода с большей безопасностью памяти, параллелизмом и параллелизмом, чем скомпилированный код C++. [5]

По состоянию на апрель 2016 года Servo потребовалось как минимум несколько лет разработки, чтобы стать полнофункциональным браузерным движком. [36] отсюда и решение начать проект Quantum по внедрению стабильных частей Servo в Firefox. Mozilla уволила всех разработчиков Servo в августе 2020 года. [37]

Компоненты

[ редактировать ]

Проект Quantum состоит из нескольких подпроектов. [12]

  • CSS : Servo, параллельная система таблиц стилей интегрированная в Gecko. Тесты показывают, что производительность линейно зависит от количества ядер ЦП . [38] Это было выпущено в Firefox 57. [35]
  • Рендеринг Servo : архитектура рендеринга , называемая WebRender, интегрированная в Gecko. WebRender заменяет в немедленном режиме модель рисования моделью с сохраненным режимом , которую легче ускорить с помощью графического процессора за счет сходства CSS/DOM с графом сцены . Рендеринг в худшем случае при тестировании превышает 60 кадров в секунду. [39] Mozilla начала включать новый модуль рендеринга для некоторых комбинаций оборудования и ОС в Firefox 67. [40]
  • Компоновщик Gecko : существующий композитор перенесен в отдельный процесс, изолируя вкладки браузера от сбоев, связанных с графическим драйвером. Поскольку сбои компоновщика не приводят к остановке процесса создания содержимого браузера, процесс компоновщика можно прозрачно перезапустить без потери пользовательских данных. Это было выпущено в Firefox 53. [41]
  • DOM : вдохновлен архитектурой Servo Constellation. [42] и Opera Presto движок , [43] Quantum DOM использует совместно запланированные потоки внутри DOM для повышения скорости реагирования без увеличения количества процессов и, следовательно, использования памяти. Ядро этого появилось в Firefox 57. [44]
  • Flow : Зонт для видимых пользователем улучшений производительности, обеспечиваемых командой, работающей над компонентами Gecko. Основное внимание уделяется реальному повышению производительности пользователей в основных веб-приложениях , в первую очередь в G Suite (теперь называемом Google Workspace ) и Facebook . [45] Эта работа завершена и отправлена ​​для Firefox 57. [46]
  • Photon : обновление пользовательского интерфейса всего приложения с упором на повышение производительности пользовательского интерфейса. Рассматривается как родственный проект Quantum Flow. [47] Это было выпущено в Firefox 57. [34]
  • Сеть . Улучшите производительность Necko , сетевого уровня Gecko, за счет перемещения большей сетевой активности из основного потока, контекстно-зависимой приоритезации сетевых потоков и ускорения уровня кэша вместе с сетью. [48] Эта функция была выпущена в Firefox 59. [49]

Лазурный

[ редактировать ]

Проект Mozilla Azure — это низкоуровневый API абстракции графики без сохранения состояния, используемый в Firefox . [50] Проект преследует несколько целей, включая более точную совместимость с Direct2D, оптимизированную совместимость состояний и улучшенный контроль над характеристиками производительности и ошибками. Azure обеспечит аппаратное ускорение 2D поверх серверных частей 3D-графики. Firefox начал использовать Azure вместо Cairo в 2012 году. [51] [52] Он написан на C++ и используется Servo . [53] Название Azure — это ода основателю Netscape Джеймсу Кларку и его ранней работе в Silicon Graphics, где рабочие станции часто назывались в честь цветов. [54]

  1. ^ «Лицензионные соглашения Mozilla Foundation с конечными пользователями» . Мозилла .
  2. ^ «Политика лицензирования Mozilla» . сайт mozilla.org . Проверено 26 марта 2013 г.
  3. ^ «Встраивание Mozilla» . Мозилла.орг. 25 октября 2012 г. Проверено 31 октября 2012 г.
  4. ^ Перейти обратно: а б «Простая сборка Firefox для Android» . Архивировано из оригинала 29 сентября 2019 г. Проверено 3 мая 2017 г. Gecko реализован с использованием C++ и JavaScript.
  5. ^ Перейти обратно: а б Бергстрем, Ларс; и др. (май 2016 г.). «Разработка движка веб-браузера Servo с использованием Rust» (PDF) . Материалы международной конференции по программной инженерии . Архивировано (PDF) из оригинала 29 мая 2016 г.
  6. ^ «Группы Google» . groups.google.com .
  7. ^ Егулалп, Сердар (3 февраля 2017 г.). «Mozilla связывает судьбу Firefox с языком Rust» . Инфомир .
  8. ^ «Обновление MPL 2» . Проверено 18 августа 2012 г.
  9. ^ «Часто задаваемые вопросы о гекконах» . Веб-документы MDN . Архивировано из оригинала 08.10.2019 . Проверено 3 мая 2017 г.
  10. ^ «Проект nglayout: кризис идентичности» . Мозилла.орг. Архивировано из оригинала 29 июня 2011 г. Проверено 31 октября 2012 г.
  11. ^ Перейти обратно: а б Хорхе О. Кастро (15 июня 2004 г.). «Ars Technica беседует со Скоттом Коллинзом из Mozilla.org» . Арс Техника . Проверено 16 февраля 2017 г.
  12. ^ Перейти обратно: а б с д «Квант» . Мозилла Вики . Проверено 20 апреля 2017 г.
  13. ^ Перейти обратно: а б Чимпану, Каталин. «Mozilla анонсирует Quantum, новый браузерный движок для Firefox» . софтпедия . Проверено 7 ноября 2016 г.
  14. ^ «Firefox Focus 7.0 вступает в бета-версию, переключается на GeckoView (Gecko Engine)» . 14 сентября 2018 г. Архивировано из оригинала 31 июля 2020 г. . Проверено 19 сентября 2019 г.
  15. ^ Перейти обратно: а б «Firefox Focus с GeckoView» . Хаки Мозиллы . 13 сентября 2018 года . Проверено 4 сентября 2019 г.
  16. ^ «Что нового в Firefox Focus для Android (версия 7) | Справка Firefox Focus» . support.mozilla.org . Проверено 4 сентября 2019 г.
  17. ^ «GeckoView в 2019 году» . Хаки Мозиллы . 27 июня 2019 г. Проверено 4 сентября 2019 г.
  18. ^ Веста Заре (25 августа 2020 г.). «Быстрый, персонализированный и конфиденциальный дизайн на всех платформах: представляем новый интерфейс Firefox для Android» . Блог Мозиллы . Проверено 22 сентября 2020 г.
  19. ^ «Кросс-браузерная совместимость ECMAScript 2015 (ES6) в Firefox 102» . www.lambdatest.com . Проверено 21 августа 2022 г.
  20. ^ «Кроссбраузерная совместимость SVG (базовая поддержка) в Firefox 102» . www.lambdatest.com . Проверено 21 августа 2022 г.
  21. ^ «Mozilla добавляет поддержку необнаружимого document.all, как часть нового дистрибутива Novell Linux?» . Разработчик.mozilla.org. 23 июля 2004 г. Проверено 7 февраля 2018 г.
  22. ^ «IE использует Gecko под вином» . Винная вики . Проверено 14 сентября 2009 г.
  23. ^ сдубуа (24 июня 2010 г.). «Геккон» . Фонд свободного программного обеспечения . Проверено 23 мая 2019 г.
  24. ^ Мартенс, Китай (3 января 2007 г.). «Один ноутбук на ребенка готовит интерфейс «Сахар»» . Служба новостей IDG. Архивировано из оригинала 18 января 2008 г. Проверено 28 декабря 2007 г.
  25. ^ Хилл, Пол (12 марта 2020 г.). «KaiOS Technologies сотрудничает с Mozilla для улучшения Gecko» . Неовин . Проверено 12 июля 2024 г.
  26. ^ «Picasa 3.0 для Linux» . Архивировано из оригинала 7 января 2009 г. Проверено 28 декабря 2008 г.
  27. ^ «Создание Firefox для Windows» . Веб-документы MDN .
  28. ^ «Федора — Вино-Вики» . wiki.jswindle.com . Архивировано из оригинала 11 июня 2012 года.
  29. ^ «Версии Gecko и версии приложений» . МДН . Архивировано из оригинала 31 октября 2020 г. Проверено 18 ноября 2013 г.
  30. ^ «В новом Thunderbird 5 ничего особенного, но план развития выглядит многообещающе» . Арс Техника . 30 июня 2011 года . Проверено 7 февраля 2018 г.
  31. ^ Перейти обратно: а б Пол Феста (14 января 2003 г.). «Пренебрежение Apple уязвляет Mozilla» . Сети CNET . Архивировано из оригинала 25 октября 2012 г. Проверено 16 февраля 2017 г.
  32. ^ Перейти обратно: а б Дэвид Бэрон (9 января 2003 г.). «Четверг 09.01.2003» . Блог Дэвида Бэрона . самостоятельно опубликовано. Архивировано из оригинала 28 июля 2009 г. Проверено 16 февраля 2017 г.
  33. ^ Райан Пол (9 сентября 2008 г.). «Почему Mozilla привержена Gecko по мере роста популярности WebKit» . Проверено 16 февраля 2017 г.
  34. ^ Перейти обратно: а б «Firefox 57.0: все новые функции, обновления и исправления» . Мозилла . Проверено 30 октября 2018 г.
  35. ^ Перейти обратно: а б «Представляем новый Firefox: Firefox Quantum — Блог Mozilla» . Блог Mozilla . Проверено 30 октября 2018 г.
  36. ^ «Оставшаяся работа сервопривода» . Гитхаб . Проверено 17 февраля 2017 г.
  37. ^ «Mozilla увольняет 250 сотрудников и переориентируется на коммерческие продукты» . ЗДНет . Проверено 14 июня 2022 г.
  38. ^ «Журнал изменений» . Журнал изменений . 18 ноября 2016 г. Проверено 28 марта 2017 г.
  39. ^ «Встреча по ржавчине в районе залива, февраль 2016 г.» . Эйр Мозилла . Проверено 28 марта 2017 г.
  40. ^ «Вебрендер Где» . Мозилла Вики . Проверено 14 июля 2020 г.
  41. ^ «Firefox стал быстрее и стабильнее с первыми большими байтами Project Quantum, стал проще благодаря компактным темам и обновленному дизайну разрешений» . Блог Мозиллы . Проверено 27 апреля 2017 г.
  42. ^ «Сервоархитектура» . Ютуб . 18 января 2017 г. Архивировано из оригинала 11 декабря 2021 г. Проверено 28 марта 2017 г.
  43. ^ «Квантовый проект Mozilla» . Блог Билла Макклоски . 27 октября 2016 г. Проверено 28 марта 2017 г.
  44. ^ «Вход в квантовую эру» . Хаки Мозиллы . 13.11.2017 . Проверено 14 июля 2020 г.
  45. ^ «Квантовый поток» . Мозилла Вики . Проверено 28 марта 2017 г.
  46. ^ «Информационный бюллетень № 25 по квантовой технологии потоков» . ehsanakhgari.org . 17 сентября 2017 г. Проверено 14 июля 2020 г.
  47. ^ дольское (18 мая 2017 г.). «Информационный бюллетень фотонной инженерии № 1» . Блог Дольске . Проверено 4 июля 2017 г.
  48. ^ «TPE Necko/Проекты — MozillaWiki» . Wiki.mozilla.org . Проверено 4 июля 2017 г.
  49. ^ «Примечания к выпуску Firefox 59» . www.mozilla.org . Проверено 16 января 2019 г.
  50. ^ «Платформа/GFX/Moz2D — MozillaWiki» .
  51. ^ Парфени, Лукиан. «Firefox теперь использует Azure Graphics API для Canvas на всех платформах» .
  52. ^ «Azure заменяет Cairo в Mozilla Firefox — Phoronix» .
  53. ^ Уиллис, Натан (17 июня 2015 г.). «Параллельный рендеринг страниц с помощью Mozilla Servo» . LWN.net . Проверено 27 июня 2015 г.
  54. ^ «Представляем проект Azure — ДЖОДРЮ!» . Архивировано из оригинала 8 сентября 2016 г. Проверено 22 сентября 2019 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 4172a58b0800011d872131410adc222b__1722625740
URL1:https://arc.ask3.ru/arc/aa/41/2b/4172a58b0800011d872131410adc222b.html
Заголовок, (Title) документа по адресу, URL1:
Gecko (software) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)