Браузеры Internet Exploprer и Google Chrome используют мультипроцессную архитектуру для улучшения стабильности и безопасности. Они разделяют задачи по парсингу и рендерингу веб-страниц от задач по прорисовке, сохранению файлов, созданию новых соединений и так далее. Это позволяет им успешно обрабатывать потенциально опасный веб-код в так называемой песочнице с пониженными привилегиями и с блокировкой по доступу к операционной системе. Это также значит, что браузеры значительно более устойчивы к системным сбоям: баг, который рушит страницу в одной вкладке, не влияет на работу всего браузера и операционной системы. В 2009 году Mozilla анонсировала проект Electrolysis, который имел своей целью внедрение аналогичной архитектуры в браузере Firefox. За окном завершается 2013 год, а Firefox по-прежнему не является мультипроцессным браузером, что делает его фундаментально уязвимым и не столь адаптированным для многоядерных процессоров. У Firefox есть ограниченная поддержка мультипроцессности, так, плагины тут работают в рамках собственных процессов, но все остальное выполняется в рамках одного глобального процесса, который имеет полнофункциональные привилегии. Проект Electrolysis был фактически заморожен два года назад. И вот в январе этого года Mozilla сообщила, что работы над мультипроцессной версией Firefox возобновились. На этой неделе разработчики выпустили Nightly-сборку Firefox, которая имеет «нормальную» мультипроцессность. На сегодня эта мультипроцессность все еще довольно ограничена в сравнении с Chrome или Internet Explorer, однако она уже позволяет создавать два глобальных процесса: один для браузерного окна, другой - для всех вкладок в браузере. В Mozilla говорят, что им все еще предстоит большая работа в данном направлении. Сейчас ряд базовых функций работают в разных процессах, другие - нет. К примеру, инструменты для разработчиков - не работают. В компании говорят, что им предстоит переработать процессы для плагинов, а также четко определить то, как они работают с веб-содержимым. Кроме всего прочего, разработчикам предстоит создать систему сигнальной синхронизации процессов в браузере, чтобы процессы не плодили гигантских очередей в работе. Еще один нюанс: если Internet Explorer поставляется только под Windows, то Firefox работает под Windows, Linux и Mac OS X, а каждая их этих ОС по-своему работает с многопроцессными приложениями, поэтому разработчикам придется учитывать большое количество нюансов, а выпускать все браузеры придется одновременно, чтобы пользователи разных систем были в равном положении.
Источник