На языке JavaScript написан полноценный эмулятор ПК , способный загрузить Linux .

2 сообщения в этой теме

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

RT .

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

В процессе работы эмулятор использует типизированные JavaScript - массивы , позволяющие увеличить производительность и уменьшить потребление памяти при работе с наборами данных фиксированного размера . JavaScript - реализация основана на коде динамического x86 - транслятора , созданного в рамках проекта QEMU , адаптированного с учетом использования интерпретатора .

В настоящее время эмулируется набор инструкций i486 , за исключением поддержки FPU . Отсутствие математического сопроцессора не мешает работе Linux , так 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 , который обеспечивал сборку Linux - ядра на лету и его загрузку за 15 секунд . В среде математиков Беллард известен как создатель самой быстрой формулы для вычисления числа Пи и как обладатель мирового рекорда по вычислению числа Пи ( 2700 миллиардов знаков после запятой ) .

Держите ссылку :

code

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Хотите убрать блок рекламы? Авторизуйтесь

Loading...

1. Новость старовата (от 18 мая)

2."Полноценный эмулятор" - это BusyBox v1.18.3 dry.gif

3.

Which browser should I use to try the PC emulator ?

The following browsers are officially supported:

Firefox 4.x

Chrome 11

Opera 11.11

Internet Explorer 9

For optimal performance, your browser should support the W3C Typed

rrays. Firefox 4.x and Chrome 11 have such support.

4.

I did it for fun, just because newer Javascript Engines are fast enough to do complicated things.
, что означает "Я сделал его для развлечения..." Практического применения ноль.
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Пожалуйста, войдите для комментирования

Вы сможете оставить комментарий после входа



Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу