Компания Google сообщила об интеграции в Native Client SDK поддержки платформы ARM
23 января 2013 года
Компания Google сообщила об успехах в создании многоплатформенного варианта технологии Native Client (Архивная копия от 10 декабря 2013 на Wayback Machine) (NaCl), которая позволяет выполнять приложения, написанные на C и С++, в специальном изолированном окружении web-браузера. В тестовый выпуск Native Client SDK 25 (Архивная копия от 15 декабря 2013 на Wayback Machine) добавлен (Архивная копия от 7 декабря 2013 на Wayback Machine) набор инструментов и компиляторов, необходимых для сборки NaCl-приложений для платформ ARM, в дополнение к ранее поддерживаемой архитектуре x86. Поддержка ARM позволит организовать распространение NaCl-приложений не только для традиционных ПК, но и для мобильных устройств, базирующихся на платформах Android и Chrome OS.
Для адаптации уже собираемых с использованием Native Client и newlib приложений для платформы ARM достаточно прикрепить к приложению ARM .nexe и внести изменения в сборочный манифест (Архивная копия от 13 ноября 2013 на Wayback Machine). Что касается клиентского ПО, то начиная с версии Chrome 25 в браузер будет добавлена обновлённая реализация системы плагинов Pepper, поддерживающая выполнение NaCl-программ на платформе ARM. Изначально Native Client был интегрирован в Chrome начиная с выпуска 10 (активирован по умолчанию в Chrome 14) и дополнительно поставлялся в виде браузерного плагина для Firefox, Safari и Opera.
Кроме того, в течение 2013 года планируется выпустить Native Client нового поколения, который будет поставляться под именем Portable Native Client и будет обеспечивать полную независимость от архитектуры, на которой производится запуск NaCl-приложений. Благодаря поставке NaCl-приложений не в машинном коде, а в биткоде LLVM, появится возможность выполнять NaCl-приложения на разных платформах, без подготовки отдельных сборок для каждой из платформ (биткод LLVM будет транслироваться в машинный код текущей платформы на стороне браузера).
Native Client продвигается как платформа для создания универсальных web-приложений, написанных на языке C/C++ и использующих специальный API для выполнения свойственных web-приложениям действий. SDK базируется на GCC и стандартных инструментах разработки GNU. Собранные с использованием Native Client приложения выполняются в виртуальном окружении внутри браузера всего на 3% медленнее по сравнению с производительностью работы немодифицированных версий тех же программ. С точки зрения разработчика окружение Native Client выглядит как небольшая операционная система со своим, основанным на GCC, инструментарием для кросс-компиляции, частичной поддержкой POSIX и базовым мультимедийным API, который можно использовать для работы с аудио и видео, обрабатываться события от мыши и клавиатуры.
Также доступен ряд свойственных web-приложениям функций, таких как загрузка внешней страницы. В этом плане Native Client позволяет организовать выполнение тех же функций, что может обычное web-приложение на JavaScript. Инструкции при работе программы в Native Client не преобразуются в байткод виртуальной машины, а выполняются как есть, с максимально возможной производительностью. Безопасность в Native Client достигается через изоляцию системных вызовов и прерываний - разрешено выполнение ограниченного набора системных вызовов, остальное либо запрещено, либо эмулируется специальным runtime-кодом. Сетевые и дисковые функции, а также операции для работы с памятью, обрабатываются специальной подсистемой. Обращение за пределы дозволенных областей памяти блокируются через задействования системы обработки исключений CPU.
Источники
правитьЛюбой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.