Native Client: одной ногой в офлайне

    В понедельник в Google Code Blog вышел анонс нового эксперимента веб-гиганта. Технология Native Client призвана ускорить веб-приложения благодаря прямому доступу к ресурсам центрального процессора на локальном компьютере пользователя.

    В пакет Native Client будут входить runtime-плагин для браузера и набор утилит для компиляции, основанных на GNU Compilation Tools. Они позволят веб-приложению, работающему в браузере, в то же время использовать модули, самостоятельно выполняющиеся на ПК. Плюсы от такой модели приложения очевидны: пропадает необходимость перекачивать по каналу «клиент-сервер» большие объемы данных в сетевых приложениях вроде видео- и графических редакторов.

    Чтобы обеспечить в приложениях, работающих с Native Client, должный уровень безопасности, Google вводит жесткие ограничения для разработчиков: а) каждое приложение должно быть написано в соответствии с определенными структурными критериями для легкого дизассемблирования; и б) в офлайновых модулях не должны содержаться определенные цепочки инструкций. Такой подход к обеспечению безопасности, однако, сразу вызывает мнение, что Google просто хочет оградить разработчиков, как всегда не пуская их глубоко в свою платформу.

    Свои разработки под Native Client можно начинать уже сейчас. Исследовательская версия пакета уже доступна для скачивания и обещает работать на всех популярных ОС под x86 и во всех популярных браузерах, кроме Internet Explorer и Safari на MacOS. Версии для других аппаратных и программных платформ должны появиться в скором будущем.

    Средняя зарплата в IT

    120 000 ₽/мес.
    Средняя зарплата по всем IT-специализациям на основании 9 172 анкет, за 1-ое пол. 2021 года Узнать свою зарплату
    Реклама
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее

    Комментарии 46

      0
      Как и следовало ожидать, на пути к светлому будущему с веб-ОС от Google появились остановки.
        0
        Думаю, не стоит также сбрасывать со счетов такую инновацию, как

          +1
          Думаю, не стоит также сбрасывать со счетов такую инновацию, как Adobe Alchemy (здесь о ней писали). Хорошо повышает производительность флэш-приложений, можно реюзать C / C++ библиотеки.
            0
            Лакмусовая бумажка подобных игрушек: под ней Quake бегает? Для NaCl ответ «да» как видно из первого же screenshot'а.

            P.S. Почему именно Quake? Потому что это довольно большая куча C кода, которая, вместе с тем, не требует почти никаких внешних библиотек. Поэтому запуск Quake позволяет утвердительно ответить на вопрос «это у нас полноценный C/C++ или так, пародия на...». Quake запустили даже на Managed C++ не так давно! Так как с этим у Adobe Alchemy?
            1. Можно ли Quake там запустить?
            2. Можно ли в него под Alchemy играть?
              +1
                –1
                Это уже неплохо, но Doom на 386м ходил. И там говорится IF THE GAME IS RUNNING SLOW, try clicking POP-UP to open the game in its own window — это не очень обнадёживает, я боюсь что ответ на второй вопрос для Quake окажется отрицательным…
                +1
                Да, на Хабре уже писали о Quake на Flash 10, вот также пост на английском. Описываемые по ссылкам события происходили в октябре 2007 года, тогда Adobe показала на MAX в Чикаго FlaCC, под которым они это и реализовали. В этом году открыли его публике под названием Alchemy.
                  0
                  Ну что же — хорошо если так. Хотя вопрос об играбельности остаётся открыт (может там 5fps было?), но Quake хотя бы запускается — уже хорошо.
          • НЛО прилетело и опубликовало эту надпись здесь
              0
              это вроде кроссплатформенного activeX
                +3
                Не совсем так. ActiveX сразу получает доступ ко всему компьютеру — у тебя есть только выбор: согласиться с предложением или отвергнуть его. А это немного похоже на Java: код валидируется перед загрузкой и доступ к «железу» (кроме, понятно, процессора) жёстко контролируется…
                  0
                  согласный, в любом случае это не «flash от google»
                  кстати тут тоже сравнивают с activeX
                  ajaxian.com/archives/native-client-open-activex
                    0
                    А вполне так activeX, вот только одно отличие — безопасность, и в этом главная фишка.

                    Я вообще сначала не поверил, что бывает безопасный нативный код, а потом почитал их публикацию, как всё грамотно сделано… Кстати, цитата оттуда: «Perhaps the most prevalent example of using native code in interactive web pages is Microsoft’s ActiveX.» :)
                    Так вот, как я понял они идут по пути «всё что не разрешено, запрещено». Разрешён только ограниченный набор процессорных инструкций, например, hardware exceptions (c++ exceptions при этом работают), ret'ы, привилегированные инструкции ring0 и т.д. Плюс дополнительные ограничения на код, доступ к памяти,… В общем, всё очень интересно на мой взгляд.
                      0
                      ну будем надеятся, что существенных дыр нет и не будет
                      потому что нам с вами немного интересно, а заинтересованные «неформальные» лица скорее всего уже вовсю испытывают технологию на прочность
                        0
                        Ну дыры могут быть и в виртуальной машине flash. Помнится, когда-то давно видел флешку с кнопкой reset, на неё нажимаешь и комп перезагружается :)
                        А испытание на прочность — это же хорошо. Кто-нибудь найдёт уязвимость, обязательно ведь разболтает, по крайней мере поначалу.
                          0
                          ну будем надеятся, что существенных дыр нет и не будет
                          Почти наверняка есть :-)
                          потому что нам с вами немного интересно, а заинтересованные «неформальные» лица скорее всего уже вовсю испытывают технологию на прочность
                          На это и рассчёт. Идея в том, что публикация исходных кодов вызовет интересе не только «неформальных» лиц, но и серъёзных специалистов по безопасности — и они помогут закрыть возможные направления атак.
                  –2
                  Скорее типа Gears улучшенного.
                    –2
                    действительно, непонятно, какой смысл разрабатывать два отдельных плагина
                    0
                    В принципе, есть сходства с Flash: и то, и другое подразумевает безопасный запуск приложений в браузере.
                    Но Flash/Java для этого используют виртуальную машину, которая обеспечивает безопасность тем, что всё выполняется внутри неё и не может вылезти наружу (до тех пор, пока нету дыр).
                    А NaCl позволяет запускать нативный код на реальном железе без всяких виртуальных машин, безопасность же достигается за счёт существенного ограничения возможностей этого кода.

                    А причём тут Gears я не понял.
                  • НЛО прилетело и опубликовало эту надпись здесь
                      0
                      Вот блин, не заметил! Добавлю в топик.
                        0
                        добавьте тогда что и safari под macos не поддерживается:

                        Support for the following browsers is not available at this time:
                        * Safari on MacOS
                        * Internet Explorer
                          0
                          Добавил. Спросил у разработчиков почему они не поддерживаются. Жду.
                            0
                            а почему IE в статье италиком остался выделен? :)
                              0
                              А для огонька ;)
                              0
                              сдается мне в ie не стали делать потому что пришлось бы делать native client на activex, что похоже на извращение, поскольку activeX и так работает на нативном коде
                                0
                                Всё проще: это экспериментальная версия и они хотели обкатать технологию в первую очередь на разных OS. А это значит — Firefox. Ну и всё что его plugin'ы поддерживает. MS IE отказался от их поддержки в MS IE 5.5 SP2.

                                Думаю что релиз будет поддерживать MS IE — куда уж без него.
                          0
                          ух ты, в сафари под мак ос не работает!
                          0
                          и во всех популярных браузерах… кроме Internet Explorer.

                          Сначала ухмыльнулся, а потом стало грустно :(
                          • НЛО прилетело и опубликовало эту надпись здесь
                              +1
                              Вот здесь-то отдельный процесс на каждый таб в Хроме и пригодится :-)
                                0
                                Там питон надо ставить :(
                                  0
                                  «Technical detail: Native Client doesn't itself require Python. We use Python for scripts such as those that build and run examples and that install the Native Client plug-in. We're working on simpler installers that don't require Python.»

                                  Скоро избавятся от Python и не нужно будет.
                                    0
                                    Ну быстрей бы уж. Я не собираюсь его ставить ради того, чтобы инсталлировать NativeClient…
                                      –1
                                      И за что минус?
                                  0
                                  Припопытке запустить страницу теста в фоксе ругается на Native client unable to load, хотя в плагинх он висит.
                                    0
                                    ага, судя по «The 8 December release of Native Client will not build on Ubuntu Intrepid.», дело в версии пойду на Харди попробую.
                                    +1
                                    C++? Maaaan, r u joking?
                                    • НЛО прилетело и опубликовало эту надпись здесь
                                      • НЛО прилетело и опубликовало эту надпись здесь
                                        0
                                        Блин! Гугл прочел мой коммент с аналогичной идеей пару дневной давности, оперативно! Тока у меня была идея передавать байт код, а на целевой платформе преобразовать в ассемблер, ессно с ограничениями на использование указателей и прочей гадости.
                                          0
                                          Тока у меня была идея передавать байт код, а на целевой платформе преобразовать в ассемблер, ессно с ограничениями на использование указателей и прочей гадости.
                                          Вы немного опоздали: IBM использует этот подход последние 20 лет… Хотя в Web его пока не перенёс… ну это дело времени, я думаю…
                                            0
                                            Спасибо за ссылку, интересно было прочесть
                                          +2
                                          Brad Chen ответил мне по поводу отсутствия поддержки Internet Explorer и Safari на MacOS:

                                          Браузеры, которые мы поддерживаем, более-менее нормально работают с NPAPI (Netscape Plugin API), поэтому для них мы сделали в первую очередь. Для IE нужен ActiveX, а Safari для MacOS поддерживает NPAPI как-то странно. Хотя и над ними мы работаем.
                                            0
                                            Наплодили рантаймов. Пора бы уже стандартизировать какую-нибудь платформу для RIA.
                                              0
                                              Вот и форум запустили о Google Native Client nativeclient.ru/forum/

                                              Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                              Самое читаемое