?

Log in

No account? Create an account
nyaload

Журнал Пушыстого

Журнал Пушыстого

Previous Entry Share Next Entry
JS Linux
nyaload
_winnie
Поразительная штука, http://bellard.org/jslinux/index.html

Это эмулятор unix внутри браузера, на javascript.

Я раньше натыкался на эту ссылку в блогах, но поигрался только сегодня.
Поредактировал файл в vi, скомпилировал местным компилятором tcc ( в этом эмуляторе есть компилятор C ), выяснил что скомпилированный dot-product перемножает и складывает миллион целых чисел за секунду или около 2000 float (код)

Что работают всякие шелловские конвееры cat | grep | tr | wc

Если раньше делали __asm вставки в коде С++, то в будущем будут делать JavaScript вставки для оптимизации медленного C++ :)


  • 1
ага, я тоже сразу про NaCl вспомнил который вроде как более внятная альтернатива ;)
Он кстати уже по дефолту включен в бете хрома, значит в течение нескольких месяцев появится в релизе. Если гугл будет его активно пропихивать - то у него есть шансы отжать популярность у флеша.

Это ж надо, чтобы другие браузеры поддержали тоже.

У него изначально были NPN и COM интерфейсы. Т.е. FireFox и IE поддерживаются - просто там его нужно ставить а не иметь из коробки как в Хроме. Я не силён в поддержке NPN интерфейса в Safari и Opera - не уверен есть ли там она и насколько сложно её туда добавить

А что в NaCl такого интересного, что может отжать у флеша? Флеш - в первую очередь готовый векторный графический движок, а NaCl что может предложить?

1. Отсутсвие дырок в безопасности. Она изначально сделана на принципах сэндбоксинга и использует системно-специфичные апи.
2. Скорость - NaCl изначально планировался как штука которая отличается от нативных приложений не более чем на проценты. LLVM штука шустрая, но до совсем нативных приложений он не дотягивает где-то на порядок. Тут NaCl и выстрелит - он-то сливает нативу не более чем десятки процентов.

> LLVM штука шустрая, но до совсем нативных приложений он не дотягивает где-то на порядок.

Nacl слегка дохлый, а Pnacl уже тоже на LLVMе.

> Nacl слегка дохлый
вроде как не дохлый. Т.е. его конечно не пиарят, но вон в бете хрома он уже включен по умолчанию, что о многом говорит (по крайней мере о том что в stable он будет включен через месяц-другой).

Первое хорошо, да. Второе уже не так актуально, вон JS и флэш уже сравнимую скорость показывают. При использовании правильного компилятора (Haxe, а не AS3) скорость флеша от плюсов всего на 20% отличается на CPU-intensive коде.
http://thedeemon.livejournal.com/31394.html

Причем там языки со сборкой мусора, замыканиями, рефлексией и пр., а в NaCl предлагают С/С++ использовать, как я понимаю.

он любой нативный код преобразует - так что с/с++ не обязательно. можно тем же моно с aot, наверное, пользоваться. хотя, может даже и без aot, надо смотреть.

Интересно. А какой у моно размер рантайма и как он окажется у клиента? Будет качаться при заходе на страничку? :)

с aot-ом и сжатием - в пределах нескольких мегабайт. для игр тех же - вполне приемлимая жертва ради скорости и удобства программирования.

Насколько я понимаю - не только с/c++ а вообще всё что умеет компилить gcc. Ну и плюс мой любимый гугл гоу, да.

Да, кстати про гугл гоу - на нём можно будет педалить как серверную (go sdk для gae с месяц назад выложили) так и клиентскую (под NaCl) часть что вообщем-то довольно вкусная возможность. Осталось дождаться появления аналога gwt для go (интересно, делает ли кто-то?) - и будет проступать достаточно интересная инфраструктура.

> LLVM штука шустрая, но до совсем нативных приложений он не дотягивает где-то на порядок.
вы бредите

Да, а векторный движок - это Canvas и WebGL, вещи которые NaCl ортогональны

  • 1