LINUX.ORG.RU

Linux в браузере

 ,


0

4

Фабрис Беллард (Fabrice Bellard), основатель FFmpeg, автор QEMU, Tiny C Compiler, QEmacs и других проектов представил свою новую разработку — Linux в виртуальной машине на JavaScript.

Текущая реализация занимает 86КБ и поддерживает только базовые возможности:

  • 32-битный x86-совместимый процессор.
  • Программируемый контроллер 8259.
  • Программируемый таймер 8254.
  • UART 16450.
  • Эмулятор терминала, работающего с UART.

Но этих возможностей достаточно, чтобы запустить полноценное ядро Linux с корнем на ext2, включающим BusyBox, С-компилятор TCC и QEmacs.

Любой желающий может в своем браузере увидеть загрузку ядра Linux, поработать в открывшейся консоли, скомпилировать hello.c и выполнить rm -rf /. После загрузки ядра все операции выполняются в браузере без участия сервера.

Работоспособность подтверждена для браузеров Firefox 4, Seamonkey 2.1, Safari 5 и Chrome 11. По слухам проект не работает в Opera (нет поддержки Typed Arrays, а тестовые сборки, где она есть, выдают ошибку) и Chrome 12 («it does not work with Chrome 12 beta. As far as I know, it is a bug in the browser» — Fabrice Bellard).

Linux в браузере

>>> Подробности

Интересная вещь. Она эмулирует на сервере или у меня? И можно ли как-то примонтировать что-то, чтобы залить туда файлы в какой-нибудь tmpfs?

gentoo_root ★★★★★ ()
Ответ на: комментарий от gentoo_root

В браузере. Наверное можно как то с

cat >file <<EOF
...
EOF
И где ... - как то подать содержимое нужного файла.

Legioner ★★★★★ ()
Ответ на: комментарий от gentoo_root

Эмуляция ведётся на стороне клиента силами движка JavaScript.

Можно слить образ виртуального харда и внести нужные изменения. Далее остаётся лишь догадаться, как заставить Javascript PC Emulator это дело проглотить.

wget http://bellard.org/jslinux/root.bin && mkdir loop && sudo mount -o loop root.bin loop

eveel ★★ ()

понравилось:) интересная игрушка:)

MooSE ★★★★ ()

Долбаный emacs :( Как из него выйти ?

nCdy ()

Отлично.

~ # free -m                                                                     
             total         used         free       shared      buffers          
Mem:            29            3           26            0            2          
-/+ buffers:                  1           28                                    
Swap:            0            0            0    

Coldead ★★ ()

Да... Я все же сделал yes | rm -ri / =)

Tanger ★★★★★ ()

Текст из буфера не вставляется :(

adepto ()

rpm у кого-нибудь работает ? )

nCdy ()

Осталось Апач запустить. Получится веб-сервер в браузере!

adepto ()
Ответ на: комментарий от adepto

А можно поставить иксы, мозилку и сделать рекурсию. Только там памяти 15 мб.

Tanger ★★★★★ ()
Ответ на: комментарий от Tanger

там в /bin есть rpm, но видимо совсем не рабочий )

nCdy ()
Ответ на: комментарий от nCdy

а как проверяли? сети же там нет..
А там где-нибудь есть коровьяСУПЕРСИЛА?

Tanger ★★★★★ ()
Ответ на: комментарий от adepto

У этой виртуальной машины пока что нет других сетевых интерфейсов, кроме lo.

RussianNeuroMancer ★★★★★ ()

чего только не придумают лишь бы не покупать божественный ШИNDOШS

guyvernk ()

Как фйлы заливать. Хочу nethack скомпилировать

elverion ()

Хех.

~ # dmesg | grep «Pentium»
Intel Pentium with F0 0F bug - workaround enabled.
CPU: Intel Pentium MMX stepping 03

JustGuest ()

Скоро все бцдет так делаться. Программа сразу в своей песочнице со стартом из браузера.

AVL2 ★★★★★ ()
Ответ на: комментарий от Tanger

После rm -rf /:

(unknown) # emacs                                                               
sh: emacs: not found                                                            
sh: getcwd: No such file or directory                                           
(unknown) # exit                                                                
/sbin/init: line 21: /bin/true: not found                                       
Kernel panic - not syncing: Attempted to kill init!

Obey-Kun ★★★★★ ()

Беллар в своем репертуаре.

buddhist ★★★★★ ()

Чёрт, меня всё время тянет нажать ctrl+w, когда хочу стереть последнее слово. И очень жалко, что сеть нельзя поднять.

mehanoid ()
Ответ на: комментарий от elverion

Да! Новая отросль в браузерных играх! Нужно myman скомпилить :)

Tanger ★★★★★ ()

rm -rf / это первое что я проверил в этом эмуляторе =))) впечатляет идея и реализация, но судя по исходному коду эмулятора, там GWT или иной транслятор нормального языка в JavaScript, сильно сомневаюсь в чистом яваскриптовом происхождении сего чуда

I-Love-Microsoft ★★★★★ ()

Фигли, это вам не Моцарта на ложках сыграть. Это вам чухонское поделие на быдлонедоязыке склепать. А фонаты скажут: йя, креведко!

Новость из набора шуток «Аншлага».

GluckMan ★★★ ()

> /*

PC Emulator



Copyright (c) 2011 Fabrice Bellard




Redistribution or commercial use is prohibited without the author's


permission.


*/



Проприетарщина, ненужно.

anonymous ()
Ответ на: комментарий от I-Love-Microsoft

>сильно сомневаюсь в чистом яваскриптовом происхождении сего чуда

Этот чувак qemu написал.

А эмулятор на js он наверное в выходные по пьяни сделал.

smartly ★★★ ()

Отличная интересная разработка.

trex6 ★★★★★ ()

хм, 20 bogomips. MP3 потянет ? Хотя без MMX вряд-ли. Осталось написать ботнет на JS.

qwerky ()

Интересная штука в плане демонстрации возможности создания эмуляторов различных эмбеддед-контроллеров с выполнением и отладкой кода прямо в браузере.

qwerky ()
Ответ на: комментарий от eveel

HOWTO: Локальная копия эмулятора и модификация образа

1. Скачиваем:

wget -r -k -np "http://bellard.org/jslinux/"
cd "bellard.org/jslinux/"
wget "http://bellard.org/jslinux/root.bin"
wget "http://bellard.org/jslinux/vmlinux26.bin"
wget "http://bellard.org/jslinux/linuxstart.bin"
2. Модифицируем образ ФС:
mkdir /mnt/rootfs
mount -o loop root.bin /mnt/rootfs
# Ковыряем содержимое /mnt/rootfs
umount /mnt/rootfs
3. Открываем bellard.org/jslinux/index.html в браузере (я пробовал только в четвёртом фуфлофоксе).

mironov_ivan ★★★★★ ()

Safari 5

А вот и нихера! Куда писать?

У меня 5.0.5.

DarkAmateur ★★ ()

ёмаё

Он раскрыл тайный плам микрософта...только у микрософта вместо интерпритатора бинарника на джаваскрипте,уже есть интерпретатор бинарников на .Net. Восьмиядерников скоро для сапера не хватит!

anonymous ()
Ответ на: комментарий от elverion

> Как фйлы заливать.

Легко

BROWSER> cd /tmp; base64 -d > soft.tar.bz2
HOST> sleep 5 ; base64 < soft.tar.bz2 | while read s; do xdotool type "$s"; xdotool key Return; done
пока идет sleep - быстро альтабнуться в окно браузера и ждать...
когда команда в терминале закончится - можно что-то делать
а когда браузер очухается - нажать в нем Ctrl+D и затем:
BROWSER> tar xjf soft.tar.bz2

У меня после заливки 200КБ-архива браузер минут пять проглатывал такое количество запхнутых в него кодов. :)

> Хочу nethack скомпилировать

Это - сложнее. Думаю, проще скомпилить на хосте, и залить бинарник.

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.