Доступен релиз обновленного инструментария Native Client
Компания Google
Среди отличительных возможностей представленного релиза отмечается поддержка нового API для разработки браузерных плагинов
Другим важным достижением новой версии 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 для создания
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% медленнее по сравнению с производительностью работы не модифицированных версий тех же приложений.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
- Страница для печати