Мортен Сорвиг (Morten Sorvig) из компании Nokia сообщил (http://labs.trolltech.com/blogs/2009/12/17/take-it-with-a-gr.../) об успешном опыте портирования баблиотеки Qt для работы под управлением фреймворка Google Native Client (http://code.google.com/p/nativeclient/) и запуске первых тестовых qt-виджетов в окне web-браузера. Например, продемонстрирован запукск небольшой игры, написанной с задействованием классов QWindowSurface и QGraphicsSystem. При создании порта использован представленный в октябре инструментарий Lighthouse (http://labs.trolltech.com/blogs/2009/10/02/introducing-new-p.../), созданный с целью значительного упрощения переноса Qt на новые платформы.В текущем состоянии Qt порт для Native Client находится на стадии, позволяющей скомпилировать модули QtCore (http://doc.trolltech.com/4.6/qtcore.html) и QtGui (http://doc.trolltech.com/4.6/qtgui.html), работают таймеры, ввод данных через клавиатуру и мышь. Так как Native Client ...
URL: http://labs.trolltech.com/blogs/2009/12/17/take-it-with-a-gr.../
Новость: http://www.opennet.me/opennews/art.shtml?num=24719
ActiveX от Nokia. Интересно, а нативные пакеты для каких архитектур можно будет создавать? Опять только x86? Тогда нужно пилить дальше. Хотя, если оно будет таким же, как ActiveX, то ну его нафиг.
> ActiveX от Nokia.Я не вижу ничего принципиально порочного в идее ActiveX.
Есть порочность в реализации ActiveX -- x86 only.
Есть порочность в реализации системы безопасности Windows -- такая, что Web-браузер работает от суперюзера по умолчанию.
Есть порочность в реакции Microsoft на две вышеуказанные "несуразности".Но вот в идее запуска внутри браузера нативного кода никакой порочности я не вижу. Тем более, что Qt -- кроссплатформенная библиотека, а система безопасности UNIX значительно прямее сделана, чем аналогичная в Windows (хотя система безопасности Windows, по идее, должна быть прямее аналогичной в UNIX, но, как всегда, практика разошлась с теорией).
> Я не вижу ничего принципиально порочного в идее ActiveX.
> ...
> Но вот в идее запуска внутри браузера нативного кода никакой порочности я не вижу. Тем более, что Qt -- кроссплатформенная библиотека, а система безопасности UNIX значительно прямее сделана, чем аналогичная в WindowsЕсли тянуть дурные идеи, то получится хуже чем Win: позвольте выполнять какой угодно код 'по клику', и "значительно прямее система безопасности UNIX" уже не справится.
Гадость всякую в рот не надо тащить, а не таблетки жрать.
заболтались вы. Native client это вам не ActiveX(дырявый by design).> позвольте выполнять какой угодно код 'по клику'
там не "какой угодно код", почитал бы о чем трепешься сначала.
> заболтались вы. Native client это вам не ActiveX(дырявый by design).Это нам те же принципы от ActiveX, но "правильно приготовленные".
> > позвольте выполнять какой угодно код 'по клику'
> там не "какой угодно код", почитал бы о чем трепешься сначала.Да, конечно. Там выполняется какой угодно код, выполнение которого пытается мониторить специально обученный монитор. Где-то я уже это видел...
> там не "какой угодно код", почитал бы о чем трепешься сначала.В активиксах в теории как бы тоже все было шито-крыто и вообще, их должен по идее автовыполнять отнюдь не кто попало. На практике - откройте любой сайт по уязвимостям и введите слово ActiveX. А может, проще сразу вывесить ssh и на видном месте разместить логин пароль и айпишник? А что, некоторые так делают даже :).
P.S. задолбали уже умники которые пытаются сделать из браузера операционку, в которой можно будет срать как попало. А господам велосипедистам не приходило в бошку что если юзеры не хотят давать доступ к своей оси напрямую, то и к оси в виртуалочке или чем там еще доступ давать будет не очень то прикольно. В конце концов, если оно сможет лепить сокеты и худо-бедно хранить файлы, хакерью будет похрен что это виртуальное, прокся и спамбот получится и так.
>P.S. задолбали уже умники которые пытаются сделать из браузера операционку, в которой можно будет срать как попало.А какже гуглоОс? А как же концепция SAaS.
>А господам велосипедистам не приходило в бошку что если юзеры не хотят давать доступ к своей оси напрямую, то и к оси в виртуалочке или чем там еще доступ давать будет не очень то прикольно.
Вы б сходили в простой народ, узнали как оно на самом деле, где платные sms отправляют на любые номера по требованию всплывающего окна, смело пишут свой единственный пароль в любую форму, где написано "введите пароль", устанавливают различные "ускорители интернета", и свято верят что они выиграли в лотерею, в которой не участвовали, при каждом получении спама.
А если сходить на дурку, то можно много чего интересного узнать о Наполеонах.
Если человеку наплевать на безопасность своего компьютера, то в угол такого человека.
Обеспечение безопасности в глобализованном мире не прерогатива отдельного человека, это обязанность. Когда от хотелок "простого народа", падает безопасность моего компа и убытки грозят мне лично, то в топку такой народ, пусть сидит в песочнице без сети и играет в лайнс.
Я тоже не вижу ничего принципиально порочного. Те-же Java-апплеты, но без виртуальной машины для интерпретации команд. Будет быстрее работать. Можно будет кучу имеющихся наработок на C/C++ и прочих компилируемых языках перенести в среду браузера.Опасения вызывает только возможный дальнейший путь разработчиков. Если они внезапно старательно воспроизведут недостатки ActiveX, то я считаю лучше это начинание сразу придушить.
Интересно, а без виртуальной машины кто будет следить за тем, чтобы приложение не лазило куда не надо? Святой дух?
> Интересно, а без виртуальной машины кто будет следить за тем, чтобы приложение не лазило куда не надо? Святой дух?С такими вопросами пожалуйте в школу...
>Интересно, а без виртуальной машины кто будет следить за тем, чтобы приложение
>не лазило куда не надо? Святой дух?Виртуальные машины бывают разные. Можно сказать, что процесс операционной системы тоже выполняется в виртуальной машине. Только в роли виртуальной машины тут выступает ядро операционной системы. Есть виртуальные машины QEmu и VirtualBox, они умеют не только интерпретировать инструкции чужеродной архитектуры, но и выполнять нативные инструкции в виртуальной среде. Другими словами - виртуальная машина не обязательно представляет собой интерпретатор какого-то байткода, она может пользоваться и аппаратными средствами ограничения доступа, встроенными в процессор.
>Есть виртуальные машины QEmu и VirtualBox, они умеют не
>только интерпретировать инструкции чужеродной архитектуры, но и выполнять нативные
>инструкции в виртуальной среде.И проблемы одинаковые. Регулярно в рассылках по безопасности появляются данные о доступе из гостевой системы к основной.
> кто будет следить за тем, чтобы приложение не лазило куда не надо? Святой дух?http://nativeclient.googlecode.com/svn/trunk/src/native_clie...
> Я тоже не вижу ничего принципиально порочного. Те-же Java-апплеты, но без виртуальной машины для интерпретации команд.Какая разница с точки зрения пользователя, плагин то всё равно какой-то нужен наверняка. А Java-апплеты-то почему-то большой популярности кроме как в научной и банковской среде на завоевали... :-(
>> Я тоже не вижу ничего принципиально порочного. Те-же Java-апплеты, но без виртуальной машины для интерпретации команд.
>
>Какая разница с точки зрения пользователя, плагин то всё равно какой-то нужен
>наверняка. А Java-апплеты-то почему-то большой популярности кроме как в научной и
>банковской среде на завоевали... :-(А можно подробнее по апплетам? Хотя бы ссылочку.
>А можно подробнее по апплетам? Хотя бы ссылочку.
> Это уже давно не так в современных версиях WindowsВы много видели этих самых "современных версий Windows" (tm) у пользователей на компьютерах?
>Это уже давно не так в современных версиях Windows1) Смотрим на рыночную долю осей. Ну хоть на spylog.com или где там вам удобно. Что-то не хавают юзеры эти ваши современные версии. Предпочитая те которые не тормозят и не создают им левого геморроя.
2) Да, блин, в современных версиях подтянули права до уровня *никсов цатилетней давности. Даже аналог su+sudo смастрячили. Все, современная! Инновация, мля! Супер-система безопасности, однозначно! Вот только, блин, в *никсах за эти ...цать лет все уже давно привыкли что по дефолту - не рут и баста. И - работают и так. А вот в виндозе - в этих ваших современных есть "маленькая" проблемка: всего какая-то добрая половина программ - не работает. По совместимости они - на уровне wine какого-нибудь. Скажите, а лет ...цать назад включить мозг и подумать о то что интернеты и прочая - не дружественная песочница и там могут сплойтом в бубен дать - было не судьба? Или какого хрена у *никсоидов уже столько лет гайки затянуты а микрософт пришел к практически той же модели прав лишь десятилетия спустя, понабив шишек и создав мегатонны геморроя всем вокруг?
>Даже аналог su+sudo смастрячили.А кинь линком, пожалуйста, а то как-то копал, мне никто толком не ответил, ни на технете, ни в других местах (возможно плохо копал). Хочется чтобы при включенном UAC часть программ работало с максимальными правами, делательно без ругани (или с руганью и запросами, но шоб работали!). Собственно нужен именно аналог sudo.
А то столкнулся, что если уровень UAC максимальный или около того, то проги в автозапуске, или вызываемые другими прогами просто тихо не работают, никуда, даже в syslog не сообщая об том. Например route add вызываемая клиентом OpenVPN нифига не отрабатывает, если не поднять привелегий ярлыку! OpenVPN GUI, установка привелегий на экзкшник ничего не меняет! ме был в шоке просто! А замечательная дыра позволяющая запустить любую прогу с любыми правами через task scheduler это просто песня!
Если честно то я на углубленное изучение системной механики виндов с некоторых пор забил. Для UAC - просто оценил что общая логика системы прав теперь напоминает по смыслу su+sudo. Часть сервисов до сих пор с круто задранными правами (например под аккаунтом SYSTEM, которому по идее можно вообще все). Ну а то что оно в целом дубовое, назойливое и не настраивается нормальными способами - меня не удивляет, это ж MS. Пусть вон какой-нибудь Трухин нам расскажет как с этой гадостью бороться, раз ему MSовское добро так нравится. Благо, грамотный спец - это тот кто знает о "своей" системе вот такие вещи. А не тот кто орет как она замечательна. Вот я хочу знать о пингвинах подобные вещи. А винды - надоели, вечно там все через известное место как только хочется минимальных продвинутостей от оси. И как только нужды выходят за пределы домохозяйных - нифига там уже не просто и не интуитивно.
>Но вот в идее запуска внутри браузера нативного кода никакой порочности я не вижу.Зачем браузеру Qt понятно, так он становится лучше, ну или по крайней мере не хуже.
А вот зачем Qt браузер? Ещё в эпоху Web 1.0 можно было скачать бинарный код и запустить его, а сейчас уж прямо всё надо делать в браузере. Кроссплатформенность? Нет. Ещё одна платформа - браузер. Если раньше было "это не работает в моей ОС", то теперь будет "это не работает в браузере".
Гораздо больше сходства с Java, чем с ActiveX.
зачем браузеру выполнять двоичный код страниц? да здравствуют вирусы? зачем боремся за скорость веб-приложений? уж не кодировать ли видео перед заливкой на ютуб в пользовательском браузере собираемся?
"Фреймворк Native Client позволяет выполнять в окне web-браузера обычные бинарные приложения, ограниченные в специальном изолированном окружении."
>"Фреймворк Native Client позволяет выполнять в окне web-браузера обычные бинарные приложения, ограниченные
>в специальном изолированном окружении.""обычные бинарные приложения" _выполняются_ _в окне_ web-браузера.
Обхахочесся. Маркетинговый бред менеджера.
осилишь прочитать, прежде чем дальше бредить о чем не знаешь ?http://nativeclient.googlecode.com/svn/trunk/src/native_clie...
P.S. это не "обычные" бинарные приложения
идея в теории возможно и интересная, но доверять лучше не надо. Помнится мы как-то ковырялись в их gadgets в порядке интереса, там вроде тоже ограниченный API, безопасность и всё такое, однако в самой платформе довольно просто найти несколько мест где произходит запись в файлы хост-системы и нет никакой гарантии что этими не документированными официально функциями не воспользуется само приложение. Тоесть, если следовать SDK то оно возможно даже будет безопасно работать, ну а если не следовать?
первый пример на вскидку, информация для размышления : http://kb.vmware.com/selfservice/microsites/search.do?langua...
> осилишь прочитать, прежде чем дальше бредить о чем не знаешь ?
> http://nativeclient.googlecode.com/svn/trunk/src/native_clie...Начинается со словами о portability:
We combine these features in an infrastructure that supports
_safe side effects_ and _local communication_. Overall, Native
Client provides sandboxed execution of native code and
_portability across operating systems_, delivering native code
performance for the browser....
Потом пошла привязка к аппаратуре:
- an infrastructure for OS and browser-portable sand-
boxed _x86 binary modules_,...
и operating environment:
- support for advanced performance capabilities such as
threads, _SSE instructions_ [32], _compiler intrinsics_ and
_hand-coded assembler_,...
- refinements to _CISC software fault isolation_, using
_x86 segments_ for improved simplicity and reduced
overhead.
Много-много слов, чтобы убедить меня вот в этом:While acknowledging the insecurity of the current systems
for incorporating native-code into web applications,_we also observe that there is no fundamental reason why native code should be unsafe_.
>>"Фреймворк Native Client позволяет выполнять в окне web-браузера обычные бинарные приложения, ограниченные
>>в специальном изолированном окружении."
>
>"обычные бинарные приложения" _выполняются_ _в окне_ web-браузера.
>
>Обхахочесся. Маркетинговый бред менеджера.Это не бред. Вот пример такого приложения:
http://www.sweethome3d.eu/ru/SweetHome3DOnline.jsp
> > >"обычные бинарные приложения" _выполняются_ _в окне_ web-браузера.
> >
> >Обхахочесся. Маркетинговый бред менеджера.
> Это не бред. Вот пример такого приложения:
> http://www.sweethome3d.eu/ru/SweetHome3DOnline.jspВ приведённом примере JavaScript-программа выполняется в рамках процесса браузера (или процесса, порождённого процессом браузера). Java-программа интерпретируется в рамках процесса Java-машины, запущенной процессом браузера (ну, или не браузера).
В рамках окна у меня есть форточка. Всё что там run --- это чёрная хвостатая бестия, которая пытается осуществить перехват низколетящих целей (голубей).
>[оверквотинг удален]
>> Это не бред. Вот пример такого приложения:
>> http://www.sweethome3d.eu/ru/SweetHome3DOnline.jsp
>
>В приведённом примере JavaScript-программа выполняется в рамках процесса браузера (или процесса, порождённого
>процессом браузера). Java-программа интерпретируется в рамках процесса Java-машины, запущенной процессом браузера
>(ну, или не браузера).
>
>В рамках окна у меня есть форточка. Всё что там run ---
>это чёрная хвостатая бестия, которая пытается осуществить перехват низколетящих целей (голубей).
>Да пофиг чего в рамках чего выполняется. Это всего лишь пример как оно будет выглядить для конечного пользователя, без экскурсий по внутренностям и ощупывания потрохов. По факту нативное приложение выполняемое в браузере.
>Да пофиг чего в рамках чего выполняется. Это всего лишь пример как
>оно будет выглядить для конечного пользователя, без экскурсий по внутренностям и
>ощупывания потрохов. По факту нативное приложение выполняемое в браузере.Ну да, я и говорю --- маркетинговый бред.
Ну всё. Теперь столько разнах возможностей сделать 3D в браузере, что начнётся головная боль... Здравствуй, Интернет будущего, из фильмов 80-х.
Nokia готовится к выходу Chrome OS?
>Nokia готовится к выходу Chrome OS?Кстати да, неплохой ответ гуглу был бы.
Им еще пилить и пилить "Из нерешенных пока проблем отмечается 100% загрузка CPU при выполнении Qt программ". А так я думаю это получше чем ActiveX.
>Им еще пилить и пилить "Из нерешенных пока проблем отмечается 100% загрузка
>CPU при выполнении Qt программ". А так я думаю это получше
>чем ActiveX.Всего-то опрос заменить на подписку на события. То бишь, если так можно выразиться, select на epoll.
Короче забейте. Ерунду какую-то экспериментальную написали. Я бы даже внимания такой ерунде не уделял. Практической пользы абсолютно нет. На ноуте не поставишь - 100% загрузка и жужжание и т.п. Все таки пуллинг не очень хорошая идея. Лучше бы думали как переносимость сделать... И ускорить событийность...
>Лучше бы думали как переносимость сделать...Читайте в треде это и другие блестящие советы Капитана Очевидность!
Скажите, я теперь могу купить андроид-смартфон и запустить в тамошнем браузере мою любимую Qt-программу? Если так, то это Ъ. Пока отсутствие Qt для андроида меня сдерживает от покупки таких смартфонов.
Подожди квартала три-четыре и покупай аппарат с Maemo 6 от Nokia.
>Подожди квартала три-четыре и покупай аппарат с Maemo 6 от Nokia.Андроид моожно купить уже сейчас тыщ за 13-14. Маемо будет как обычно стоить в два раза больше.
Нет. Эти апплеты работают только под x86.
>Нет. Эти апплеты работают только под x86.С чего бы? Qt работает везде.
> Скажите, я теперь могу купить андроид-смартфонНаверное да.
> и запустить в тамошнем браузере мою любимую Qt-программу?
Наверное да. Но, похоже, возможность запустить свою любимую программу на твоём андроиде будет не только у тебя...
>Скажите, я теперь могу купить андроид-смартфон и запустить в тамошнем браузере мою любимую Qt-программу? Если так, то это Ъ.Да. Это я.
Можно допустить что это не плохо при условии что это будет одинаково и без дополнительных ухищрений работать на Windows, Linux, FreeBSD и Solaris на x86-32/64, ARM и Sparc.
>Можно допустить что это не плохо при условии что это будет одинаково
>и без дополнительных ухищрений работать на Windows, Linux, FreeBSD и Solaris
>на x86-32/64, ARM и Sparc.Native Client сделана только для x86, со всеми вытекающими.
>Native Client сделана только для x86, со всеми вытекающими.Однако супер сложностей для переноса нет ,если исполняются команды только ring4 ,да еще с кучей ограничений ,эмулируются эти команды даже на ARM процессоре .Вдобавок эмулировать вызовы не обязательно ,QT кросплатформенна .Наверняка портируют если технология приживется -а пока приимуществ перед Moonlight 3 не вижу (кроме проблем с лицензиями на кодеки),да и время потеряно .
> ,эмулируются эти команды даже на ARM процессоре .Если эмулировать, то получим скорость такого решения сразу станет меньше, чем у виртуальной машины Java.
> Вдобавок эмулировать вызовы не обязательно ,QT кросплатформенна .
Скомпильте прогу на x86 и попробуйте запустить этот бинарник на ARM. Расскажите об успехах.
> Наверняка портируют если технология приживется -а пока приимуществ перед Moonlight 3 не вижу (кроме проблем с лицензиями на кодеки),да и время потеряно .
Native Client однозначно хуже, т.к. эмулировать инструкции x86 процессора на произвольной архитектуре достаточно накладно (и в плане реализации и в плане скорости). Архитектура x86 на ARM (к примеру) ничем не отличается от виртуальной машины Java, C#, Python и других на ARM, а реализовать ее намного сложнее.
>Скомпильте прогу на x86 и попробуйте запустить этот бинарник на ARM. Расскажите об успехах.Qt это не только C++. PyQt будет работать везде. NaCl использует python.
>>Можно допустить что это не плохо при условии что это будет одинаково
>>и без дополнительных ухищрений работать на Windows, Linux, FreeBSD и Solaris
>>на x86-32/64, ARM и Sparc.
>
>Native Client сделана только для x86, со всеми вытекающими.Откуда информация?
>>Можно допустить что это не плохо при условии что это будет одинаково
>>и без дополнительных ухищрений работать на Windows, Linux, FreeBSD и Solaris
>>на x86-32/64, ARM и Sparc.
>
>Native Client сделана только для x86, со всеми вытекающими.Native Client работает везде.
>
>Native Client работает везде.Как у нас там с упоминаниями про 'x86 segments', SSE instructions и 'x86 binary modules'?
>>
>>Native Client работает везде.
>
>Как у нас там с упоминаниями про 'x86 segments', SSE instructions и
>'x86 binary modules'?Problems windows
'''
Native Client does not work on 64-bit versions of Windows. Many
versions of 64-bit Windows lack the system call required to set
up protected memory segments. We believe that Native Client works
on 32-bit Vista and Windows XP.
'''don't fuck Sheriff
Пока в Nokia изобретают велосипед с квадратными колёсами, Олег Шальнёв своими силами пилит православный Glan... 8-)