Среды выполнения Windows-приложений

Выполнение Windows приложений (.exe) без виртуальных машин

Модератор: Olej


Sergey371
Писатель
Сообщения: 60
Зарегистрирован: 06 окт 2011, 19:54
Откуда: Рига, Латвия
Контактная информация:

Re: Среды выполнения Windows-приложений

Непрочитанное сообщение Sergey371 » 23 окт 2011, 10:25

Olej писал(а):Я всё это подробно описал, чтобы было понятна конфигурация, может кто увидит "дырку" в действиях...

Итак:

Код: Выделить всё

[olej@nvidia ~]$ sudo qemu -m 2000M -hda /dev/sda -hdb /dev/sdb -boot c -localtime
...
Всё идёт так как и надо ... в итоге заканчивается синим экраном смерти :evil:
Как таковых дырок нет, просто основная проблема в том что используемая инсталляция винды не имеет драйвера контроллера диска который эмулирует QEMU(Это примерно как грузить ядро Linux-а при отсутствии драйверов к контроллеру корневой файловой системы в нём т.е. ядро не может получить доступ к корневой файловой системе). И как следствие есть необходимость в подготовительных действиях, это алгоритм подготовки к смене материнской платы:
1. На работающей системе выполняется переустановка драйвера контроллера диска на стандартный (что то типа Standard IDE Controller) т.о. клон с этой машины при загрузке уже сможет найти этот драйвер по QEMU.
2. Выполняется клон диска(или смена материнки).
3. Клон загружается в QEMU(или на новой материнке).
4. Производится обновление драйвера контроллера диска на нативные для текущей системы(для оптимизации работы), этот пункт по вкусу и необходимости.

Если же по каким либо причинам так подготовится не получается и надо лечить систему с BDS, основных пути два:
1. Попытаться загрузится в сейф моде по F8 и там произвести коррекцию драйверов.
2. Загрузится с установочного диска MS Windows в режиме восстановления и чинить тамошними средствами.

К стати в описанной ситуации с перемапированием дисков нужно восстановить виндовый MBR на втором диске и грузится уже можно будет командой:

Код: Выделить всё

$ sudo qemu -m 2000M -hda  /dev/sdb -boot c -localtime
Можно эксперименты делать и с клоном /dev/sdb.

Аватара пользователя
Olej
Писатель
Сообщения: 13913
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Среды выполнения Windows-приложений

Непрочитанное сообщение Olej » 23 окт 2011, 11:00

Sergey371 писал(а): К стати в описанной ситуации с перемапированием дисков нужно восстановить виндовый MBR на втором диске и грузится уже можно будет командой:
Что значит восстановить? Он там и так есть, я уже как-то вспоминал биографию этого диска: он создан и даже с неделю поработал на другом компьютере как единственный, потом его мне подарили чтобы и у меня был хотя бы единственный экземпляр Windows, т.е. это элементарнейший Windows-HDD ;-) со своим MBR, перенесенный в Linux и здесь подмонтированный.
Не грузится (в QEMU).
Sergey371 писал(а): Можно эксперименты делать и с клоном /dev/sdb.
Можно.
Но не хочется :lol: - 150Gb.

Аватара пользователя
Olej
Писатель
Сообщения: 13913
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Среды выполнения Windows-приложений

Непрочитанное сообщение Olej » 23 окт 2011, 11:39

Как написано в цитировавшейся уже раньше публикации:
Как сообщает Microsoft, в настоящий момент Windows 8 можно установить на следующие виртуальные окружения (из наиболее популярных):
-Hyper-V в Windows 8 Developer Preview;
-Hyper-V в Windows Server 2008 R2;
-VMware Workstation 8.0 для Windows;
-VirtualBox 4.1.2 для Windows.
- слухи о "VirtualBox 4.1.2 для Windows" - сильно преувеличены :lol:
VirtualBox под Linux замечательно справляется с этой задачей ;-)

Вся установка заняла ~20min. (WinXP ставился 23), и наставило оно:

Код: Выделить всё

[olej@nvidia VirtualBoxVMs]$ ls -l Win8.vdi 
-rwxrwxrwx. 1 root root 6262181888 Окт 23 11:42 Win8.vdi
- 6Gb ... (это по минимуму).
Вложения
Win8.png
(115.42 КБ) 11074 скачивания

Аватара пользователя
Olej
Писатель
Сообщения: 13913
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Среды выполнения Windows-приложений

Непрочитанное сообщение Olej » 23 окт 2011, 12:04

Olej писал(а): Вся установка заняла ~20min.
Это первая виденная мною VM в VirtualBox, в которой после установки не определилась сетевая карта и не настроилась NAT сеть!
Вот тебе и Windows 8 :-?
Вложения
Win8_2.png
(188.36 КБ) 11074 скачивания

Аватара пользователя
Olej
Писатель
Сообщения: 13913
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Среды выполнения Windows-приложений

Непрочитанное сообщение Olej » 23 окт 2011, 18:00

Olej писал(а):чтобы по порядку оцениться по скорости на одном и том же компьютере с выполнением: а). в нативном Windows, б). из-под Wine, в). в VM в VirtualBox.
А теперь я буду вас озадачивать :-? , потому как сам в растерянности :shock: ...

Использую тест:
AIDA64 Extreme Edition Version 1.85.1661 Beta
http://www.aida64.com/downloads/a64xe
Почему это? ... а почему другой? ;-) :
- свежий: Aug 18, 2011
- не требует инсталляции...

Тест предупреждает: не сравнивайте показатели разных версий AIDA64 - не сравниваем ;-) , все 3 варианта: 1). native WinXP, 2). WinXP под Wine, 3). WinXP в VM VirtualBox - используются с одного инсталляционного диска (кроме Wine?).

Во всех трёх вариантах тесты отображаются в разном формате текста, текст, нужно думать, AIDA64 получает от ОС... Но форматы - отличаются, и выглядит это так (это для примера тест памяти на запись):

1. native

Код: Выделить всё

ЦП	Частота ЦП	Системная плата	Чипсет	Память	CL-RCD-RP-RAS	Скорость записи
Pentium E6600	3066 МГц [ TRIAL VERSION ]	G41 Ext. DDR3-1066 SDRAM 7-7-7-20 CR1 5666 Мб/с
2. Wine

Код: Выделить всё

ЦП	Частота ЦП	Системная плата	Чипсет	Память	CL-RCD-RP-RAS	Скорость записи
Pentium	3066 МГц	[ TRIAL VERSION ]				5648 Мб/с
- по-другому записан процессор, нет полей относительно SDRAM, нет чипсета...

3. VM

Код: Выделить всё

ЦП	Частота ЦП	Системная плата	Чипсет	Память	CL-RCD-RP-RAS	Скорость записи
Pentium	3066 МГц	[ TRIAL VERSION ]	i440FX			6476 Мб/с
- чипсет записан другой...

На цифры пока не смотрим... :mrgreen:

Аватара пользователя
Olej
Писатель
Сообщения: 13913
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Среды выполнения Windows-приложений

Непрочитанное сообщение Olej » 23 окт 2011, 18:17

Olej писал(а):На цифры пока не смотрим... :mrgreen:
А теперь смотрим цифры...
Сами названия тестов не имеют особого значения, это несколько из многих тестов, см. AIDA64 :

Код: Выделить всё

Тест                   native             Wine              VM
read RAM (Мб/с)       6867,6874      38727,38725       9260,7910
write RAM (Мб/с)       5666            5665,5648           6476
CPU Queen              13007          11403,12897         11451
CPU PhotoWorxx         8857           11310,8771           7690
FPU VP8                1148            935,1133             868
Некоторые цифры показаны по несколько раз, потому как я своим глазам не поверил, и перепроверял позже...

Аватара пользователя
Olej
Писатель
Сообщения: 13913
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Среды выполнения Windows-приложений

Непрочитанное сообщение Olej » 23 окт 2011, 18:41

Olej писал(а):Некоторые цифры показаны по несколько раз, потому как я своим глазам не поверил, и перепроверял позже...
Если предположить, что относительно чтения RAM под Wine меряется полная херня (или ещё что можно предположить?), то цифры в рамках понимания ... и говорят, что для оценки реальной производительности нужны не тесты как таковые, а тесты, активно дёргающие системные библиотеки: тест диска (?), тест видеоподсистемы (?), ...
Последний раз редактировалось Olej 24 окт 2011, 12:31, всего редактировалось 1 раз.

Sergey371
Писатель
Сообщения: 60
Зарегистрирован: 06 окт 2011, 19:54
Откуда: Рига, Латвия
Контактная информация:

Re: Среды выполнения Windows-приложений

Непрочитанное сообщение Sergey371 » 23 окт 2011, 20:26

Под "вином" меряется скорее всего не херня(персоналка то американская, а херня это исконно русское ус-во ;-) ), а скорость кеша 1-го или 2-го уровня, как результат оптимизации предсказуемой команды чтения малого блока.
Помнится я тесты ещё с VMware 1.x делал, там при малых размерах блоков тоже цифры были странные. С сетью или дисками это можно нивелировать использованием тестового файла огромного размера(да хоть во весь диск) со случайными данными -- тогда оптимизация с упреждением не работает ни на каком уровне(ну разве что упреждающее чтение дисковых контроллеров отработает).

Аватара пользователя
Olej
Писатель
Сообщения: 13913
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Среды выполнения Windows-приложений

Непрочитанное сообщение Olej » 24 окт 2011, 12:41

Sergey371 писал(а):скорость кеша 1-го или 2-го уровня, как результат оптимизации предсказуемой команды чтения малого блока.
Помнится я тесты ещё с VMware 1.x делал, там при малых размерах блоков тоже цифры были странные.
Я тоже на нечто подобное грешил с самого начала, почему и написал:
(или ещё что можно предположить?)
Но странно мне как-то:
- Wine - не эмулятор, не виртуальная машина... всё это было бы гораздо правдоподобнее ;-) для VM ... VMware, VirtualBox...
- программный код тупо выполняется линейно, нативным образом, до тех пор, пока на встречается call на DLL,
- после чего моделируется всё, что имитирует вызов в DLL (либо предоставляемую Wine "на подмену", либо даже оригинальную из Windows, как с mfc42.dll...),
- даже внутри самой DLL x86 код выполняется тупо и нативно ;-) , до очередного вызова DLL...
Нет никакой контролирующей оболочки, настолько "плотной", что могла бы контролировать простейшие операции чтения-записи памяти внутри процесса, что-то типа обращения к большим массивам:

Код: Выделить всё

#define LEN 1000000
int ARR[ LEN ]; 
for( long i = 0; i < LEN, i++ )
   ARR[ i ] = (int)i;
Где здесь могла бы вмешаться исполняющая система?
Странно это...

Ответить

Вернуться в «Среды выполнения Windows-приложений»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость