Вчера открыл для себя изысканное развлечение — запуск Linux-системы в обычном веб-браузере. На странице после загрузки системы получаем знакомую консоль, в которой можно писать привычные команды и получать ответы системы. Причём, это никакая не бутафория — в браузере реально работает ядро linux в минимальном busybox-окружении. Дождались! :) Как же это работает?
Вкратце расскажу, что на JavaScript написан эмулятор процессора, в память загружается ядро и образ файловой системы. На моём нетбуке (Acer Aspire One с процессором Intel® Atom™ N270 @ 1.60 GHz и 1 GB RAM) в браузере Firefox 7.0.1 всё работает довольно шустро. Хотя, конечно же, разница между эмулятором и настоящим железом измеряется в нескольких порядках. Система jsLinux у меня загружается за 18 секунд.
Тех, кто хочет подробностей, я отсылаю по ссылкам:
- Публикации на habrahabr.ru:
- Оригинальная разработка Fabrice Bellard;
- Модифицированная версия 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 коммент.:
Отправить комментарий