Доступен релиз обновленного инструментария Native Client
Среди отличительных возможностей представленного релиза отмечается поддержка нового API для разработки браузерных плагинов Pepper (PPAPI), разработанного для устранения проблем с переносимостью и производительностью классического API Netscape (NPAPI), а также оптимизированного для упрощения создания плагинов, работающих в виде отдельных процессов. Поддержка Pepper присутствует пока только в web-браузере Chrome, начиная с 6 выпуска. Что касается Native Client, то в SDK нового выпуска включена полноценная поддержка использования расширенных интерфейсов Pepper, связанных с обеспечением работы вычислительных, аудио и графических функций.
Другим важным достижением новой версии Native Client стало усиление базопасности. В частности, добавлена поддержка автоматических обновлений и внешних изолированных окружений (outer sandbox). Помимо безопасности, был улучшен механизм для извлечения модулей Native Client, соответствующих текущей аппаратной архитектуре целевой системы - разработчикам модулей больше не нужно отдельно заботиться о этом.
В настоящее время ведется большая работа по приведению Native Client к виду, готовому для конечных разработчиков. В ближайшие месяцы планируется добавление новых API-интерфейсов для поддержки 3D-графики, локальных файловых хранилищ, web-сокетов, сетевых P2P-механизмов и динамического связывания (Dynamic Shared Objects). После реализации данных планов можно будет начать процесс окончательной стабилизации ABI-интерфейса. До формирования стабильного ABI Native Client в браузере Chrome будет отключен по умолчанию (для включения нужно использовать about:flags). Тем не менее, начиная с Google Chrome 10 разработчикам будет предоставлена возможность использования модулей Native Client для создания web-приложений.
SDK базируется на GCC и стандартных инструментах разработки GNU. С точки зрения разработчика окружение Native Client выглядит как небольшая операционная система со своим, основанным на GCC, инструментарием для кросс-компиляции, частичной поддержкой POSIX и базовым мультимедийным API, который можно использовать для работы с аудио и видео, обрабатываться события от мыши и клавиатуры. Также доступен ряд свойственных web-приложениям функций, таких как загрузка внешней страницы. В этом плане Native Client позволяет организовать выполнение тех же функций, что может обычное web-приложение на JavaScript. Инструкции при работе программы в Native Client не преобразуются в байткод виртуальной машины, а выполняются как есть, с максимально возможной производительностью. Безопасность в Native Client достигается через изоляцию системных вызовов и прерываний - разрешено выполнение ограниченного набора системных вызовов, остальное либо запрещено, либо эмулируется специальным runtime-кодом. Сетевые и дисковые функции, а также операции для работы с памятью, обрабатываются специальной подсистемой. Обращение за пределы дозволенных областей памяти блокируются через задействования системы обработки исключений CPU.
В настоящее время Native Client поддерживает платформы x86, x86_64 и ARM, дополнительно ведется работа по использованию для сборки программ системы LLVM, что позволит разработчикам создавать универсальные приложения, без пересборки работающие на всех поддерживаемых аппаратных архитектурах (программа будет поставляться в виде байткода, который будет транслироваться на лету в машинный код целевой платформы средствами LLVM). Предварительная оценка производительности показала, что собранные с использованием Native Client приложения выполняются в виртуальном окружении внутри браузера всего на 3% медленнее по сравнению с производительностью работы немодифицированных версий тех же приложений.
Источник: http://www.opennet.ru/opennews/art.shtml?num=29671
|
0 | Tweet | Нравится |
|