Обновлён план перевода Firefox на многопроцессную архитектуру
22 декабря 2016 года
Разработчики Mozilla опубликовали обновлённый план перевода Firefox на многопроцессную архитектуру с разделением на разные процессы обработчиков контента и интерфейса (все обработчики контента выполняются отдельно от интерфейса, но пока в одном процессе друг с другом). Сообщается, что предварительное внедрение многопроцессного режима для отдельных категорий пользователей прошло успешно и если не возникнет непредвиденных проблем, включение многопроцессного режима для всех пользователей ожидается в выпуске Firefox 51, запланированном на 24 января. Исключение будет сделано только для конфигураций, в которых встречаются дополнения, помеченные как явно несовместимые с многопроцессной архитектурой.
Напомним, что в Firefox 48 многопроцессный режим был предложен примерно 1% пользователей (затем расширен до 50%), не использующих дополнения и средства для людей с ограниченными возможностями. В Firefox 49 тестирование было расширено на пользователей ограниченного списка дополнений, проверенных на предмет совместимости с многопроцессным режимом. В Firefox 50 многопроцессный режим был включен для систем со всеми проверенными дополнениями. В Firefox 51 вместо белого списка разрешённых дополнений, будет применён чёрный список явно не совместимых дополнений.
Многопроцессный режим позволяет увеличить безопасность, повысить отзывчивость интерфейса, минимизировать подвисания во время сборки мусора и заметно ускорить работу браузера на многоядерных системах за счёт организации параллельного выполнения неблокирующих друг друга операций. По тестам Mozilla на многоядерных системах наблюдается увеличение отзывчивости интерфейса на 400% и ускорение загрузки страниц на 700%. Параллельно разработчики развивают две инициативы по расширению многопроцессного режима:
- В ночных сборках проходит тестирование возможность обработки контента в разных процессах. В отличие от уже применяемого разделения на два процесса - один для обработки содержимого вкладок и один для формирования интерфейса, новая возможность позволяет запустить более одного процесса для обработки контента (число запускаемых процессов для обработки контента задаётся через переменную dom.ipc.processCount в about:config). Подобный подход позволяет обеспечить дополнительную изоляцию обработчиков, повысить надёжность (крах одной вкладки не приведёт к закрытию всех остальных вкладок), повысить эффективность использования ресурсов многоядерных процессоров (разнесение нагрузки на все ядра), уменьшить фрагментацию памяти при длительной работе браузера.
- Реализация sandbox-изоляции, ограничивающей доступ дочерних процессов Firefox к системным вызовам, файловой системе и сторонним процессам. В настоящее время sandbox-изоляция уже применяется на платформе Windows и в одном из следующих релизов будет предложена для macOS и Linux. Для изоляции в Linux применяется ограничение доступа к системным вызовам при помощи Seccomp-bpf, также для изоляции используются PID namespace и chroot в пустую директорию. В Windows применяются разработанные Google библиотеки sandboxbroker и sandboxtarget, используемые в Chromium и Chrome.
Источники
править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.