NaCl, родной клиент

NaCl - устаревшая технология, теперь замененная WebAssembly. Она не поддерживается браузером Chrome от Google с 2018 года. Эта статья имеет чисто исторический интерес.

Собственный клиентский API-интерфейс Native Client хочет ускорить веб-приложения до такой степени, чтобы дать им скорость 3D-игр, позволяя вращать запрограммированное программное обеспечение на языке C или C++ или другом языке в браузере.
Это позволяет веб-приложениям выполнять компилируемый собственный код. Он защищен так же, как JavaScript. Это может позволить браузеру составить альтернативу интерфейсу Metro в Windows 8.

Родной клиент, сокращенно NaCl, был поддержан в браузере Chrome. Firefox поддерживала его и плагином. Google поощряла разработчиков игр делать версию своей игры для Chrome. Платформа Unity 3D автоматически создает версию для браузера.
Google сама портировала купленное в 2012 году офисное ПО QuickOffice на NaCl, предоставив таким образом альтернативу Office в браузере.

Чтобы сделать код более переносимым, разработчики связали NaCl с компилятором LLVM, производящим промежуточный код, компилируемый, в свою очередь, в машинный код. Эта версия, Portable NaCl, выглядит удобнее во всех отношениях.

Обратите внимание, что NaCl также является формулой хлорида натрия, то есть поваренной соли. Соль в ваших приложениях...

В июне 2015 года Google объявила об участии вместе с другими редакторами браузеров в работающем в браузере проекте bytecode WebAssembly. Этот новый бэкенд сочетает в себе преимущества Asm.js с преимуществами NaCl, с которым можно спрогнозировать, кого Google перестанет поддерживать NaCl в ближайшем будущем.

Создать платформу программирования для собственного клиента

Для разработки на родном клиенте тебе может понадобиться это программное обеспечение (конечному пользователю оно не нужно).

LLVM сблизился с «Родным клиентом» со 2 декабря 2011 года. Новая версия платформы разработки C++ упрощает создание приложений под Native Client. Его уже можно было использовать в этих рамках, но в его конструкции этого не было предусмотрено. Всё изменилось.

Этот способ работы может со временем меняться. Загляните в руководство Getty Started за последней версией.

  1. Загрузите собственный клиент для Windows, Linux или MacOS.
  2. Создать каталог, например nacl, и отменить архивирование содержимого.
  3. Читайте руководство Getty started. (Английский ).
  4. Попробуйте одну из демонстраций командной строки.
  5. Букмаркер страницы nacl/build/native_client.
    nacl - это ваш каталог установки.
  6. Закройте браузеры, поддерживающие собственный клиент .
  7. Установить плагин командной строки с scon.bat под Windows и scon под Unix.
    Для этого запустите scon.bat или scon в/ nacl/build/native_client/
  8. Запуск локального сервера типа Wamp.
  9. Проверить с помощью тестовой страницы:
    http ://localhost: 5103/scons-out/nacl-x86-32/staging/examples.html
    Кто в директории/ nacl/build/native_client/.

Подробные инструкции см. в учебнике C для собственного клиента.

С Chrome 14 у NaCl есть интерфейс между HTML 5 и нативным кодом под названием Pepper (Piment) или, точнее, Pepper Plugin API - новой системой плагинов, которая заменяет нынешнюю систему, изобретенную Netscape. Но эта система является фирменной и является одной из причин, почему NaCl никогда не носил Firefox, кроме того, что Mozilla имеет альтернативу в Asm.js.

На старых версиях Chrome нужно активировать NaCl. Введите about: flags в адресной строке Chrome и перейдите в раздел собственный клиент. Нажмите кнопку enable .

PNaCl, одна компиляция для всех систем

Portable Native Client, где PNaCl произносится как pinnacle и является дополнением к NaCl, которое должно устранить недостаток компилирования приложения для каждой системы. Это набор инструментов, который преобразует приложение NaCl в биткод LLVM. Последний, который содержится в файле .pexe, при выполнении может быть автоматически преобразован в двоичный код.
Можно сразу запустить LLVM виртуальной машиной после реализации в браузере. Это делает PNaCl альтернативой Asm.js.
Компилятор PNaCl встроен в 31-ю версию Chrome. Он преобразует код LLVM на сервере в машинный язык на клиентском компьютере. Поэтому возможно наличие кода C++ или любого другого языка, работающего в браузере, например JavaScript!

Запуск приложений в браузере, еще один простой способ...

Это может быть альтернативой NaCl, если ты хочешь запускать в браузере нативные приложения.
С помощью эмулятора, полностью написанного на JavaScript, можно запускать программы Linux в командной строке с помощью JSLinux.

Например, попробуйте:

tcc -run hello.c

Затем введите ls, чтобы увидеть файлы в каталоге.
Или для правки файла:

emacs hello.c

Было придумано еще одно решение - запустить в Canvas нативное приложение GTK. (Английский). Начиная с версии 3.2, GTK позволяет запускать нативные приложения в браузере, априори на Linux-системе, со специальным бэкендом под названием Broadway. Это не так мобильно.

См. также...