stringtranslate.com

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

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 также используется Sugar для компьютера OLPC XO-1 . [24] Gecko используется как полная реализация XUL ( языка пользовательского интерфейса XML ). Gecko в настоящее время определяет спецификацию XUL.

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

Продукты, которые раньше использовали 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. [25]

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

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

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

Раздуваться

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

Квантовый

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

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

Фон

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

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

Компоненты

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

Лазурный

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

Рекомендации

  1. ^ «Лицензионные соглашения Mozilla Foundation с конечными пользователями» . Мозилла .
  2. ^ «Политика лицензирования Mozilla» . сайт mozilla.org . Проверено 26 марта 2013 г.
  3. ^ «Встраивание Mozilla». Мозилла.орг. 25 октября 2012 г. Проверено 31 октября 2012 г.
  4. ^ ab «Простая сборка 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. ^ abcd "Квант". Мозилла Вики . Проверено 20 апреля 2017 г.
  13. ^ аб Чимпану, Каталин. «Mozilla анонсирует Quantum, новый браузерный движок для Firefox». софтпедия . Проверено 7 ноября 2016 г.
  14. ^ «Firefox Focus 7.0 вступает в бета-версию, переключается на GeckoView (Gecko Engine)» . 14 сентября 2018 г.
  15. ^ ab «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 добавляет поддержку необнаружимого документа.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. ^ «Picasa 3.0 для Linux» . Архивировано из оригинала 7 января 2009 г. Проверено 28 декабря 2008 г.
  26. ^ «Создание Firefox для Windows». Веб-документы MDN .
  27. ^ "Федора - Wine-Wiki" . wiki.jswindle.com . Архивировано из оригинала 11 июня 2012 года.
  28. ^ «Версии Gecko и версии приложений» . МДН . Архивировано из оригинала 31 октября 2020 г. Проверено 18 ноября 2013 г.
  29. ^ «В новом Thunderbird 5 не так уж много, но план действий выглядит многообещающе» . Арс Техника . 30 июня 2011 г. Проверено 7 февраля 2018 г.
  30. ^ аб Пол Феста (14 января 2003 г.). «Пренебрежение Apple уязвляет Mozilla». Сети CNET . Архивировано из оригинала 25 октября 2012 г. Проверено 16 февраля 2017 г.
  31. ^ аб Дэвид Барон (9 января 2003 г.). «Четверг 09.01.2003». Блог Дэвида Бэрона . самостоятельно опубликовано. Архивировано из оригинала 28 июля 2009 г. Проверено 16 февраля 2017 г.
  32. ^ Райан Пол (9 сентября 2008 г.). «Почему Mozilla привержена Gecko по мере роста популярности WebKit» . Проверено 16 февраля 2017 г.
  33. ^ ab «Firefox 57.0, см. все новые функции, обновления и исправления». Мозилла . Проверено 30 октября 2018 г.
  34. ^ ab «Представляем новый Firefox: Firefox Quantum - Блог Mozilla» . Блог Mozilla . Проверено 30 октября 2018 г.
  35. ^ "Сервопривод остался в работе" . Гитхаб . Проверено 17 февраля 2017 г.
  36. ^ «Mozilla увольняет 250 сотрудников, переориентируясь на коммерческие продукты» . ЗДНет . Проверено 14 июня 2022 г.
  37. ^ "Журнал изменений". Журнал изменений . 18 ноября 2016 г. Проверено 28 марта 2017 г.
  38. ^ «Встреча по ржавчине в районе залива, февраль 2016 г.» . Эйр Мозилла . Проверено 28 марта 2017 г.
  39. ^ "Вебрендер Где" . Мозилла Вики . Проверено 14 июля 2020 г.
  40. ^ «Firefox быстрее и стабильнее с первыми большими байтами Project Quantum, проще с компактными темами и измененным дизайном разрешений» . Блог Мозиллы . Проверено 27 апреля 2017 г.
  41. ^ «Сервоархитектура». YouTube . Архивировано из оригинала 11 декабря 2021 г. Проверено 28 марта 2017 г.
  42. ^ «Квантовый проект Mozilla». Блог Билла Макклоски . 27 октября 2016 г. Проверено 28 марта 2017 г.
  43. ^ «Вход в квантовую эру». Хаки Мозиллы . 13.11.2017 . Проверено 14 июля 2020 г.
  44. ^ «Квантовый поток». Мозилла Вики . Проверено 28 марта 2017 г.
  45. ^ "Информационный бюллетень № 25 по квантовой технологии потоков" . ehsanakhgari.org . 17 сентября 2017 г. Проверено 14 июля 2020 г.
  46. ^ дольске (18 мая 2017 г.). «Информационный бюллетень фотонной инженерии № 1». Блог Дольске . Проверено 4 июля 2017 г.
  47. ^ "TPE Necko/Проекты - MozillaWiki" . Wiki.mozilla.org . Проверено 4 июля 2017 г.
  48. ^ «Примечания к выпуску Firefox 59» . www.mozilla.org . Проверено 16 января 2019 г.
  49. ^ «Платформа/GFX/Moz2D — MozillaWiki».
  50. ^ Парфени, Лукиан. «Firefox теперь использует Azure Graphics API для Canvas на всех платформах».
  51. ^ «Azure заменяет Cairo в Mozilla Firefox — Phoronix» .
  52. Уиллис, Натан (17 июня 2015 г.). «Параллельный рендеринг страниц с помощью Mozilla Servo». LWN.net . Проверено 27 июня 2015 г.
  53. ^ «Представляем проект Azure — ДЖОДРЮ!». Архивировано из оригинала 8 сентября 2016 г. Проверено 22 сентября 2019 г.

Внешние ссылки