В рамках проекта JPC (http://www-jpc.physics.ox.ac.uk/home_home.html) разработан полноценный эмулятор архитектуры x86, написанный целиком на языке Java. Проекта достаточно универсальный, эмулятор может быть выполнен в виде отдельного Java приложения, запущен (http://www-jpc.physics.ox.ac.uk/demos_screenshots_nokia.html) на мобильном телефоне или в виде web-апплета в браузере. На сайте проекта представлено (http://www-jpc.physics.ox.ac.uk/demos_linuxdesktops.html) несколько демонстраций возможностей JPC, среди которых запуск игры DOOM и мини-дистрибутива Damn Small Linux. Исходные тексты (http://www-jpc.physics.ox.ac.uk/download_download.html) проекта распространяются в рамках лицензии GPLv2.
JPC обеспечивает один из наиболее безопасных способов выполнения изолированных приложений, так как используется двухуровневая модель изоляции - первый уровень обеспечивает изоляцию в стандартной виртуальной Java машине апплета с эмулятором , а второй реализован непосредственно эмулятором x86 инструкций.URL: http://tech.slashdot.org/story/09/07/03/1248246/Emulated-PC-...
Новость: http://www.opennet.me/opennews/art.shtml?num=22474
Попробовал этот "полноценный эмулятор архитектуры x8..." :)
Fatal Error Constructing JPC Instance: java.lang.OutOfMemoryError: Java heap space
***** Refreshing the Web page may help *****
java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Arrays.java:2786)
at java.io.ByteArrayOutputStream.toByteArray(ByteArrayOutputStream.java:133)
at org.jpc.j2se.JPCApplet$PCConstructor.downloadData(JPCApplet.java:317)
at org.jpc.j2se.JPCApplet$PCConstructor.run(JPCApplet.java:395)
at java.lang.Thread.run(Thread.java:619)
А больше памяти жаве дать не помогает?
$ java -Xmx1G
Неужто наконец появится средство запускать старые DOS-игры на смартфоне... Вот классно будет. Давно ждал, учитывая что вычислительные мощности современных смартов, на сколько я понимаю, давно превосходят оригинальный 486 и могли бы и хотябы первый Voodoo эмулировать без проблемм...
iphone, через кудю ставишь что-то типа dosbox или qemu и рубишься. Ява ненужна.
Я на ём ставил эмулятор PSOne и даже кое какие игры запускались и играть можно было... Про дос - я вообще молчу...
>iphone, через кудю ставишь что-то типа dosbox или qemu и рубишься. Ява ненужна.Тут налицо ошибка. Скорее, iphone не нужен, нежели java.
Такое же поделие от проприетарной конторы.
А кому не нужно могут продолжать жить в каменном веке.
http://technitip.net/wp-content/gallery/test/iphone-stone-ht...
Эта пять! В избранное :)))))
>Неужто наконец появится средство запускать старые DOS-игры на смартфоне...
>Вот классно будет.Очень.Правда, смартфону придется для начала стать чем-то типа Cray.Ну или на выбор вы поимеете воистину офигительную скорость работы - "слайд-шоу" называется.Если, конечно, оперативки для старта вообще хватит :D
>Очень.Правда, смартфону придется для начала стать чем-то типа Cray...И наконец то диггеру не нужен будет специальный тормоз ;)
DosBOX уже давно запускает от Дума до Windows 95.
А на этом эмуляторе х86 запустится явовская виртуальная машина чтобы на ней запустить этот эмулятор х86?
Ну, так как заработал DOOM, следовательно, эмулируется, как минимум, iAPX386. Соответственно, в нём запускается Windows 95 с Java, и вперёд... ;)))
Хм, работает что самое забавное (x86_64, SUN JRE) ) Дум в аплете это круть )
ГЫ) Работает)) Загрузка проца 100%, но DOOM работает)))))
Да уж... На двухядерном процессоре DOOM тормозит намного сильнее crysis'а... Прогресс...
Еще не пробывал на домашней машине (Lenovo T400), но на рабочем мобильном селероне с 2ГБ памяти и 3мя виртуалками VMware эта JPC мне проц до 100% довела)))))
>Еще не пробывал на домашней машине (Lenovo T400), но на рабочем мобильном
>селероне с 2ГБ памяти и 3мя виртуалками VMware эта JPC мне
>проц до 100% довела)))))А если все то же самое, но без виртуалок?
>А если все то же самое, но без виртуалок?Без виртуалок неспортивно.Когда VM на VM и VM погоняет - это ж круто, модно и современно :)
>Да уж... На двухядерном процессоре DOOM тормозит намного сильнее crysis'а... Прогресс...Посмотрел бы я, как у вас crysis пошёл без проприетарного драйвера видеокарты. :))
Этот эмулятор будет работать на андроиде?..
Теперь можно грузить винду95 прямо в браузере !
А венду на него поставить можно ? давно мечтал о венде7 на мобилке.
>А венду на него поставить можно ? давно мечтал о венде7 на
>мобилке.А вы не постареете пока она там загрузится? :)
>>А венду на него поставить можно ? давно мечтал о венде7 на
>>мобилке.
>
>А вы не постареете пока она там загрузится? :)Нет. Doom же идёт.
Интересно, оно интерпретирует инструкции x86 или использует динамическую генерацию байт-кода с последующей JIT-компиляцией.
Только зря в тексте новости так акцентируется внимание на _языке_ Java. Существенным является то, что этот эмулятор написан для JVM, на каком языке - не столь важно.
-Угадай что у меня в браузере?
-Linux!
-Правильно, а сколько штук?
Ну и что, внезапно работает быстрее bochs/dosbox? Если нетб то новости место на каком-нибудь javaфильском сайте, они любят клепать софт только ради того, чтобы склепать его на java, а пользоваться потом невозможно.
>чтобы склепать его на java, а пользоваться потом невозможно.Ну... у всех свои понятия о юзабилити.Ща придут всякие iZEN и посоветуют воткнуть небольшой такой Cray под это дело, тогда doom легко выжмет FPS который он достигал на i486 :).Это же проще чем прогрммы нормально писать :D
На Sony-Ericsson P1i запускается:
http://www.sony-ericsson.ru/forums2/lofiversion/index.php/t4...
Нокифилы, как всегда, — в пролёте.
>На Sony-Ericsson P1i запускается:И сколько FPSов там показывает Doom? Если что - у любого современного мобильника проц мощнее чем то на чем дум работал в оригинале а оперативка - в несколько раз быстрее чем то тормозилово которое раньше в компах использовали, так что there is no excuse хреновому FPS-у...
> Нокифилы, как всегда, — в пролёте.
P.S. а вот в n800 (да, Nokia :P) нативный порт дума даже достаточно играбелен и выжимает неплохой FPS.Вы точно уверены что это именно нокиафилы в пролете?А то я на нокии игрался в дум.Нативный, а не эти извращения.В свете этого как бы большой вопрос - кто же там в пролете?Как по мне - нативный порт с нормальным FPSом и даже реально играбельный - на голову лучше всяких извратных тормозиловок ;).Более того - там даже первый Quake кой-как играбелен.Удачи в запуске оного на этой вашей тормозилке.И не забудьте FPSом похвастаться :)
>Как по мне - нативный порт с нормальным
>FPSом и даже реально играбельный - на голову лучше всяких извратных
>тормозиловок ;).Более того - там даже первый Quake кой-как играбелен.Удачи в
>запуске оного на этой вашей тормозилке.И не забудьте FPSом похвастаться :)Успокойся. Показали рабочий концепт, а ты уж извёлся весь. Начал сравнивать нативный порт с виртуализированным. :)
Гляди, как бы нативные порты не пошли в топку. :))
ну и как он, в целом, работает? быстрее самой архитектуры x86? :-P
>быстрее самой архитектуры x86? :-PКонечно.Если верить люббителям java - там jit должен супер-оптимально заоптимизировать код на ходу.После этого x86 влегкую обгоняет сам себя!Программная акселерация :P
тогда надо запустить эмулятор архитектуры в таком же эмуляторе. порвём пространственно-временной континуум! O_o
А вы не боитесь образования черной дыры в вашем процессоре?
p.s. у некоторых черные дыры в чипах уже даже получались :)
конечно БОЮСЬ! O_o но чего не сделаешь ради науки. да и может так случиться, что комп, на котором запустят рекурсивно такой эмулятор попадет в top500 :-P
>После этого x86 влегкую обгоняет сам себя!Программная акселерация :PЗря смеётесь. Помню на опеннете же была новость, где сравнивали разные виртуализаторы и реальную машину, в некоторых тестах, некоторые виртуалки обгоняли реал.
давай реально сравним вычисления, скажем, чисел Фибоначчи? ну, или, обработку массивов по Гауссу? короче, на выбор.
>Зря смеётесь. Помню на опеннете же была новость, где сравнивали разные виртуализаторы
>и реальную машину, в некоторых тестах, некоторые виртуалки обгоняли реал.Да, а теперь пусть те кто делал данные бенчи пусть предоставят научное объяснение этому феномену.А то в чудеса я не верю ;).
весь сей "феномен" сводится к измерению скорости вызовов функций с серверной опцией явы при настойчивом неупоминании статической линковки c/c++
ну и подобные фокусы, типа многократного умножения друг на друга однних и тех же матриц и прочее, прочее, прочее.
такая, панимаш, загогулина.
>весь сей "феномен" сводится к измерению скорости вызовов функций с серверной опцией
>явы при настойчивом неупоминании статической линковки c/c++Он вроде про виртуалки говорил.В смысле, не про яву а обычные виртуализаторы.Дык вот в каком-то треде про виртуализаторы кто-то утверждал что какой-то из виртуализаторов на какой-то задаче быстрее чем сам по себе проц (!!!).Если такая заява не была провокацией троллинга, мне бы очень хотелось услышать научные объяснения данному феномену.
P.S.: заявы "%s - это круто" научным объяснением не являются а в сказки я не верю.
я думаю, что подобные заявления бывают от специалистов широкого профиля - троллей
>я думаю, что подобные заявления бывают от специалистов широкого профиля - троллейВон человек более детально напомнил про этот случай.Я немного приврал, там скорость не CPU а дискового I\O каким-то хреном получилась больше чем без виртуализатора.Было бы весело послушать как можно честными методами, ничего не портя, получить данный выигрыш.А то объяснения "поставьте наш виртуализатор и все будет зашибись" устраивают только маркетологов.
>Я немного приврал, там скорость не CPU а дискового I\O каким-то хреном получилась больше чем без виртуализатора.Было бы весело послушать как можно честными методами, ничего не портя, получить данный выигрыш.Хм, может более грамотным кэшированием? Отключением проверок на запись? Или речь вообще про передачу по шине?
>Хм, может более грамотным кэшированием?Если так - разработчикам кешей в ОС должно быть стыдно если их добро какой-то тормозной виртуализатор наятгивает.Потому как возможностей по оптимизации у кеша в реальной ос доступно столько же.А виртуализатор работает в более трудных условиях: там возможна фрагментация виртуального диска по реальному, что скорости не добавит и даже линейная запись в host может оказаться уже нифига не линейной на реальном диске, что усложняет жизнь и сажает скорость.А если уж там всякие снапшоты и прочая - из всего этого надо еще и в реалтайме компоновать текущий вид, в итоге доступ к диску по идее может быть весьма фрагментированным.Кстати отсюда вполне понятно как тормознуть виртуализатор.Я таких тормозилок вижу много и часто.Тормозят изрядно, из-за того что фрагментация и на реальном диске идет (особенно если он забит) и на виртуальном(аналогично).Если не повезет, получется тормозилово в квадрате.Но в идеальных условиях на "нулевом" (не забитом) диске это как бы не является проблемой.
>Отключением проверок на запись?
Что еще за проверок?Их вроде никто сроду и не делает.По причине крайне жестокой потери производительности если запись перепроверять.Как максимум могу себе представить что если в реальной системе когда апликуха просит синхронизацию с диском и она честно (и медленно) отпедаливается, виртуализатор (если ему пофиг на сохранение атомарности транзакций в гуесте) может в принципе не заморачиваться синхронизацией соотв. куска виртуального диска на реальный и не ждать железо.Но это похоронит схемы типа транзакций в БД и поставит крест на их надежности.Ессно выиграв в скорости.
Кстати интересно, а если сделать диск-в-файле, выбросив виртуализатор - эффект сохранится?А то вспомнил что игрушечники иногда пихают все в большой архив, который можно считать как виртуальный диск - в том числе это делают и чтобы скомпенсировать дерьмовые свойства ФС типа фат и подобных под неудобными для них нагрузками.В итоге - если в guest ФС лучше чем в host - могу себе представить такой эффект знакомый "игрушечникам".Только эффект от этого есть лишь когда ФС на которой это лежит - фуфло.Иначе ФС справится ничуть не хуже.
Итого вижу максимум 2 метода выиграть, оба весьма читерские (один кладет на надежность, второй работает только если ФС на хосте такое г..., что ФС у гуеста - лучше).
>Или речь вообще про передачу по шине?
Да нет вроде.При чем тут шины?Не вижу что может виртуализатор сделать для улучшения параметров шин :)
>>После этого x86 влегкую обгоняет сам себя!Программная акселерация :P
>
>Зря смеётесь. Помню на опеннете же была новость, где сравнивали разные виртуализаторы
>и реальную машину, в некоторых тестах, некоторые виртуалки обгоняли реал."Некоторые тесты", если мне не изменяет память, были тестами на IO (дисковую подсистему).
Что вполне может получаться, когда файл с жестким диском гостевой машины попадает в кэш файловой системы основной машины.
Получается что-то вроде файловой системы tmpfs - фс в оперативке.
что же они помалкивают про тесты ext4 с 128GB RAM ? :-P
http://www.opennet.me/opennews/art.shtml?num=20018
>Что вполне может получаться, когда файл с жестким диском гостевой машины попадает
>в кэш файловой системы основной машины.А, пардон, файлы на обычной ФС в кэш что, не попадают?Или в чем прикол?Ведь без виртуализатора то же самое делает буферизация ФС применительно к файлам с которыми работают программы.
Как самый максимум я могу себе представить какой-то выигрыш путем какого-нибудь гнусного читерства с подставой, типа буферизации даже синхронных запросов (сие имеет шаны порушить транзакции в случае сбоев, разумеется).
> Получается что-то вроде файловой системы tmpfs - фс в оперативке.
А при внезапных шатдаунах host будут некислые потери данных стало быть?Потому что обычные запросы к ФС и так по идее буфферизуются.Можно конечно снаглеть, устроив кэш на запись синхронным запросам.Вот только при сбое транзакциям уповавшим на синхронность будет северный пушной зверек.В остальных случаях - опять же, за счет чего выигрыш?Чудес не бывает а буфера в пингвине и так прилично работают.У меня DVD-sized исоха за секунды улетает в дисковый буффер и потом неспешно выдавливается оттуда на диск.Чем не фс в опертивке?
если и запускать Monkey Island
http://www-jpc.physics.ox.ac.uk/monkey.html
то амижный. с прекрасным звуком и цветом.
а что сразу все за x86?
хочу MIPS!
пусть пишут под него емулятор))))
>а что сразу все за x86?Я бы удивился если б ява-програмеры сделали что-то этакое.А х86 - это нормально как раз, какие програмеры, такая и архитектура.
Интересно, как развивается отношение к ресурсам:
- Наш алгоритм использует четырехфазовое сжатие!
- А нормально, докупят оперативку и нормуль.
- Чем бы нам ещё забить проц?
ДУУм, Дуум... Не шарите вы во всемирных заговорах....
На самом деле:
- Появляются смартбуки на АРМах, которые имеют шансы вытеснить нетбуки на х86
- Производители смартбуков были б не прочь заиметь винды на них (не СЕ)
- Слухи были, но оффициально: Вин7 НЕ будет поддерживать АРМ.
- На языке Java разработан...
Ждём предложений смартбуков с Вин7. О том какой оно тормоз не спрашивайте.
Однако... Думаю нвидиа на тегре вполне может попробовать (а все вычисления они переложат на их мегакрутое видео ядро...)
А на ARM'ах, кстати, бывает аппаратная поддержка Java.
>А на ARM'ах, кстати, бывает аппаратная поддержка Java.Ага, сам придумал?
http://en.wikipedia.org/wiki/Jazelle
http://www.arm.com/products/multimedia/java/jazelle_architec...ARM и Jazelle, к сожалению, придумал не я.
делать людям нечего. кому надо на жабе запускать прилаги x86?
а вот и главная новость : Google chrome os.
Это виртуальная машина специально для этого ява-ориентированного поделия.
Точно винды через неё запускать будут...
Блин, в какое страшное время живём. Эпоха, в которой популярное поверх здравых мыслей... Этаки до заката недалеко
>Блин, в какое страшное время живём. Эпоха, в которой популярное поверх здравых
>мыслей... Этаки до заката недалекоНе сильно возражая, но для порядка: а вдруг это настолько без здравого смысла, что может стать совершенно необходимым, без чего лет через 10 жить не сможем? Например архитектура x86 станет не нужна ;)
Очень субъективно. Таким утверждениям всегда можно найти сколько угодно опровержение и подтверждений - смотря что хотеть найти.