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 в браузере

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



Проверено: post-factum ()
Последнее исправление: post-factum (всего исправлений: 8)

Ответ на: комментарий от gistart

> сделай перевод строки или таб... уже не помню)

В seamonkey никаких проблем. А что должно быть?

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

> И 12309 в комплекте.

Нифига, если запустить dd в фоне - ничего не виснет. И вообще, как для браузера, работает довольно шустро:

# dd if=/dev/zero of=/dev/null count=100000
51200000 bytes (48.8MB) copied, 6.389615 seconds, 7.6MB/s

PS: Ы, новый браузеротест. %)

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

> 51200000 bytes (48.8MB) copied, 6.389615 seconds, 7.6MB/s

Только реального времени там было не 6 секунд, а 23. Эмулятор таймера неточный. :)

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

>Скажи, а занятные графики загрузки проца слева на скрине - это от него?

Процессор из ранних core2, такое поведение для него нормально.

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

>Нифига, если запустить dd в фоне - ничего не виснет.

Так ведь скорость низкая! Хост-машина делает тоже самое с 708 MB/c.

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

> А не проще примонтировать образ ФС и скопировать туда? =)

Вышел апдейт. Добавлен «clipboard», теперь все намного проще и быстрее:

HOST> base64 nethack-343-bin.tar.gz | xsel
Затем вставить результат в clipboard.
BROWSER> cd /
BROWSER> base64 -d < /dev/clipboard | tar xzv
BROWSER> nethack

Если кому хочется поиграться - готовый архив nethack-343-bin.tar.gz

PS: У кого что интересное получилось запустить?

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

> У кого что интересное получилось запустить?

npush-0.7-bin.tar.gz

Скрины - как на сайте, но без цветов. Цвета в vt100 не работают. Работают в TERM=xterm, но тогда расползается изображение. Если кто нашел правильный тип терминала у этого эмулятора - скажите.

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

> но судя по исходному коду эмулятора, там GWT или иной транслятор

Судя по исходному коду который ты не видел) Видел? Тогда в какой строчке ты там GWT увидел?

PS: Судя по ответам в топике ЛОР УЖЕ скатился сами знаете в чего.

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

>Я хочу от Фабриса детей.

Заодно и премию за рождение «первого ребёнка в мире от ...» получишь.

она вроде 100К. \хорошая прибавка к материнскому капиталу.

anonymous
()

Говорил вам Дениска что вы наелись конфет, а вы не верили.

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

у меня в хромиуме 11, если в vi отредактировать файл, не просто буковку заменить, а ввести пару строк, тогда этот файл не компилится tcc, которому не нравится конец файла.

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

Спасибо анонимус, теперь можно играться в нетхак не вылезая из браузера.

Хотя нет, без сейва никак. Нужно добавлять извлечение содержимого /dev/clipboard, и скомпилировать полноценный base64 (местный умеет только декодировать).

anonymous
()

теперь бы эмуляцию vga и венду95 стартануть там, чтоб можно было всласть поглумиться...

r0mik
()

Кластер на вкладках браузера же

Кластер на вкладках браузера уже внидряют в сколкава

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

> мм. как?

:-)

Если ещё интересно - никак. Оба сообщения были шуткой. :-)

ximeric
()

Реквестирую порт Линукса на ВижуалБейсик.

Запускаешь ворд, открываешь doc-файл - а там линукс грузиццо.

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

> Она эмулирует на сервере или у меня?

оно грузится прямо в твой мозг и там уже делает тебя видеть компиляцию hello.c и выполнение rm -rf /. в следующей версии ожидается компиляция hello.java и эмуляция физического повреждения жеского диска молотком (молоток в поставку не входит).

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

>base64 nethack-343-bin.tar.gz

Это вы, товарисч, круто сделали. Убило

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

> Нужно добавлять извлечение содержимого /dev/clipboard, и скомпилировать полноценный base64

Вроде, уже работает (Shift+s в nethack для сейва):

base64 /tmp/nethackdir/save/файл > /dev/clipboard

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

всегда мечтал попробовать rm -rf / > /dev/dsp

Так кто мешает поставить Linux в QEMU или VBox и сделать?

У меня для таких целей всегда есть образ QEMU, который я перед процессом копирую, а после процесса копирую обратно.

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

> у меня в хромиуме 11, если в vi отредактировать файл, не просто буковку заменить, а ввести пару строк, тогда этот файл не компилится tcc

Странно. Только что проверялось в FF4 и Seamonkey - vi hello.c и между printf-ом и return-ом были набраны несколько строк. И под виндой и под линуксом tcc -run hello.c работает.

anonymous
()

очередная недоось? Красноглазые, хватит уже красноглазить, пользуйтесь нормальными осями типа windows 7 или mac os x.

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

> очередная недоось? Красноглазые, хватит уже красноглазить, пользуйтесь нормальными осями типа windows 7 или mac os x.

Бгыыы. :) Мимо. Приходи тогда, когда windows 7 или mac os x начнут запускаться в браузере. Вон, linux уже запускается. А этим - слабо? ;)

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

> а оно надо вообще?

У него куча применений.

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

Даже просто как игрушка эта штука незаменима. Вон, сколько тут было желающих убить линукс и посмотреть что будет. Теперь для этого достаточно просто открыть браузер и выполнить rm -rf /

Кроме того, это - легковесная виртуалка для экспериментов. Вот выложу я щас бинарник какой-то - рискнешь у себя его запустить? А так - открываешь страничку в браузере, копипастишь бинарник и запускашь. Даже ничего устанавливать не надо. И никакого риска.

Дальше - это дает уникальную возможность запуска приложений на абсолютно любой машине, на которой есть интернет и нормальный браузер. Ничего не надо устанавливать, никаких больше инсталяторов, никакого мусора в реестре и никаких зависимостей.

Можно придумать и море других применений. Например, для полноценного доступа к своему домашнему линуксу больше не нужны ssh или vnc-клиенты - достаточно браузера.

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

Да, оно надо! :)

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

ты меня не понял походу. Я спрашивал - нужен ли ваще этот линукс, когда есть нормальные оси типа солярки, мак оси и винды. Очередное быдлопоедлие для красноглазых дрочеров, которые только и думают как собрать ядро.

Можно придумать и море других применений. Например, для полноценного доступа к своему домашнему линуксу больше не нужны ssh или vnc-клиенты - достаточно браузера.

Охринительная возможность, прям 99% пользователям это нужно.

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

веб программисты - это вообще не программисты, а тупая быдлокодерская толпа. Не?

Кроме того, это - легковесная виртуалка для экспериментов. Вот выложу я щас бинарник какой-то - рискнешь у себя его запустить? А так - открываешь страничку в браузере, копипастишь бинарник и запускашь. Даже ничего устанавливать не надо. И никакого риска.

И чё те мешает поставить полноценную ось на виртуалку и через тоже vmware сервер через web-страничку её юзать?

Вечно вы красноглазые изобретете велосипеды. Повзрослейте уже и используйте нормальное ПО без всяких там open source'ов и прочей херни.

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

ip

Хочу nethack

да, осталось сделать эмуляцию сетевухи и можно писать rootkit чтобы хачить и троянить вендовз-сетки с IE изнутри из-под удобненького лиункса:)

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

Реквестирую гуру JavaScript в этот тред. Мне кажется линукс исполняется на удалённом сервере, а на JavaScript написан только терминал.

anonymous
()
Ответ на: ip от mumpster

> да, осталось сделать эмуляцию сетевухи

С этим сложнее. Проблема не столько в эмуляции сетевухи, сколько в том, что javascript - не С, и из него нельзя сформировать и отправить пакет.

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

> Реквестирую гуру JavaScript в этот тред. Мне кажется линукс исполняется на удалённом сервере, а на JavaScript написан только терминал.

Тут не нужен гуру, тут нужен мозг. Открой страницу, вытащи провод из сетевой карты и посмотри, что будет. :) Если это - терминал, то он отвалится.

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

уже попробовал так, действительно пашет. Круто!

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

> По сути такая система стирает грань между веб-разработчиками, системными программистами и десктоп-программистами.

да-да! а унитаз стирает грань между мужчинами и женщинами!

anonymous
()
Ответ на: socket от mumpster

> прочти и удивись http://habrahabr.ru/blogs/webdev/41223/ по крайней мере это: socket.send(«hello world»); срабатывает .;-)

Срабатывает. Только не помогает, т.к. это - имитация, требующая, к тому-же, серверной составляющей. Попробуй таким образом отправить UDP-пакет и получить на него ответ? Зачем? Чтобы DNS работал.

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

> не выводится клавиатурка, да? И линуха не грузится

Именно. Просто зелёная тишь мигающего курсора.

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

Если ммм... немного специфичный маленький дистрибутив линукса в виртуалке - это недоось... Что же в таком случае нормальная ОСь?

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