Емулятор комп'ютера з linux на JavaScript

Ніякої серверної частини. Тільки JS: повноцінний емулятор комп'ютера з лінуксом на борту.


bellard.org/jslinux

(увага, тільки хром і FF4)

Я довго з ним грав - це не імітація, лінукс веде себе як справжній лінукс - компільовані програми працюють, помилки в них викликають segmentation fault, пошкодження кореневої файлової системи викликає бурю обурення в dmesg і т. д.

dd показує при роботі з пам'яттю більш ніж пристойну продуктивність - понад 40 мб/с (не забуваємо, що це емулятор, і що це JS у вашому браузері!).

Я ніколи не думав, що ми доживемо до подібного.

… А тепер починається оргія:

* За допомогою локального сховища ми можемо організувати диски (кожен key-value відповідає одному сектору).

* З використанням web-socket ми можемо створити паравіртуалізований драйвер мережі з виходом на залізний машрутизатор і отримати нормальну мережу.

* З використанням існуючих технологій (NUMA, DRBD, corosync) можна організувати обчислювальний кластер з браузерів.

(До речі, показувати консоль в цьому випадку не обов'язково - ви запускаєте віртуальну машину у клієнта в бекграунді, віртуальна машина приєднується до кластеру, починає вважати, по її аварійному завершенню - закриття браузера - кластер автоматично переконфігурується).

Я це пишу як хохму, але в реальності, якщо у вас є лінукс і є - у вас є всі можливості для роботи чого завгодно. Будь-які мережеві програми, будь-які системи синхронізації та управління.

Ніхто не заважає створити паравіртуалізований драйвер відео за допомогою canvas, у вас є webGL, для якого можна написати свій варіант cuda і отримати досить потужну акселерацію обчислень...

Ну і фінал - запуск хрому всередині емулюваної віртуальної машини.

Отже, емуляція дійшла до браузерів...