Представлен Portable Native Client для запуска платформонезависимых C/C++ программ в браузере

Компания Google анонсировала технологию Portable Native Client (PNaCl), в рамках которой разработан многоплатформенный вариант системы Native Client, позволяющий выполнять приложения, написанные на C и С++, в специальном изолированном окружении web-браузера, независимо от текущей аппаратной архитектуры. Код PNaCl уже интегрирован в экспериментальную ветку Chrome 29.

Вместо генерации машинного кода в PNaCl приложение компилируется в универсальный биткод LLVM и поставляется в непривязанном к конкретной платформе исполняемом формате ".pexe". В процессе запуска приложения промежуточный биткод LLVM транслируется в машинный код текущей платформы на стороне локальной системы пользователя. Иными словами собранное с использованием PNaCl приложение может выполняться на различных аппаратных архитектурах (в настоящее время поддерживаются 32- и 64-разрядные системы x86 и устройства на базе архитектуры ARM). Другим важны отличием от ранее доступного Native Client является необходимость использования урезанной многоплатформенной библиотеки newlib. Библиотека glibc, обращение к Pepper API для выполнения мультимедийных операций и динамическое связывание с другими библиотеками пока не поддерживаются.

Для сборки универсальных исполняемых файлов pexe подготовлен специальный инструментарий pnacl, поставляемый в составе SDK-пакета pepper_canary. Для включения поддержки PNaCl в Сhrome 29, браузер должен быть запущен с флагом "--enable-pnacl", в этом случае транслятор биткода LLVM запускается в форме отдельного фонового процесса. Контролировать работу транслятора можно при помощи служебной ссылки "chrome://nacl".

Вынос стадии генерации машинного кода на сторону клиента позволяет разработчику не задумываться об оптимизациях и поддержке новых архитектур - новые методы оптимизации и поддержка новых аппратаных платформ производится без пересборки пользовательского приложения, через обновление транслятора. После выхода финального релиза PNaCl и окончательной стабилизации промежуточного формата исполняемых файлов, пользователи получат возможность интегрировать переносимые PNaCl-модули в любые web-страницы, без необходимости размещения приложения в Chrome Web Store.

Проект Mozilla, в свою очередь, продвигает собственную технологию Asm.js для запуска в браузере приложений, написанных на языках Си и Си++. В отличие от Native Client, приложения транслируются в специальное подмножество языка JavaScript, что позволяет запускать их в любых браузерах. При наличии поддержки в браузере специального JavaScript-диалекта со строгой типизацией - Asm.js, производительность выполнения таких программ существенно повышается и может отставать от нативных приложений всего в два раза. В данный момент поддержка Asm.js уже интегрирована в бета-версию Firefox 22.

Источник:
http://www.opennet.ru/opennews/art.shtml?num=36962

<= Назад
Комментарии
]]> ipv6 ready Kiev LUGLinux4MeНостальгияЛичный сайт skeletora ]]>