Французский математик Фабрис Беллард (Fabrice Bellard), основавший в свое время проект QEMU, представил реализацию полноценного эмулятора x86-совместимого ПК, написанную полностью на языке javascript. Реализована эмуляция 32-разрядного x86-совместимого CPU, контроллера прерываний 8259, таймера 8254 и приёмопередатчика 1650 UART.
Эмулятор способен загрузить GNU+Linux в окне современных web-браузеров (работа проверена в Firefox 4 и Google Chrome 11). После запуска эмулятора производится загрузка Linux 2.6.20 (конфигурация ядра) c созданием ram-диска, в котором используется файловая система Ext2. Загрузка происходит за несколько секунд, после чего выводится стандартное приглашение командной оболочки из пакета busybox. Окружение содержит работоспособный TCP-стек (по умолчанию поднимается loopback-интерфейс), присутствуют стандартные команды, такие как ifconfig, ping и netstat. В состав загружаемого в эмуляторе GNU/Linux-дистрибутива включен достаточно полный набор приложений, например, имеются текстовые редакторы vi и qemacs, компилятор tcc, сетевые серверы dnsd, ntpd, ftpd, httpd, sendmail. В качестве системной библиотеки используется uClibc.
В процессе работы эмулятор использует типизированные javascript-массивы, позволяющие увеличить производительность и уменьшить потребление памяти при работе наборами данных фиксированного размера. javascript-реализация основана на коде динамического x86-транслятора, созданного в рамках проекта QEMU, адаптированного с учетом использования интерпретатора. Эмуляция терминала выполнена с использованием termlib.
В настоящее время эмулируется набор инструкций i486, за исключением поддержки FPU. Отсутствие математического сопроцессора не мешает работе GNU+Linux, так как ядро поддерживает использование эмулятора FPU. Кроме того, в эмуляторе пока не реализована поддержка наборов инструкций MMX и SSE, имеются некоторые особенности выполнения проверок при работе с памятью, не реализована поддержка реального режима и 16-разрядного защищенного режима. Отмечается, что в новом эмуляторе реализовано несколько отсутствующих в QEMU оптимизаций, которые позволяют выполнять определенные действия более эффективно, чем в QEMU.
Мотивом создания эмулятора стал интерес Фабриса Белларда к реализации современных javascript-движков, которые на современном этапе развития уже достаточно быстры, чтобы выполнять такие задачи как запуск эмуляторов. В будущем Беллард не исключает возможности создания своего javascript-движка. По словам Белларда, создание представленного эмулятора стало прекрасной школой по изучению оптимизации javascript-кода с учетом особенностей современных javascript-движков, таких как Jaeger Monkey (Firefox 4) и V8 (Chrome).
Что касается субъективной оценки производительности, то эмулятор в настоящее время работает при использовании Firefox 4 примерно в два раза быстрее, чем при запуске под управлением Chrome. Причины такого различия пока детально не анализировались, возможно были упущены какие-то особенности движка V8, так как движок Jaeger Monkey был более детально изучен Беллардом.
Кроме разработки QEMU, Фабрис Беллард является создателем мультимедиа пакета FFmpeg, TinyGL (сокращенный вариант OpenGL) и Emacs-подобного текстового редактора QEmacs. Отдельно можно отметить разработку сверхбыстрого Си-компилятора TCC (Tiny C Compiler), позволяющего использовать Си как язык для разработки скриптов. Например, на базе TCC был создан загрузчик TCCBOOT, который обеспечивал сборку ядра на лету и его загрузку за 15 секунд. В среде математиков Беллард известен как создатель самой быстрой формулы для вычисления числа Пи и как обладатель мирового рекорда по вычислению числа Пи (2700 миллиардов знаков после запятой).
Источник: http://www.opennet.ru/opennews/art.shtml?num=30577
оригинал на opennet.ru
[NIXP] Проект JS/Linux позволяет запустить ОС GNU/Linux в веб-браузере
Модератор: Модераторы разделов
-
rssbot
- Бот
- Сообщения: 6000
- ОС: gnu/linux
-
frp
- Сообщения: 1445
- ОС: Debian Squeeze
Re: [NIXP] Проект JS/Linux позволяет запустить ОС GNU/Linux в веб-браузере
Посмотрел. Работает намного быстрее, чем я ожидал увидеть. Но QEmacs тормозит.
-
Slimy
- Сообщения: 1689
- ОС: openSuSE 11.2 GM (GеMор едишн)
Re: [NIXP] Проект JS/Linux позволяет запустить ОС GNU/Linux в веб-браузере
Интересно только вот как выключить NumLock , а то на ноубучных клавиатурах становится не очень хорошо 
Если уже ничего не помогает - прочти инструкцию.
sysinstall - гадость :)
ASUS A6q00Vm Pentium-M 1.7 GHz, 2Gb RAM, 160Gb HDD,
GeForce Go 7300 64Mb video
sysinstall - гадость :)
ASUS A6q00Vm Pentium-M 1.7 GHz, 2Gb RAM, 160Gb HDD,
GeForce Go 7300 64Mb video
-
/dev/random
- Администратор
- Сообщения: 5498
- ОС: Gentoo
Re: [NIXP] Проект JS/Linux позволяет запустить ОС GNU/Linux в веб-браузере
Жаль, сетевую карту не эмулирует :)
-
Dmitry Shurupov
- Сообщения: 336
- Статус: Open Source geek
- ОС: Ubuntu Linux
Re: [NIXP] Проект JS/Linux позволяет запустить ОС GNU/Linux в веб-браузере
Фабрис Беллар (Fabrice Bellard), хорошо известный в Open Source-сообществе как разработчик проектов FFmpeg, QEMU и Tiny C Compiler (tcc), представил любопытный эмулятор компьютера, написанный на javascript.
Проект, названный как javascript PC Emulator, эмулирует x86-процессор, позволяя запустить на нем минимальную операционную систему GNU/Linux. Система получила название JS/Linux и включает в себя Linux 2.6.20 (с небольшим патчем), компактный набор стандартных консольных утилит BusyBox, а также компилятор языка Си tcc и незаконченный клон популярного текстового редактора Emacs — QEmacs.
Код эмулятора написан на чистом javascript с использованием Typed Arrays, которые стали доступны в последних релизах популярных веб-браузеров. Автор говорит, что функционирование javascript PC Emulator было проверено в браузерах Mozilla Firefox 4 и Google Chrome 11 в операционных системах GNU/Linux, Mac OS X и Windows.
Сам эмулятор доступен здесь, подробности о его техническом устройстве — на этой странице.
оригинал на www.nixp.ru
оригинал на www.nixp.ru
По-моему, это еще один повод перейти на Убунту.
-
frp
- Сообщения: 1445
- ОС: Debian Squeeze
Re: [NIXP] Проект JS/Linux позволяет запустить ОС GNU/Linux в веб-браузере
Действительно. А интересно, зачем там есть ifconfig, ping, ..., wget ...?
-
agentprog
- Сообщения: 362
- Статус: Ad Astra per aspera
- ОС: openSUSE 11.4, Arch
Re: [NIXP] Проект JS/Linux позволяет запустить ОС GNU/Linux в веб-браузере
rm -rf / быстро делает 
No problems - just solutions!
-
frp
- Сообщения: 1445
- ОС: Debian Squeeze
Re: [NIXP] Проект JS/Linux позволяет запустить ОС GNU/Linux в веб-браузере
rssbot писал(а): ↑17.05.2011 11:28В настоящее время эмулируется набор инструкций i486, за исключением поддержки FPU. Отсутствие математического сопроцессора не мешает работе GNU+Linux, так как ядро поддерживает использование эмулятора FPU. Кроме того, в эмуляторе пока не реализована поддержка наборов инструкций MMX и SSE, имеются некоторые особенности выполнения проверок при работе с памятью, не реализована поддержка реального режима и 16-разрядного защищенного режима.
Тогда почему в /proc/cpuinfo написано, что процессор - Intel Pentium MMX?
PS. А зачем нужно было эмулировать f00f bug? Или он по другой причине упомянут в /proc/cpuinfo?
-
watashiwa_daredeska
- Бывший модератор
- Сообщения: 4038
- Статус: Искусственный интеллект (pre-alpha)
- ОС: Debian GNU/Linux
Re: [NIXP] Проект JS/Linux позволяет запустить ОС GNU/Linux в веб-браузере
Чтоб с lo поиграть в демонстрационных целях.
Мои розовые очки
-
Bluetooth
- Сообщения: 4395
- Статус: Блюзовый
- ОС: Debian Squeeze amd64
Re: [NIXP] Проект JS/Linux позволяет запустить ОС GNU/Linux в веб-браузере
Браузерная виртуализация - новый шаг в клауд компьютинге :)
-
BIgAndy
- Сообщения: 1923