среда, 10 декабря 2008 г.

Google выпустила средство для выполнения бинарных программ в браузере

Разработчики Google представили открытый проект Native Client, позволяющий выполнять в окне web-браузера обычные бинарные приложения. Программа состоит из универсального плагина к браузеру и модифицированного компилятора на основе GCC. Плагин поддерживает браузеры Firefox, Safari, Opera и Google Chrome на платформах Linux, Mac OS X и Windows. В скором времени будет доступна версия для архитектур ARM и PPC. Исходные тексты разработки распространяются в рамках лицензии BSD.
Скомпилированная для выполнения в плагине программа работает в специальном изолированном окружении. Безопасность системы достигается через изоляцию системных вызовов и прерываний - разрешено выполнение 46 системных вызовов, остальное либо запрещено, либо эмулируется специальным runtime кодом. Сетевые и дисковые функции, а также операции для работы с памятью, обрабатываются специальной подсистемой. Обращение за пределы доздоленных областей памяти блокируются через задействования системы обработки исключений CPU.

В отличии от аналогичных проектов, например, компилятора Adobe Alchemy, инструкции не преобразуются в байткод виртуальной машины, а выполняются как есть, с максимально возможной производительностью (потеря производительности не более 5%).

В качестве демонстрации возможностей Native Client была представлена сборка игры Quake, работающая в окне браузера.
PS Проект, конечно, очень интересный, но 1-е что меня немного оттолкнуло это резмер= приблизительно 80 Мегабайт. Хотя для проекта "такого" уровня это даже очень мало. К вопросу о безопасности: хоть и работает в изолированном пространстве, то это еще не гарантирует, что вредоносный код не будет исполнен. Опять же это прямой конкурент flash-технологии в будущем. И вот интересно, запущен quake 1, а не 3-й, например. ))) Ну это уже вопрос производительности. Хотя, придираться можно бесконечно, а сделать что то стоящее гараздо труднее...


Комментариев нет: