Доступен релиз обновленного инструментария Native Client

21 февраля 2011 года

Компания Google сообщила о выпуске первого релиза обновленной редакции инструментария Native Client SDK(недоступная ссылка), позволяющего организовать выполнение обычных бинарных программ в окне web-браузера, ограничив их при помощи специального изолированного окружения. По заявлению разработчиков, новая версия является важным событием в пути по обеспечению в Native Client такого же уровня переносимости и безопасности, как и в JavaScript. Изначально Native Client был создан для адаптации существующих программ для работы в браузере, но теперь продвигается как платформа для создания универсальных web-приложений, написанных на языке C/C++ и использующих специальный API для выполнения свойственных web-приложениям действий.

Среди отличительных возможностей представленного релиза отмечается поддержка нового 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-приложений (Архивная копия от 27 ноября 2011 на Wayback Machine).

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% медленнее по сравнению с производительностью работы немодифицированных версий тех же приложений.

Источники

править


 
 
Creative Commons
Эта статья содержит материалы из статьи «Доступен релиз обновленного инструментария Native Client», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.