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

image

Теги: Linux, JavaScript

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

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

Эмулятор способен загрузить 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 миллиардов знаков после запятой).


или введите имя

CAPTCHA
Страницы: 1  2  3  
пельмешка
18-05-2011 12:45:03
уважаю мужика, не все же серьезными академическими исследованиями заниматься. однако рядовому пользователю наплевать на светило, появилась тема для холиваров - любимый хром отпинали за скорость.
0 |
D017D017D017D017D017D017D017D0...
18-05-2011 20:25:13
На хабре уже нехилую дискуссию развели по этому поводу: http://habrahabr.ru/blogs/linux/119424/#comment_3903960
0 |
пельмешка
19-05-2011 07:52:22
я уже чувствую, что скоро браузеры не только будут проходить CSS-selector test и Acid3, но и этот, чтобы выпендриться... "А в нашем новом браузере скорость работы линукса возросла на 10%"
0 |
ботинок
18-05-2011 15:16:36
круто конечно, но какой в этом практический толк. написать эмулятор, который будет работать в броузере - странная самоцель. бесспорно мужик потратил много попочасов и изучил интересные аспекты явы, но куда теперь всё это девать?
0 |
енот
18-05-2011 15:55:01
Теперь он пропиарился и может рассчитывать на прибавку/приглашения поработать. Статус он себе заработал, репутацию, теперь репутация будет зарабатывать для него.
0 |
тот енот, что поумнее
18-05-2011 18:16:19
Беллард репутацию себе заработал лет так 15 назад.
0 |
DRek
18-05-2011 16:18:11
К примеру демонстрация работы новой операционной системы без ее установки, эмуляция какого либо девайса для разработки под него
0 |
Инженер
19-05-2011 06:11:37
{quote]какой в этом практический толк[/quote]Мсье Беллард произвел небольшую компьютерную революцию, о которой долго говорил весь мир. Теперь можно загружать целиком ОС и программы с сервера. Осталось сделать чтобы Firefox загружался вместо ОС. Однажды я загрузил Windows XP, в нем запустил Virtual PC 2007, в нем установил Windows 98, в нем запустил Virtual Box и в нем установил Windows 3.11, и сделал снимок экрана.
0 |
RU_LIDS
19-05-2011 10:51:12
Вы забыли открыть в win 3.11 оконное творение Дяди Пети (Нортона). Досадное упущение!
0 |
Оператор
18-05-2011 16:47:32
Не работает в Опере.
0 |
chome-user
18-05-2011 16:56:38
Какая жалость...
0 |
blablabla
18-05-2011 19:14:00
И в Firefox только от четверки... 3.6.13 вчера эта фигня опознавала как "слишком старый браузер", теперь формулировку переписали - "ваш браузер не поддерживает..."
0 |
уфыв
18-05-2011 17:13:45
пипец товарищи! Дожили.... Надо доработать эту вещь до полноценной машины чтобы на чужих тачках загружать боевую ось со сплойтами ) Дизайн хотяб примитивный прикрутить )
0 |
18-05-2011 18:21:59
респект товарищу Белларду. надеюсь он не остановится на достигнутом и дойдет до полноценного и качественного продукта.
0 |
Unknown question detected
18-05-2011 20:19:38
...кстати, он разработчик QEMU, и ещё много чего: http://ru.wikipedia.org/w/index.php?title=%D0%91%D0%B5%D0%BB%D0%BB%D0%B0%D1%80,_%D0%A4%D0%B0%D0%B1%D1%80%D0%B8%D1%81
0 |
Страницы: 1  2  3