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

Discussion in 'Мировые новости. Обсуждения.' started by betakley, 17 May 2011.

  1. betakley

    betakley Member

    Joined:
    29 Dec 2008
    Messages:
    18
    Likes Received:
    7
    Reputations:
    0
    Французский математик Фабрис Беллард (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 миллиардов знаков после запятой).


    17.05.2011 12:28
    http://www.opennet.ru/opennews/art.shtml?num=30577​
     
  2. crazy_script

    crazy_script New Member

    Joined:
    3 Feb 2011
    Messages:
    18
    Likes Received:
    2
    Reputations:
    -3
    Наступает эра JS.
     
  3. energ77

    energ77 New Member

    Joined:
    17 Jul 2010
    Messages:
    49
    Likes Received:
    4
    Reputations:
    0
    ппц мощно, реально не думаю что JS подойдет для таки задач
     
  4. LastName

    LastName New Member

    Joined:
    4 May 2011
    Messages:
    19
    Likes Received:
    1
    Reputations:
    0
    Я правильно понимаю что теперь вместо порно баннеров будет открываться окно в котором компилируется линукс?
     
  5. KoT3

    KoT3 New Member

    Joined:
    24 Feb 2011
    Messages:
    9
    Likes Received:
    0
    Reputations:
    0
    Не думал что такое возможно...

    Уважуха Фабрису Белларду
     
  6. shellz[21h]

    shellz[21h] Elder - Старейшина

    Joined:
    20 Dec 2007
    Messages:
    311
    Likes Received:
    68
    Reputations:
    6
    http://bellard.org/jslinux/ оно? )
     
  7. НTL

    НTL Elder - Старейшина

    Joined:
    26 Jan 2008
    Messages:
    715
    Likes Received:
    205
    Reputations:
    -26
    На хабре уже рассказали об этом
    2shellz[21h], да, но работает только с FF4 или Хром 11 (12 Не работает)
     
  8. OnlyOn

    OnlyOn Banned

    Joined:
    18 Oct 2010
    Messages:
    252
    Likes Received:
    89
    Reputations:
    36
    посмотрел код - понимаю почему (с)
    что касается сабжа: это будет новое окно на аякс интерфейсы
     
  9. PabloPicasso

    PabloPicasso Banned

    Joined:
    2 Jan 2010
    Messages:
    88
    Likes Received:
    32
    Reputations:
    16
    в шоке 0_о
    это вам не XSS найти
     
  10. trotil

    trotil Member

    Joined:
    10 Jan 2009
    Messages:
    60
    Likes Received:
    5
    Reputations:
    4
    скоро такие эмуляторы и на РНР будут, счас уже скорее всего сидит интузиаст РНРшник и пишет эмулятор это ИМХО
     
  11. KoF31n

    KoF31n New Member

    Joined:
    29 Nov 2010
    Messages:
    49
    Likes Received:
    1
    Reputations:
    0
    Афигеть.Я то думал ява не предназначена для таких работ
     
  12. OnlyOn

    OnlyOn Banned

    Joined:
    18 Oct 2010
    Messages:
    252
    Likes Received:
    89
    Reputations:
    36
    Обьясняю. Без PHP там явно не обошлось, так как php - серверная часть программы, а JS + HTML (тоже есть) - клиентская.

    По этому давайте не будем морозить глупости?
     
  13. OnlyOn

    OnlyOn Banned

    Joined:
    18 Oct 2010
    Messages:
    252
    Likes Received:
    89
    Reputations:
    36
    Кстати. Автор кода жадный. Сразу же закодировал JS (Но мы то знаем что делать ^_^)

    Очень огорчает совместимость. Уже знаю как поправить. Где там контакты с автором?
     
  14. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    2 OnlyOn серверной части там нету. там js скрипт есть которые реализует работу 386 проца. К тогмуже он не закодировал, с уменьшил размер
     
  15. fl00der

    fl00der Moderator

    Joined:
    17 Dec 2008
    Messages:
    1,026
    Likes Received:
    311
    Reputations:
    86
    Круто, слов нет.
     
    _________________________
  16. SanFrancisco

    SanFrancisco New Member

    Joined:
    5 May 2011
    Messages:
    12
    Likes Received:
    0
    Reputations:
    0
    Реально, наверно лучшая новость за неделю!
     
  17. crazy_script

    crazy_script New Member

    Joined:
    3 Feb 2011
    Messages:
    18
    Likes Received:
    2
    Reputations:
    -3
    Погугли : node.js
     
  18. sit-help.ru

    sit-help.ru Banned

    Joined:
    21 Apr 2011
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    Даа круто.

    Это почти не реально...
     
  19. Zyon

    Zyon New Member

    Joined:
    24 Feb 2010
    Messages:
    15
    Likes Received:
    4
    Reputations:
    0
    А я не представлял, что на js вообще можно подобное написать, гениально че)
     
  20. mff

    mff Elder - Старейшина

    Joined:
    12 Mar 2008
    Messages:
    2,074
    Likes Received:
    701
    Reputations:
    227
    JS - сила. Помню когда начинал изучать веб-языки стоял перед выбором: JS или Visual Basic Script :D Последнее - такое гавно :D
     
    #20 mff, 19 May 2011
    Last edited: 19 May 2011
Loading...