Наука и технологии
23 апреля 2012, 07:04

Сайт дня: JSLinux - от веб-приложений к веб-компьютерам

Сегодня сайтом дня объявляется JSLinux.

Проект JSLinux наглядно демонстрирует, как далеко зашёл технический прогресс области компьютеров. Типичные читатели Ferra.ru уже привыкли к стремительному росту цифр в гигабайтах и гигагерцах, но иногда полезно отвлечься от скучных таблиц с тестами и посмотреть, как количество переходит в качество. Например, можно посмотреть на полноценный компьютер, который сделан в виде приложения на JavaScript, и работает прямо в браузере, причём работает со скоростью, которая когда-то считалась приличной.

Вообще, в сети довольно много сайтов, содержащих эмуляторы запуска операционки в браузере. Не только очевидная связка Linux поверх JS, а и ряд других вариантов. Все они интересны только самым упёртым из гиков. Никакого технического прогресса они не демонстрируют.

JSLinux отличается от них тем, что это не попытка изобразить нечто, похожее на Lunux на странице браузера, а целый виртуальный компьютер, в котором эмулируются настоящие чипы. Уже на этот компьютер установлена весьма правдоподобная версия Linux, но это-то как раз и не подвиг, Linux сейчас даже в кофеварки ставят, а вот полноценная эмуляция процессора в браузере - это сильно.

Главная страница сайта JSLinux

Конечно, можно начать спорить о том, какую эмуляцию процессора можно назвать "полноценной", а какую - нет. К счастью, спор получится недолгим, ибо автор JSLinux чуть ли не лучше всех знает, что такое "эмуляция процессора" и если он говорит, что в JSLinux реализована "CPU Emulation", то ему стоит верить. Дело в том, что автор JSLinux - это знаменитый Фабрис Беллар (Fabrice Bellard), который создал, кроме прочего, и культовую программу QEMU, остающуюся одним из эталонов программной виртуализации. В общем, JSLinux - это серьёзный проект, а не курсовик Васи Пупкина.

На JSLinux установлена пара компиляторов C и есть пример программы, печатающей "Hello World". Можно писать нормальные программы на C, компилировать их и запускать. Интересно, что когда я был студентом, и писал C-программы на настоящем компьютере с Unix, он работал медленнее, чем сейчас работает JSLinux, запущенный в Chrome на моём ноутбуке. Вот это - качественный прорыв!

Стоит отметить, что программистское сообщество восприняло проект Беллара всерьёз. Дальнейшая разработка JSLinux движется достаточно активно. Уже придумали, как сделать для JSLinux эмуляцию жёсткого диска, который не пропадает, если закрыть страницу, а сохраняется в localStorage. Более-менее сделана эмуляция модема. Обсуждается выход с машины JSLinux в интернет через WebSocket. Самое любопытное, что средствами современного браузера можно реализовать и графический интерфейс Linux.

Конечно, если сейчас сделать KDE или Gnome, рисующиеся скриптами через Canvas, то они будут сильно подтормаживать, но тут мы возвращаемся к росту гигагерцев. Сменится несколько линеек процессоров, слегка усовершенствуются браузеры, и быстродействия JSLinux хватит, чтобы запустить ту же Ubuntu. И конечно же, это будет не предел. Можно поставить на Ubuntu VirtualBOX, на него - Windows, а туда - Diablo III. Так наблюдать за прогрессом намного интереснее, чем по тестам производительности процессоров и браузеров.

Знаете ещё хорошие сайты? Пишите на sitesoftheday@ferra.ru.