Добро пожаловать в JavaScript PC Emulator

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

Впрочем, эмуляторы различных компьютерных устройств в браузере при помощи скриптового языка - дело не новое. Достаточно вспомнить для примера jsMSX (jsmsx.sourceforge.net) - эмулятор старых видеоприставок с процессором Z80 и видеопроцессором TMS9918, который написан с использованием элемента для создания растровых изображений HTML5 Canvas.

Поэтому вполне логично появление рано или поздно проекта, эмулирующего на языке JavaScript архитектуру PC. Тем более, развитию JavaScript сейчас уделяется много внимания, так как стремительно развивается рынок веб-приложений. Поэтому, с другой стороны, появление работоспособного эмулятора PC, созданного на JavaScript, демонстрирует и уровень развития современных браузеров.

Новый эмулятор, конечно, пока представляет интерес больше академический, чем практический. И неудивительно, что его автором является двадцатидевятилетний французский математик и экспериментатор-программист Фабрис Беллар. Тот, который открыл самую быструю формулу для вычисления единичного разряда числа Пи в двоичном представлении. Также Беллар является родоначальником таких известных свободных проектов, как эмулятор QEMU, быстрый компилятор Tiny C Compiler языка Си и др. Из веб-приложений Беллара можно отметить онлайн-калькулятор для сложных математических расчётов NumCalc.com.

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

На данный момент JScript PC эмулирует следующий хард:

  • 32-битный x86-совместимый CPU;
  • контроллер 8259;
  • таймер 8254;
  • контроллер последовательного порта 16450 UART.

Код написан на чистом Javascript с использованием типизированных массивов, которые появились совсем недавно в последних версиях некоторых браузеров. Такими браузерами являются Firefox 4 и Google Chrome 11, а также Opera 11.11 и Internet Explorer 9 (из-за ошибки в браузере JS/PC не работает с Chrome 12 Beta.)

На этом виртуальном JavaScript PC уже можно запустить практически полноценный Linux в консольном режиме. Для этого создана специальная веб-страница bellard.org/jslinux, на которой имеется рабочая версия самого эмулятора с консолью, написанной также на JavaScript.

Сам эмулятор загружает бинарный образ Linux, основанного на Busybox, и создаёт небольшой ram-диск с файловой системой Ext2 и структурой каталогов. В загруженном "Линуксе" даже присутствует поддержка сети, правда, только на уровне виртуального сетевого интерфейса loopback.

Из программ в распоряжении имеется весь стандартный набор приложений BusyBox. В дополнение Беллар добавил в эту версию "Линукса" свои микрокомпилятор TinyCC и миниатюрный редактор QEmacs. Поэтому в JS/Linux можно набрать код и компилировать программы.

В плане производительности эмулятор шустро управлялся с "Линуксом" на нетбуке.

Но то, что на JavaScript PC можно запускать пока только Linux, совсем не означает, что этот эмулятор только для Linux и создавался. В планах Беллара реализация 16-битного режима с возможностью запуска DOS и старых-добрых досовских игр.

Михаил АСТАПЧИК

Версия для печатиВерсия для печати

Рубрики: 

  • 1
  • 2
  • 3
  • 4
  • 5
Всего голосов: 0
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!