
Емулятор комп'ютера з linux на JavaScript
Ніякої серверної частини. Тільки JS: повноцінний емулятор комп'ютера з лінуксом на борту.
bellard.org/jslinux
(увага, тільки хром і FF4)
Я довго з ним грав - це не імітація, лінукс веде себе як справжній лінукс - компільовані програми працюють, помилки в них викликають segmentation fault, пошкодження кореневої файлової системи викликає бурю обурення в dmesg і т. д.
dd показує при роботі з пам'яттю більш ніж пристойну продуктивність - понад 40 мб/с (не забуваємо, що це емулятор, і що це JS у вашому браузері!).
Я ніколи не думав, що ми доживемо до подібного.
… А тепер починається оргія:
* За допомогою локального сховища ми можемо організувати диски (кожен key-value відповідає одному сектору).
* З використанням web-socket ми можемо створити паравіртуалізований драйвер мережі з виходом на залізний машрутизатор і отримати нормальну мережу.
* З використанням існуючих технологій (NUMA, DRBD, corosync) можна організувати обчислювальний кластер з браузерів.
(До речі, показувати консоль в цьому випадку не обов'язково - ви запускаєте віртуальну машину у клієнта в бекграунді, віртуальна машина приєднується до кластеру, починає вважати, по її аварійному завершенню - закриття браузера - кластер автоматично переконфігурується).
Я це пишу як хохму, але в реальності, якщо у вас є лінукс і є - у вас є всі можливості для роботи чого завгодно. Будь-які мережеві програми, будь-які системи синхронізації та управління.
Ніхто не заважає створити паравіртуалізований драйвер відео за допомогою canvas, у вас є webGL, для якого можна написати свій варіант cuda і отримати досить потужну акселерацію обчислень...
Ну і фінал - запуск хрому всередині емулюваної віртуальної машини.
Отже, емуляція дійшла до браузерів...