Собственный клиент в магазине Chrome Web App


Приложения на основе NaCL теперь разрешены в бета-канале Chrome Web App Store и будут перемещены в полную версию Chrome Web App Store после выпуска Chrome 14.

Романтика со всем, что связано с C ++, похоже, идет полным ходом, по крайней мере, в Google. Последние новости заключаются в том, что нативные приложения, то есть приложения на основе NaCL, теперь разрешены в бета-канале Chrome Web App Store. Когда Chrome 14 перейдет на стабильный канал, нативные веб-приложения будут перемещены в полноценный магазин Chrome Web App, предоставляя доступ примерно 160 миллионам пользователей Chrome. Это означает, что собственный код Chrome или приложения NaCL не только превратились в Chrome в качестве полностью поддерживаемой подсистемы, но и Google с радостью продвигает их использование, позволяя нам создавать приложения и продавать их.

Если вы упустили идею, нативные приложения написаны на C / C ++ и компилируются до машинного кода, то есть нет виртуальных машин, которые могли бы помешать вашим соображениям эффективности. Собственный клиент использует библиотеку Pepper для взаимодействия с HTML и запускается в двухуровневой песочнице для обеспечения безопасности. Собственная клиентская песочница находится внутри обычной песочницы Chrome и закрывает доступ к базовому API ОС. Это означает, что Пеппер снова приходится изобретать велосипед в интересах безопасности.

В настоящее время Pepper поддерживает 2D-графику, звук, выборку URL-адресов и доступ к локальному файловому хранилищу в песочнице, а также соединение с JavaScript, запущенным в браузере. Будущие выпуски также будут поддерживать 3D-графику с аппаратным ускорением, веб-сокеты и все остальное, что они могут втиснуть.

Если вы подумаете об этом на минуту, вы увидите, что происходит реализация другой операционной системы внутри браузера, которая, конечно же, работает внутри собственной операционной системы. Если вы думаете, что это немного безумие, следующим этапом в развитии NaCl будет переход к переносимости с PNaCl, произносится как Pinnacle.

Приложения NaCl могут работать в разных операционных системах, если они работают на одной и той же машинной архитектуре. Например, приложение NaCl может работать под Windows или Linux, скажем, на архитектуре 86x — причина, конечно, в том, что «операционная система» в том, что касается приложения, — это браузер Chrome. Чего они не могут сделать, так это запустить в браузере Chrome, работающем, скажем, на архитектуре ARM, потому что собственный код отличается. Большая идея — найти способ сделать нативные приложения независимыми не только от ОС, но и от машинной архитектуры.

Это заключительный этап итерации. Теперь C / C ++ и другие языки будут скомпилированы в «битовый код» для виртуальной машины низкого уровня, LLVM. Если вы думаете, что это последняя капля, в конце концов, весь смысл NaCl заключается в том, чтобы избежать необходимости использовать виртуальную машину, и здесь мы, по-видимому, представляем виртуальную машину, тогда хорошая новость заключается в том, что код компилируется из битового кода в собственный код рассматриваемой машины.

Ход вроде логичный, но все равно выглядит как набор матрешек. NaCl был изобретен, чтобы дать программистам браузеров доступ к машинному коду и скорости, которую он предлагает, но собственный код не переносим, и с ARM и альтернативными архитектурами на сцене это нехорошо. Итак, что нам делать — изобрести промежуточный язык и способ его JIT-компиляции. Конечно, это в точности отражает шаги, которые привели к появлению таких языков, как Java и байт-код несколько лет назад.

Существует также проблема, что NaCl и PNaCl настроены для Chrome и, следовательно, еще один кирпич в войнах браузеров.

По крайней мере, становится интересно …


Добавить комментарий