Серверная (www.it-simple.ru)

Виртуальная машина на JavaScript


OpenNET.ru:

Французский математик Фабрис Беллар (Fabrice Bellard (http://bellard.org/)), основавший в свое время проект QEMU, представил (http://bellard.org/jslinux/tech.html) реализацию полноценного эмулятора (http://bellard.org/jslinux/) x86-совместимого ПК, написанную полностью на языке JavaScript. Реализована эмуляция 32-разрядного x86-совместимого CPU, контроллера прерываний 8259, таймера 8254 и приёмопередатчика 1650 UART.

Эмулятор способен загрузить Linux в окне современных web-браузеров (работа проверена в Firefox 4 и Google Chrome 11). После запуска эмулятора производится загрузка Linux-ядра 2.6.20 (конфигурация ядра (http://bellard.org/jslinux/config_linux-2.6.20)) c созданием ram-диска, в котором используется файловая система Ext2. Загрузка происходит за несколько секунд, после чего выводится стандартное приглашение командной оболочки из пакета busybox. Окружение содержит работоспособный TCP-стек (по умолчанию поднимается loopback-интерфейс), присутствуют стандартные команды, такие как ifconfig, ping и netstat. В состав загружаемого в эмуляторе Linux-дистрибутива включен достаточно полный набор приложений, например, имеются текстовые редакторы vi и qemacs, компилятор tcc, сетевые серверы dnsd, ntpd, ftpd, httpd, sendmail. В качестве системной библиотеки используется uClibc.

В настоящее время эмулируется набор инструкций i486, за исключением поддержки FPU. Отсутствие математического сопроцессора не мешает работе Linux, так Linux поддерживает использованием эмулятора FPU. Кроме того, в эмуляторе пока не реализована поддержка наборов инструкций MMX и SSE, имеются некоторые особенности выполнения проверок при работе с памятью, не реализована поддержка реального режима и 16-разрядного защищенного режима. Отмечается, что в новом эмуляторе реализовано несколько отсутствующих в QEMU оптимизаций, которые позволяют выполнять определенные действия более эффективно, чем в QEMU.

На языке JavaScript написан полноценный эмулятор ПК, способный загрузить Linux (http://www.opennet.ru/opennews/art.shtml?num=30577)

Сам эмулятор можно заценить здесь (http://bellard.org/jslinux/).

12.10.2011

Энтузиасты подключились к усовершенствованию эмулятора ПК, написанного целиком на JavaScript и способного запустить Linux. Изначально проект был представлен в мае Фабрисом Беллардом (Fabrice Bellard), основателем проекта QEMU. Улучшенная версия эмулятора (для запуска следует открыть файл emulator.html) предоставляет возможность загрузки последнего выпуска ядра Linux (3.0.4) и реализует драйвер виртуального блочного устройства.

Драйвер виртуального блочного устройства позволяет обеспечить постоянное хранение данных между разными сеансами работы, используя для этого API HTML5 для работы с локальным хранилищем. Загрузив специально подготовленное Linux-окружение пользователь имеет возможность отформатировать дисковый раздел с использованием файловой системы ext2 и в дальнейшем работать с ним при запуске эмулятора. Так как API HTML5 для локального хранения данных работает достаточно медленно, драйвер поддерживает кэширование в памяти полного содержимого диска с периодическим сбросом изменений в постоянное хранилище. Поэтому важно корректно отмонтировать виртуальный диск перед закрытием сессии.

В написанном на JavaScript эмуляторе ПК появилась поддержка постоянного хранилища (http://www.opennet.ru/opennews/art.shtml?num=31979)