23 октября 2011

Linux в веб-браузере

Вчера открыл для себя изысканное развлечение — запуск Linux-системы в обычном веб-браузере. На странице после загрузки системы получаем знакомую консоль, в которой можно писать привычные команды и получать ответы системы. Причём, это никакая не бутафория — в браузере реально работает ядро linux в минимальном busybox-окружении. Дождались! :) Как же это работает?

Вкратце расскажу, что на JavaScript написан эмулятор процессора, в память загружается ядро и образ файловой системы. На моём нетбуке (Acer Aspire One с процессором Intel® Atom™ N270 @ 1.60 GHz и 1 GB RAM) в браузере Firefox 7.0.1 всё работает довольно шустро. Хотя, конечно же, разница между эмулятором и настоящим железом измеряется в нескольких порядках. Система jsLinux у меня загружается за 18 секунд.

Тех, кто хочет подробностей, я отсылаю по ссылкам:

  1. Публикации на habrahabr.ru:
  2. Оригинальная разработка Fabrice Bellard;
  3. Модифицированная версия jsLinux.

Внимание! Пока вы еще не щелкнули по двум последним ссылкам, считаю своим долгом предупредить об объеме закачиваемых файлов. Оригинал помещается в 3,9 МБ, а модификация — в 5,2 МБ.

Немного подробностей об этих сборках.

 оригиналмодификация
размеры файлов в проектах:
ядро1,7 МБ1,7 МБ
корневая ФС2,0 МБ3,4 МБ
скрипты263 КБ192 КБ
версии основных компонентов:
uname -a Linux (none) 2.6.20 #2 Mon Aug 8 23:51:02 CEST 2011 i586 GNU/Linux Linux JS/Linux 3.0.4-debug-kernel #75 Wed Oct 5 11:10:53 CEST 2011 i586 GNU/Linux
busybox BusyBox v1.18.3 (2011-05-14 13:22:58 CEST) multi-call binary. BusyBox v1.18.5 (2011-10-05 11:26:00 CEST) multi-call binary.
время загрузки:
Mozilla Firefox 7.0.1¹17 с41 с
Arora 0.10.2¹42 с—*
Google Chrome 14.0.835.186¹—*—*
Opera 11.50.1074¹—*—*
Internet Explorer(R) 8.0.6001.18702²—**—**
Mozilla Firefox 3.6 Portable Edition²93 с—*
Opera 10.63²—*—*
Mozilla Firefox 3.6.6³120 с—*
GNU IceCat 3.6.8³121 с—*
Google Chrome 7.0.517.41³—*—*
Opera 10.63.6450³—***—*
Opera Mobile 11.00.1396⁴—****—*

Примечания:
¹ Система Linux Mint 10 Julia.
² Система Windows XP.
³ Система Slitaz 3.0.
⁴ Система Symbian (S60 5th Edition)
* Эмулятор не подает признаков жизни.
** Я пять раз отказывался остановить скрипт, после чего окно браузера перестало отвечать.
*** Запуск эмулятора приводит к краху браузера.
**** Удалось получить только строку «Loading Linux», дальше — тишина и спокойствие.

Выглядит всё это примерно так:

Using IPI Shortcut mode
Time: pit clocksource has been installed.
RAMDISK: ext2 filesystem found at block 0
RAMDISK: Loading 2048KiB [1 disk] into ram disk... done.
EXT2-fs warning: maximal mount count reached, running e2fsck is recommended
VFS: Mounted root (ext2 filesystem).
Freeing unused kernel memory: 124k freed
Booted in 92.662 s
Welcome to JS/Linux
~ # date
Sun Oct 23 11:12:04 UTC 2011
~ # uname -a
Linux (none) 2.6.20 #2 Mon Aug 8 23:51:02 CEST 2011 i586 GNU/Linux
~ # man -a
BusyBox v1.18.3 (2011-05-14 13:22:58 CEST) multi-call binary.
 
Usage: man [-aw] [MANPAGE]...
 
Format and display manual page
 
Options:
        -a      Display all pages
        -w      Show page locations
 
~ # 

Об особенностях работы вы можете прочитать на хабре и на страничке автора. Пока же можно сказать, что это оч-чень интересная игрушка для гиков! :) Приятных вам открытий!

0 коммент.:

Отправить комментарий