Jump to content

Google Native Client

(Перенаправлено из Google NaCl )

Google Native Client
Разработчик (ы) Google , другие
Первоначальный выпуск 16 сентября 2011 года ; 12 лет назад ( 2011-09-16 ) [ 1 ]
Стабильный релиз
SDK: Pepper 45 /10 июля 2015 года ; 9 лет назад ( 2015-07-10 )

Клиенты: так же, как Google Chrome

Репозиторий
Написано в C , C ++
Операционная система Windows , Linux , MacOS , Chromeos
Платформа x86 , рука , mips
Преемник Webassembly
Тип Песочница в веб -браузерах для нативного кода
Лицензия Новый BSD
Веб -сайт разработчик .хром /документы /родной клиент / Измените это в Wikidata

Google Native Client ( NaCl ) - это снятая технология песочницы для запуска подмножества Intel X86 , ARM или MIPS нативного кода, либо портативного исполняемого исполняемого файла в песочнице. Он позволяет безопасно запускать натуральный код из веб-браузера пользователя , независимо от операционной системы , позволяя веб-приложениям работать на почти коренных скоростях, что соответствует планам Google по ChromeOS . Он также может использоваться для защиты плагинов браузера , а также части других приложений или полных приложений [ 2 ] такие как Zerovm . [ 3 ]

Чтобы продемонстрировать готовность этой технологии, 9 декабря 2011 года, Google объявил о наличии нескольких новых версий игр хрома, известных своей богатой и процессорной только для графикой , включая бастион (больше не поддерживается в веб -магазине Chrome ). NaCl запускает 3D -графику с аппаратной ускорением (через OpenGL ES 2.0), локальное хранилище файлов в песочке, динамическую загрузку , полноэкранную режим и захват мыши . Были также планы сделать NACL доступным на портативных устройствах. [ 4 ] [ 5 ]

Портативный нативный клиент (PNACL) является независимой от архитектуры версией. Приложения PNACL собираются заранее . PNACL рекомендуется над NaCl для большинства вариантов использования. [ 6 ] Общая концепция NaCl (запуск нативного кода в веб-браузере) была реализована ранее в ActiveX , которая, пока используется, имеет полный доступ к системе (диск, память, пользовательский интерфейс, реестр и т. Д.). Нативный клиент избегает этой проблемы, используя песочницу.

Альтернативой Mozilla была ASM.JS , которая также позволяет приложениям, написанным в C или C ++ , собираться для работы в браузере, а также поддерживает компиляцию заранее, но является подмножеством JavaScript и, следовательно, обратно совместимы с браузерами, которые представляют собой подмножество JavaScript и, следовательно. Не поддерживайте его напрямую.

12 октября 2016 года комментарий о трекере выпуска Chromium показал, что команды Google Pepper и Native Clients были предприняты. [ 7 ] 30 мая 2017 года Google объявил о том, как PNACL в пользу Webassembly . [ 8 ] Хотя изначально Google планировал удалить PNACL в первом квартале 2018 года, [ 8 ] а позже во втором квартале 2019 года, [ 9 ] Он был удален в июне 2022 года (вместе с приложениями Chrome ). [ 10 ] [ 11 ]

Наземный клиент был проектом с открытым исходным кодом, разработанным Google . [ 12 ] Такие игры, как Quake , [ 13 ] Xaos , битва за Wesnoth , [ 14 ] Рок , [ 15 ] Лара Крофт и Страж Света , [ 16 ] Из пыли , [ 17 ] и MAME , а также система обработки звука CSOUND , была перенесена на собственного клиента. Native Client был доступен в веб -браузере Google Chrome с версии 14 и был включен по умолчанию с версии 31, когда был выпущен портативный собственный клиент (PNACL, произносится: pinnacle). [ 18 ] [ 19 ] [ 20 ]

Реализация ARM была выпущена в марте 2010 года. [ 21 ] x86-64 , IA-32 и MIPS также были поддержаны.

Чтобы запустить приложение, переносимое под PNACL, оно должно быть составлено в архитектуру-агрессию и стабильное подмножество LLVM представления промежуточного . [ 22 ] Исполнители называются исполняемыми файлами PNACL (PEXES). PNACL Toolchain производит файлы .pexe; NaCl Toolchain. Волшебное количество файлов . ​В Chrome они переводятся на исполняемые архитектуру, чтобы их можно было запустить.

NaCl использует обнаружение неисправности программного обеспечения и изоляцию для песочницы на x86-64 и ARM. [ 23 ] архитектуры x86 Реализация x86-32 нативного клиента известна своим новым методом песочницы, в котором используется редко используемый сегментационную установку . [ 24 ] Натуральный клиент устанавливает сегменты x86 для ограничения диапазона памяти, к которому может получить код из песочницы. Он использует проверку кода для предотвращения использования небезопасных инструкций, таких как те, которые выполняют системные вызовы. Чтобы код не прыгнул на небезопасную инструкцию, скрытую в середине безопасной инструкции, нативный клиент требует, чтобы все косвенные прыжки были прыжками до начала 32-байтооданных блоков, а инструкции не разрешались переоценить эти блоки. [ 24 ] Из -за этих ограничений код C и C ++ должен быть перекомпилирован, чтобы запустить под нативным клиентом, который предоставляет индивидуальные версии инструментального оборудования GNU , в частности, коллекция компиляторов GNU (GCC), GNU Binutils и LLVM .

Нативный клиент лицензирован по лицензии в стиле BSD .

Native Client использует Newlib в качестве библиотеки C порт библиотеки GNU C (GNU LIBC). , но также доступен [ 25 ]

NaCl обозначает хлорид натрия , общую столовую соль ; Как каламбур , название перца также использовалось. Pepper API-это кроссплатформенный API с открытым исходным кодом для создания нативных клиентских модулей. [ 26 ] Pepper Plugin API или PPAPI [ 27 ] [ 28 ] является кроссплатформенным API для нативных плагинов веб-браузеров, получивших клиент, сначала на основе NPAPI NetScape , а затем переписывается с нуля. Он использовался в Chromium и Google Chrome , чтобы включить версию PPAPI Adobe Flash [ 29 ] и встроенный просмотрщик PDF . [ 30 ]

12 августа 2009 года на странице по коду Google представила новый проект, Pepper и API -API -плагин Pepper (PPAPI), [ 31 ] «Набор модификаций NPAPI, чтобы сделать плагины более портативными и безопасными». [ 32 ] Это расширение предназначено специально для облегчения реализации выполнения плагинов из процесса . Кроме того, цели проекта-обеспечить основу для создания плагинов полностью кроссплатформенным. Рассматриваются темы: включают:

  • Единая семантика для NPAPI в браузерах.
  • Выполнение в отдельном процессе от рендеринга-браузера.
  • Стандартизация рендеринга с использованием процесса композиции браузера.
  • Определение стандартизированных событий и 2D Rasterizing функции.
  • Первоначальная попытка предоставить 3D -доступ к графическому доступу.
  • Реестр плагинов.

Pepper API также поддерживает геймпады (версию 19) и веб -питания (версия 18). [ 33 ]

По состоянию на 13 мая 2010 г. Браузер Google с открытым исходным кодом, Chromium , был единственным веб-браузером, который использовал новую модель плагина браузера. [ 34 ] По состоянию на 2020 год Pepper поддерживается браузами на основе двигателя Chrome, Chromium и Blink Mayout, такими как Opera и Microsoft Edge.

В августе 2020 года Google объявил, что поддержка PPAPI будет удалена из Google Chrome и Chromium в июне 2022 года. [ 35 ]

PPAPI в Firefox

[ редактировать ]

Разработчики Firefox заявили в 2014 году, что они не будут поддерживать перец, так как не было никакой полной спецификации API после его реализации в Chrome, которая была разработана только для использования только с двигателем макета Blink , и имел личный API, специфичный для плагина Flash Play не были задокументированы. [ 36 ] В октябре 2016 года Mozilla объявила, что переосмыслена и изучала, следует ли включать Pepper API и PDFIUM в будущие выпуски Firefox, [ 37 ] Однако таких шагов не было. В июле 2017 года Adobe установила Flash и объявила о своем окончании жизни в конце 2020 года. [ 38 ] К январе 2021 года Adobe Flash Player, Google Chrome, Firefox, Safari и Windows [ 39 ] Полученные обновления отключили или полностью удаляют вспышку.

Приложения

[ редактировать ]

Один веб -сайт [ 40 ] использовал NaCl на сервере, чтобы позволить пользователям экспериментировать с языком программирования GO из своих браузеров. [ 41 ]

Некоторые группы разработчиков браузеров поддерживали технологию нативных клиентов, а другие - нет.

Сторонники

[ редактировать ]

Чад Остин (из IMVU ) похвалил, как нативный клиент может предоставить высокопроизводительные приложения в Интернет (примерно на 5% штрафа по сравнению с нативным кодом) безопасным образом, а также ускоряет эволюцию приложений на стороне клиента, предоставив выбор выбора используемого языка программирования (помимо JavaScript ). [ 42 ]

Id Software из Джон Д. Кармак похвалил нативного клиента на Quakecon 2012, сказав: «Если вам нужно что -то сделать в браузере, нативный клиент гораздо интереснее, как нечто, что начиналось как действительно чертовски умный взлом x86 на пути что они могли бы садиться в песочницу в режиме пользователя. На местный код. [ 43 ]

Хулители

[ редактировать ]

Другие ИТ -специалисты более критиковали эту технологию песочницы, поскольку у нее были существенные или существенные проблемы взаимодействия.

Mozilla Вице -президент по продуктам, Джей Салливан , сказал, что Mozilla не планирует запускать нативный код в браузере, так как «эти нативные приложения - это лишь маленькие черные ящики на веб -странице. [...] мы действительно верим в HTML, И здесь мы хотим сосредоточиться ». [ 44 ]

из Mozilla Кристофер-Близзард критиковала NaCl, утверждая, что нативный код не может развиваться так же, как может быть основанная на исходном коде. Он также сравнил NaCl с технологией Microsoft ActiveX , страдающего от DLL Hell . [ 2 ]

Håkon Wium Lie , технический директор Opera, полагал, что «NaCl, кажется,« стремится к плохим старым временам, перед сетью », и что« нативный клиент - это создание новой платформы - или переносить старую платформу в Интернет [. ..] Это принесет проблемы сложности и безопасности, и это отнимает фокус с веб -платформы ». [ 2 ]

Второе поколение

[ редактировать ]

Второе поколение песочницы , разработанное в Google, - GVISOR . [ 45 ] [ 46 ] Он предназначен для замены NaCl в Google Cloud , чтобы быть более точным в Google App Engine . Google также продвигает Webassembly . [ 47 ]

Смотрите также

[ редактировать ]
  1. ^ «Нативный клиент Google идет в жизнь в Chrome» . Реестр . 16 сентября 2011 года . Получено 12 марта 2016 года .
  2. ^ Jump up to: а беременный в Метц, Кейд (12 сентября 2011 г.). "Google Native Client: сеть будущего - или прошлое?" Полем Реестр . Получено 17 сентября 2011 года .
  3. ^ «Архитектура Zerovm» . Архивировано из оригинала 8 февраля 2014 года . Получено 16 марта 2014 года .
  4. ^ Розенблатт, Сет (9 декабря 2011 г.). «Нативный клиент превращает Chrome в высококлассную игровую платформу» . CNET. Архивировано из оригинала 28 августа 2012 года . Получено 9 декабря 2011 года .
  5. ^ «Блог Google Code: игры, приложения и время бега приходят к нативному клиенту» . Googlecode.blogspot.com. 9 декабря 2011 года . Получено 25 апреля 2012 года .
  6. ^ "NaCl и Pnacl" .
  7. ^ "Bugs.chromium.org" . 12 октября 2016 года . Получено 12 октября 2016 года .
  8. ^ Jump up to: а беременный "Прощай, pnacl, Привет, webassembly!" Полем Блог хрома . Получено 31 мая 2017 года .
  9. ^ «Руководство по миграции Webassembly - Google Chrome» . Developer.chrome.com . Получено 20 декабря 2018 года .
  10. ^ «Изменения в временной шкале поддержки приложения Chrome» . Блог хрома . 10 августа 2020 года.
  11. ^ Ли, Абнер (10 августа 2020 г.). «Google задерживает снижение приложений Chrome на всех платформах» . 9to5google . Получено 2 октября 2021 года .
  12. ^ «Google Native Client в Google Code» . Получено 25 апреля 2012 года .
  13. ^ Дэвемичэл (3 октября 2020 г.). «Github - Davemichael/NaCl -Quake: Quake for Kind Client (на основе порта Quake SDL)» . GitHub .
  14. ^ «Битва за Уэснот» .
  15. ^ "Индекс /" .
  16. ^ "Chrome Web Store - Лара Крофт и Страж Света" . Архивировано из оригинала 8 декабря 2013 года . Получено 26 ноября 2013 года .
  17. ^ «Из пыли» . Архивировано с оригинала 12 марта 2016 года . Получено 24 февраля 2016 года .
  18. ^ Чен, Брэд (8 декабря 2008 г.). «Нативный клиент: технология запуска нативного кода в Интернете» . Google-Code-updates.blogspot.com . Получено 25 апреля 2012 года .
  19. ^ «Блог Chromium: Native Client привносит нативный код в песочнице в приложения Chrome Web Store» . Blog.chromium.org. 18 августа 2011 года . Получено 25 апреля 2012 года .
  20. ^ «Блог Google Code: портативный нативный клиент:« вершина »скорости, безопасности и переносимости» . blog.chromium.org. 12 ноября 2013 года . Получено 16 марта 2014 года .
  21. ^ «Нативный клиент Google идет рукой и за его пределами» . H. 18 марта 2010 года . Получено 19 мая 2010 года .
  22. ^ «PNACL: портативные исполняемые файлы нативного клиента» (PDF) . Архивировано из оригинала (PDF) 2 мая 2012 года . Получено 25 апреля 2012 года .
  23. ^ Сер, Дэвид; Мут, Роберт; Biffle, Cliff L.; Хименко, Виктор; Паско, Эгор; Да, Беннет; Шимпф, Карл; Чен, Брэд (2010). «Адаптирование изоляции ошибки программного обеспечения к современным архитектурам процессора» . 19 -й Симпозиум безопасности Усеникс . Получено 31 июля 2011 года .
  24. ^ Jump up to: а беременный Да, Беннет; Сер, Дэвид; Дардик, Грег; Чен, Брэд; Мут, Роберт; Орманди, Тавис; Окасака, Шики; Нарула, Неха; Fullagar, Nicholas (2009). «Нативный клиент: песочница для портативного, ненадежного нативного кода x86» . Симпозиум IEEE по безопасности и конфиденциальности (Oakland'09) . Получено 31 июля 2011 года .
  25. ^ «Наземный клиент: строительство» . Developer.chrome.com . Получено 16 марта 2014 года .
  26. ^ «Технический обзор» . [ Постоянная мертвая ссылка ]
  27. ^ "Pepper Plugin API Project at" . Архивировано с оригинала 9 сентября 2016 года . Получено 25 апреля 2012 года .
  28. ^ «Источник Chrome: индекс/trunk/src/ppapi» . Src.chromium.org . Получено 25 апреля 2012 года .
  29. ^ «Дорога к более безопасной, более стабильной и яркой вспышке» . 8 августа 2012 года . Получено 10 августа 2013 года .
  30. ^ Метц, Кейд (18 июня 2010 г.). «Google обнимает Adobe сильнее с Crome-PDF слиянием» . Реестр . Получено 25 апреля 2012 года .
  31. ^ «Начало работы: фон и основы - проекты хрома» . Chromium.org . Получено 25 апреля 2012 года .
  32. ^ "Pepper.wiki" . 24 февраля 2012 года . Получено 25 апреля 2012 года .
  33. ^ «Выпуск заметок» .
  34. ^ Метц, Кейд (13 мая 2010 г.). «Google нагревает натуральный код для Chrome OS» . Thesgister.co.uk . Получено 25 апреля 2012 года .
  35. ^ Энтони Лафордж (10 августа 2020 г.). «Изменения в временной шкале поддержки приложения Chrome» . Блог хрома .
  36. ^ Збарский, Борис. «Bug 729481 - Поддержите API плагина" Pepper " . Получено 15 апреля 2016 года .
  37. ^ Метц, Кейд (3 октября 2016 г.). "Проект раствор" . Мозилла . Получено 30 октября 2016 года .
  38. ^ «Флэш и будущее интерактивного контента» . Adobe Inc. 25 июля 2017 года. Архивировано с оригинала 2 декабря 2017 года . Получено 31 июля 2023 года .
  39. ^ Солтер, Джим (4 мая 2021 г.). «Прощай, снова, Flash - Microsoft делает удаление с Windows 10 обязательным» . Ars Technica . Получено 1 августа 2023 года .
  40. ^ "Go Playground" .
  41. ^ «Внутри игровой площадки Go - блог Go» . blog.golang.org . Получено 27 августа 2016 года .
  42. ^ Остин, Чад (8 января 2011 г.). «Чад Остин: В защиту языковой демократии (или: почему браузер нуждается в виртуальной машине)» . Chadaustin.me . Получено 25 апреля 2012 года .
  43. ^ Кармак, Джон (3 августа 2012 г.). "Quakecon 2012" . youtube.com . Получено 26 августа 2012 года .
  44. ^ Метц, Кейд (24 июня 2010 г.). «Mozilla: наш браузер не будет запускать натуральный код» . Реестр . Получено 25 апреля 2012 года .
  45. ^ «Бета -версия PHP 7.2 в стандартной среде Google App Engine | Hacker News» .
  46. ^ "Google/Gvisor" . GitHub . 15 октября 2021 года.
  47. ^ Аврам, Абель (31 мая 2017 г.). «Google должен удалить поддержку PNACL» . Infoq . Получено 1 августа 2020 года . В качестве замены Google теперь продвигает веб -ассемблерию.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 7a7ba97c29e0481b71c816f80bb19c9b__1718269860
URL1:https://arc.ask3.ru/arc/aa/7a/9b/7a7ba97c29e0481b71c816f80bb19c9b.html
Заголовок, (Title) документа по адресу, URL1:
Google Native Client - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)