Страницы

2013-12-06

Доступна для тестирования многопроцессная версия Firefox

В ночных сборках Firefox появилась поддержка многопроцессного выполнения, подразумевающего вынос в разные процессы средств формирования интерфейса и обработчиков контента. Процесс, отвечающий за интерфейс, во многом напоминает базовый однопроцессный вариант Firefox, он формирует окружение браузера на основе XUL, выполняет дополнения, инициирует управление вкладками и обеспечивает вывод окна. Отличие состоит в том, что обработка содержимого вкладки выносится из данного базового процесса в отдельный внешний процесс.
Результат компоновки интерфейса и обработки контента формируется в виде слоёв, которые определяют содержимое окна. Например, панели, меню и результат обработки контента определяются в отдельных слоях. Из разных процессов слои передаются в систему отрисовки, которая занимается сведением (композитингом) серии слоёв в единое изображение, определяющее итоговое содержимое окна браузера.
Разделение компонентов для обработки контента и формирования интерфейса в разные процессы позволяет заметно ускорить работу браузера на многоядерных системах за счёт организации параллельного выполнения не блокирующих друг друга операций. Потребление памяти в многопроцессном режиме мало отличается от обычного однопроцессного режима, разница составляет около 10 Мб, при этом планируемые оптимизации позволят снизить этот показатель.
Проект по переводу Fierfox на многопроцессную архитектуру, развиваемый под кодовым именем Electrolysis, стартовал в 2009 году, но в 2011 году был приостановлен из-за наличия более простых путей повышения отзывчивости интерфейса, не требующих значительной переработки архитектуры браузера (например, оптимизация работы сборщика мусора, дробление длительно выполняемых операций или их выделение в отдельный поток, использования асинхронного ввода/вывода и вынос выполнения плагинов в отдельные процессы). Спустя два года, когда более простые варианты оптимизаций уже воплощены в жизнь, разработчики вернулись к идее обработки контента и пользовательского интерфейса в разных процессах.
Новый режим уже доступен в ночных сборках Firefox и может быть активирован через установку переменной browser.tabs.remote в настройках about:config. Разработка пока носит экспериментальный характер и не позволяет использовать некоторые возможности браузера, такие как средства для web-разработчиков, вывод на печать и сохранение страниц. Дополнения в новом режиме ведут себя по-разному, некоторые работают нормально, а с некоторыми возникают проблемы. В случае краха процесса, обрабатывающего содержимое вкладок, процесс, отвечающий за формирование интерфейса, продолжает работу и выводит предупреждение о крахе.
Раздельная обработка вкладок в разных процессах пока не поддерживается, в текущий момент возможна работа только одного процесса обработки контента. В будущем планируется обеспечение поддержки работы нескольких процессов обработки контента (отдельные обработчики для каждой вкладки).
Основные преимущества перехода к многопроцессной обработке:
  • Оптимизация для многоядерных процессоров. В текущем виде для обработки всех страниц и интерфейса пользователя используется только одно ядро CPU, все остальные ядра простаивают и не участвуют в обеспечении работы браузера (за исключением ситуаций с выполнением плагинов). Несмотря на попытки использования многопоточности и вынос за пределы основного цикла обработки событий выполнения таких операций, как декодирование изображений, видео и звука, осуществление сетевых операций и ввода/вывода, по прежнему остаются однопоточными подсистема DOM (Document Object Model), функции формирования содержимого окна, парсинг HTML и выполнение JavaScript, т.е. для обработки контента может быть задействовано только одно ядро CPU.
  • Предсказуемое потребление памяти. В длительно выполняемых процессах, при постоянном выделении и освобождении памяти разного размера со временем растет фрагментация и остается все больше небольших "дыр" от ранее освобожденных объектов, которые располагаются вперемешку с занятыми блоками памяти. В ситуации запроса памяти для размещения нового объекта, часто приходится запрашивать новые блоки у операционной системы, несмотря на наличие достаточно большого числа свободных областей во внутренней "куче", размер которых по отдельности меньше запрошенного блока. В случае обработки web-страниц разными процессами занятые процессом блоки памяти после завершения процесса полностью отдаются обратно операционной системе, а не остаются в "резерве", закрепленными за одним процессом в надежде, что эта память понадобится в будущем. Таким образом, обработка каждой вкладки отдельным процессом может привести к заметной экономии памяти (общие данные между процессами не дублируются, через мапинг используется только одна копия) и избавлению от проблемы с постоянным ростом размера процесса.
  • Защита от сбоев. В случае выхода за пределы допустимой границы буфера или при возникновении другой нештатной ситуации при использовании однопроцессной модели обработки, крах процесса приведет к закрытию всех окон и вкладок. При обработке каждой страницы отдельным процессом, в случае сбоя закроется лишь одна вкладка, не повлияв на работоспособность браузера в целом. Кроме того, такой подход даст возможность упростить диагностику причины краха и позволит точно видеть какой сайт и какая операция привела к проблеме.
  • Повышение безопасности. Обработка каждого сайта отдельным процессом позволяет изолировать связанный с ним код от обработчиков других сайтов и кода, обеспечивающего работу интерфейса, которые в случае выполнения разными процессами не могут пересекаться. Современные операционные системы позволяют перевести процесс в "режим пониженных прав", при котором блокируется доступ к большому числу системных ресурсов. В случае эксплуатации уязвимости в таком процессе, код злоумышленника будет ограничен в своих возможностях и не сможет выйти за пределы "песочницы". Для совершения атаки в подобных ситуациях требуется эксплуатация еще одной уязвимости в более привилегированном управляющем процессе. 

source1
source2

2013-12-04

Представлен прототип вредоносного ПО, взаимодействующего через звуковой канал связи

Группа исследователей из института информационной и коммуникационной техники имени Фраунгофера разработала прототип нового средства коммуникации, которое может быть использовано для организации взаимодействия между вредоносным ПО на разных системах. Предложенный механизм позволяет использовать штатные динамики и микрофоны ноутбуков для организации канала связи между поражёнными вредоносным ПО системами, расположенными на расстоянии до 20 метров друг от друга. В процессе разработки прототипа были использованы наработки параллельно проводимых исследований по созданию акустических методов передачи данных под водой.

Симулируя работу модема при помощи обычных звуковых устройств прототипы вредоносной программы выявляют наличие поблизости других поражённых систем и организуют обмен данными с ними. Вещание ведётся незаметно, в невоспринимаемом обычными людьми диапазоне высоких частот. Скорость передачи в таком канале не превышает 20 бит в секунду, чего вполне достаточно для передачи таких небольших объёмов данных, как перехваченные пароли. В качестве возможного способа блокирования атаки называется применение фильтров, блокирующих использование высокого диапазона частот. Подобные фильтры могут быть реализованы в форме плагина для Linux-подсистемы ALSA (Advanced Linux Sound Architecture).

Продолжением идеи является построение mesh-сети на основе акустического обмена данными, в которой взаимодействие двух систем может быть организовано через расположенные между ними промежуточные системы. Практическим применением предложенной системы может выступать организация передачи накопленных вредоносным ПО данных от поражённых систем, не имеющих выхода в интернет, к системам, имеющим канал связи с внешним миром.

source1
source2

В рамках проекта Orchid подготовлен альтернативный клиент для анонимной сети Tor

Представлен первый выпуск проекта Orchid, в рамках которого подготовлена альтернативная реализация клиента и библиотеки для работы в анонимной сети Tor. Orchid написан на языке Java с использованием спецификаций на протокол и архитектуру сети Tor. Код распространяется под лицензией BSD. Целью создания проекта была проверка полноты спецификаций Tor и создание эталонной реализации на языке Java, пригодной для бесшовной интеграции поддержки Tor непосредственно в Java-приложения.
Поддерживается работа на любых системах c Java, а также работа на платформе Android. Возможна работа в форме обособленного клиента Tor с организацией работы приложений через прокси SOCKS5. Orchid также может быть использован в качестве библиотеки, позволяющей задействовать возможности сети Tor в приложениях, написанных на Java и таких базирующихся на JVM языках как JRuby, Clojure и Scala.
source1
source2

Введён в строй IaaS-сервис Google Compute Engine


Компания Google объявила о завершении фазы тестовой эксплуатации IaaS-сервиса Google Compute Engine, нацеленного на предоставление средств для запуска произвольных виртуальных серверов на мощностях Google. Отныне сервис помещен как стабильный и готовый к повсеместному использованию. В максимальной конфигурации отдельному виртуальному окружению может быть выделено до 16 процессорных ядер и 104 Гб ОЗУ.
Примечательным изменением является предоставление возможности запуска любых Linux-дистрибутиов и FreeBSD в окружении Google Compute Engine, в том числе образов на базе платформы CoreOS, систем с произвольными ядрами Linux, конфигураций с активированной поддержкой SELinux, возможностью использования Docker. Напомним, что в процессе тестирования сервиса выбор окружений был ограничен специализированными сборками Debian GNU/Linux и CentOS, в которых штатное ядро Linux было заменено на специализированную сборку ядра с изменениями от Google.
source1
source2

2013-12-02

Выпуск промышленного дистрибутива Oracle Linux 6.5

Компания Oracle представила релиз промышленного дистрибутива Oracle Linux 6.5, созданного на основе пакетной базы Red Hat Enterprise Linux 6.5. Дистрибутив доступен для бесплатной загрузки в сборках для архитектуры x86_64 (размер iso-образа 3.6 Гб). Напомним, что начиная с марта 2012 года, для Oracle Linux открыт неограниченный и бесплатный доступ к yum-репозиторию с бинарными обновлениями пакетов с устранением ошибок (errata) и проблем безопасности.
Ключевым улучшением в Oracle Linux 6.5 является интеграция ядра Unbreakable Enterprise Kernel 3, основанного на ядре Linux 3.8 и примечательного интеграцией поддержки DTrace, системы изолированных контейнеров LXC, улучшенной поддержкой Btrfs и существенным расширением поддержки нового оборудования. С особенностями нового ядра можно познакомиться в данном обзоре.
В составе Oracle Linux 6.5 поставляется три варианта пакетов с Linux-ядром: классический вариант от компании Red Hat (kernel-2.6.32-431.el6 для x86 и x86_64), Unbreakable Enterprise Kernel Release 2 (kernel-uek-2.6.39-400.211.1.el6uek для x86) и Unbreakable Enterprise Kernel Release 3 (kernel-uek-3.8.13-16.2.1.el6uek для x86_64). По умолчанию в базовую поставку входят все указанные ядра, но подготовленный в Oracle пакет с ядром Enterprise Kernel Release 3 загружается по умолчанию. Готовые бинарные сборки ядра от Oracle для совместимых c RHEL дистрибутивов и src.rpm-пакеты представлены на сайте public-yum.oracle.com, там же можно загрузить и другие присутствующие в дистрибутиве пакеты. Oracle не накладывает никаких ограничений на поставку подготовленного в Oracle ядра в сторонних продуктах.

source1
source2

2013-11-27

В рамках проекта RT-Xen развиваются средства для Real-Time виртуализации на базе Xen

Представлена новая, существенно улучшенная, версия проекта RT-Xen, в рамках которого группой исследователей из Сент-Луисского и Пенсильванского университетов развивается вариант гипервизора Xen, пригодный для выполнения в виртуальных окружениях задач, работающих в режиме реального времени. Использование RT-Xen позволяет организовать работу операционных систем реального времени внутри гостевых виртуальных машин.
В Xen используется концепция виртуальных CPU (VCPU), ресурсы которых распределяются планировщиком гипервизора между виртуальными окружениями. Штатные планировщки Xen, манипулирующие VCPU, не могут обеспечить гарантированное и предсказуемое выделение ресурсов. Основу RT-Xen составляет работающий на уровне гипервизора композиционный real-time планировщик, реализующий возможность предсказуемого гарантированного выделения вычислительных ресурсов для выполнения вычислений реального времени на виртуализированных платформах.
RT-Xen привязывает к VCPU такие дополнительные параметры, как маска для закрепления выполнения на определённых физических CPU и максимальный размер ресурсов CPU, которые могут быть выделены за квант времени планировщика. Предоставляется возможность выбора нескольких алгоритмов планирования (RT-global, RT-partition) и схем расстановки приоритетов (EDF (earliest deadline first), RM (rate monotonic)). Планировщики RT-Xen поддерживают работу на многоядерных системах и предоставляют возможность формирования многоядерных виртуальных машин.
Планировщик RT-global манипулирует глобальной очередью выполнения, обслуживающей все VCPU, что позволяет более эффективно распределять ресурсы и обеспечить возможность свободной миграции VCPU между физическими CPU. RT-partition использует отдельные очереди выполнения для каждого физического CPU, что уменьшает накладные расходы и потенциально более оптимально использует процессорный кэш. 


source1
source2

Утечка паролей при переключении пользователей GNOME в Fedora 20

В экспериментальных выпусках Fedora 20 выявлена интересная проблема в интерфейсе переключения пользователей рабочего стола GNOME - при очередной смене пользователя имеется возможность посмотреть пароль пользователя прошлого активного сеанса. Например, после того как пользователь user1 заблокировал экран не завершая свой сеанс, к системе может подключиться пользователь user2 и также заблокировать свой экран, после возвращения user1, данный пользователь может увидеть пароль user2 в диалоге разблокирования экрана.

source1
source2