Доступен (https://github.com/otya128/winevdm/releases) новый выпуск WineVDM, слоя совместимости, позволяющего запускать 16-разрядные приложения (Windows 1.x, 2.x, 3.x) на 64-разрядных версиях Windows. В своей работе WineVDM использует наработки проекта Wine. Код проекта распространяется (https://github.com/otya128/winevdm) под лицензией GPLv2. Для загрузки доступны сборки стабильной версии (https://github.com/otya128/winevdm/releases/download/v0.7.0/...) (0.7) и master-ветки (https://ci.appveyor.com/project/otya128/winevdm/build/artifacts) (рекомендуется).WineVDM транслирует вызовы программ, написанных для Win16, в вызовы Win32. Поддерживается возможность ассоциации запускаемых программ с WineVDM, а также работа инсталляторов, что делает работу с 16-разрядными программами для пользователя неотличимой от работы с 32-разрядными.
В новой версии можно отметить следующие улучшения:
- Исправления в системе диалогов: Civilization I теперь идёт без каких-либо проблем (раньше были проблемы с памятью);- Поддержка 8-цветных (3bpp) изображений: программы для Win 1.0 теперь могут загружать цветные изображения;
- Извлечение значков из исполняемых файлов Win16 и создание ссылок на них в ярлыках в меню "Пуск" во время установки программ;
- Использование оригинального winhlp32 от Microsoft там где это возможно, иначе используется winhlp32 от проекта Wine;
- Исправление ошибок.
URL: https://github.com/otya128/winevdm
Новость: https://www.opennet.dev/opennews/art.shtml?num=50303
>WineVDM использует наработки проекта Wine.Поддержка Win16 в современном Wine отвратительна. Мало того что ситуация не улучшается, так они, кажется, ломают даже то, что хоть как-то работало.
Но новость хорошая -- возможно это подстегнёт интерес к поддержке Вин16 и дело сдвинется.
Новость как новость. Для улучшения работы виндовс пилят слой совместимости под WinAPI для WinAPI...
А я тебе сходу скажу, что он на базе очень старого вайна, начала 00-х годов.
потому что цели современного вайна сделать хорошо для 64х и 32х битных актуальных, очевидно что если при этом сломается что-то для 16битных приложений блокирующим фактором это не станет.
Почитай вот это: http://www.opennet.dev/opennews/art.shtml?num=24113Суть вот в чём. Есть параметр sysctl под названием vm.mmap_min_addr. Если он равен 0, то:
1. Система может выполнять 16-битные приложения в Wine
2. Система имеет опасную уязвимость, которая позволяет получить rootЕсли параметр равен 65536, то:
1. Система не может выполнять 16-битные приложения в Wine
2. Система не имеет опасной уязвимостиВ комментариях под этой новостью выяснилось, что у людей, использующих актуальную версию Ubuntu (на тот момент 9.10 и 9.04) у части из них параметр равен 65536, а у части 0. Выяснилось, что Wine, устанавливаемый из PPA, переназначал эту переменную, делая её нулём. А те, у кого не был установлен Wine из PPA, имели переменную, равную 65536
Поэтому, если ты хочешь запускать 16-битные приложения, выстави эту переменную как ноль. А когда закончил работать - выстави обратно )) Впрочем, можешь поставить нулём навсегда: это же локальная root-уязвимость (если я не ошибаюсь). И воспользоваться ей можешь только ты сам. А зачем тебе ей пользоваться, если ты и так знаешь пароль root?
Вот инструкция, как сделать: https://www.opennet.dev/tips/1655_wine_photoshop.shtml
В WineVDM поддержка лучше, чем в Wine
А в чем проблема? В процах ведь есть виртуальный режим эмуляции. Чё постоянно ломается обёртка сисвызовов?
микософт не хочет заморачиваться
а так, люди обычно ставят досбокс с вин3.1 и радуются
Нечему в ломаться "обёртке сисвызовов" поскольку её нет.
видимо имелось в виду, что им ненужно писать и поддерживать эмулятор процессора, а нужно только wrapper над сисколами. как же надо кодить, чтобы после обновлений часть функционала падала постоянно?
около 20 лет проекту. видимо при переносе с более старой винды на новую не все удается отладить.
Нет "виртуального режима" в long mode, нечему вызывать врапер, потому и нет врапера. Нужно писать иподдерживать эмулятор.
а как же режим совместимости?
> а как же режим совместимости?Никак.
NTVDM on Win32 uses V86 mode of the CPU for fast code execution which isn't available in x64 long
mode. https://github.com/leecher1337/ntvdmx64Long mode does not support legacy real mode or legacy virtual-8086 mode, and it does not support hardware task switching. (c) AMD64 APM
это кому-то, кроме двинутых олдфагов нужно?
Да.
нахeр?
Попробуй запусти "Перестройку", U95 и кучу других винрарных 16-битных игрушек на 64-битной винде. Без WineVDM не сможешь.
Они же вроде 16 бит вообще выпилили, переложив всё на dosbox?
А dosbox разве может запускать win16 приложения???
Разумеется нет.
А win16 он может запускать?
Да, вполне. Но связка DosBox+Win3.x+собственно программма довольно неудобна.
>WineVDM транслирует вызовы программ, написанных для Win16, в вызовы Win32То есть и для обычной винды подойдёт?
Для обычной винды лучше взять https://github.com/leecher1337/ntvdmx64
Есть ещё http://takeda-toshiya.my.coocan.jp/msdos/(не сравнивал, что лучше)
А еще https://vdos.info/ ...
> http://takeda-toshiya.my.coocan.jp/msdos/URL просто пугает! :)
Ага. Хады, дарагой, на my.coocan! :)
Wine под Windows который позволяет запускать программы для Windows в Windows. Дожили. :-)
Ты только сейчас узнал, что Wine уже лет 20 работает под Виндой и с ним запускают старкрафты под десяточкой? So slow.
> Ты только сейчас узнал, что Wine уже лет 20 работает под Виндой
> и с ним запускают старкрафты под десяточкой? So slow.Ага. Боюсь я не так давно в теме (linux) чтоб об этом знать.
Странно звучит "дожили", если еще не успел пожить в теме Linux.
> Странно звучит "дожили", если еще не успел пожить в теме Linux.Я пытался пошутить, как всегда зря.
> Исправления в системе диалогов: Civilization I теперь идёт без каких-либо проблем (раньше были проблемы с памятью);Она же под ДОС была всегда?
были версии для виндовс. просто тогда не были популярны, народ в начале 90х вообще редко виндой пользовался(если пользовался вообще)
Единственное достоинство "Civilization for Windows" -- простая загрузка сохранённых игр. Но довольно скоро вышла Civilization 2, которая по всем параметрам была лучше.
Там намного лучше графика, управление мышкой, поддержка любого разрешения экрана.
А то win1/2/3 не просто обёртки над dos'ом)
Как минимум наличие расширенного апи, новые форматы исполняемых файлов, которые база не умеет, в поздних версиях даже новые режимы доступа к дискам и механизмы управления памятью...
Они не разу не обертки.
Запускались из-под дос-а, но дальше, фактически, работали без него.
Там все другое - формат файлов, взаимодействие межпроцессорное и вообще изкоробочная многозадачность, API...
— Папа, покажи, что такое многозадачность Windows.
— Подожди, сынок, щас дискетка доформатируется...
Обнаружен баянист-виртуоз.
тун-ДЫН(?)
Многозадачность в винде давно есть, клоун...
Расскажи теперь, когда были дискетки, и как давно ты цирковое окончил.
Более-менее нормальная многозадачность (да и вообще реальное подобие серверной системы) в винде появилась только с приходом разработчиков из Диджитал в WinNT v3.51!
А это было как раз ради корректной эмуляции дос-приложений. Тут подробности: https://blogs.msdn.microsoft.com/oldnewthing/20090102-00/?p=...
Написать они горазды что угодно, кроме ядра NT, которое пришлось заказывать специалистам на стороне. Вот с тем ядром как раз и стало можно дискетку форматировать. Совпадение.
> Написать они горазды что угодно, кроме ядра NT, которое пришлось заказывать специалистам
> на стороне. Вот с тем ядром как раз и стало можно
> дискетку форматировать. Совпадение.Это связано исключительно с отказом от совместимости с DOS-приложениями в NT. Т.к. они запускаются под эмуляцией, без доступа к реальному биосу, то и потребность блокировать ОС при форматировании ушла.
>> Написать они горазды что угодно, кроме ядра NT, которое пришлось заказывать специалистам
>> на стороне. Вот с тем ядром как раз и стало можно
>> дискетку форматировать. Совпадение.
> Это связано исключительно с отказом от совместимости с DOS-приложениями в NT. Т.к.
> они запускаются под эмуляцией, без доступа к реальному биосу, то и
> потребность блокировать ОС при форматировании ушла.Больше верю не словам пиар-менеджеров, а комментариям в исходниках Windows "we are morons".
Это называется "кооперативная" многозадачность. Все добровольно подчиняются правилам. Если кто-то нарушает — отравляет жизнь всем остальным. В отличии от более ресурсоёмкой "вытесняющей" многозадачности Win32 и Линукса, когда каждому гарантировано процессорное время.
>Запускались из-под дос-а, но дальше, фактически, работали без него.В досе любая программа фактически работает без него, за исключением обработки некоторых прерываний
>>Запускались из-под дос-а, но дальше, фактически, работали без него.
> В досе любая программа фактически работает без него, за исключением обработки некоторых
> прерыванийЭээ что? И как программы по-вашему работают с файловой системой системой, например? Да и голые API BIOS'а были довольно убогими, ДОС их прилично расширял.
Так, знаете, можно сказать что и в линуксе любая программа фактически работает без него, за исключением дерганья сисколлов через прерывания иногда.
> Она же под ДОС была всегда?была и под виндовс. с hi-res графикой
Ну Win16 api наверно проще, чем то что было после. Может и совместимость с программами будет лучше.
То есть берём любую вин16 программу и не глядя запускаем...
И никаких глюков?
Хочу себе Linux с закосом под win 3.11. Можно сделать, чтобы wine была основным тулкитом и Libc, заменяя их.
Базовые приложения и DE по максимуму выдрать из 3.11 или nt3.
Можно даже браузер попытаться перекомпилировать под 16 бит, только как заставить его адресовать нужное кол-во памяти?Ну а снизу - Lfs, Bisybox, autoexec.sh для запуска немногочисленных сервисов (и сразу дисплейного сервера), порт Dos Navigator кажется есть под Linux.
И легкое безразличие к Unix Filesystem иерархии.
А как оно запускает их под 64 разрядной ОС?
Разве v86 режим можно использовать там?
Нельзя: https://www.xylos.com/en/corporate/blog/legacy-16-bit-applic...Но это не отменяет возможности сделать иначе. Например, тут http://www.columbia.edu/~em36/ntvdmx64.html пишут:
Microsoft's NTVDM uses a licensed version of the SoftPC emulation software by Insignia. The original NTVDM, written for Windows NT, operated differently when run on Intel's x86 hardware and on alternate hardware, including VAX VMS, DEC Alpha, and Mips. SoftPC included a software-based CPU (CCPU) that could emulate an Intel 80386 processor. For performance reasons, when running under an Intel processor, the emulated CPU was not used; instead, the V86 mode of the hardware CPU was used, via a kernel interface which Microsoft called "Monitor". So the CCPU was used on non-x86 architectures and Monitor was used on x86. Leecher1337's NTVDMx64 modifies the original code so that the CCPU is used when running under 64-bit Windows, because Intel processors have no V86 support in the "long mode" used by 64-bit Windows.
Те в весьма распространенном NTVDM из любой 32-х битной винды NT уже был заложен эмулятор процессора, просто на x86 с v86 он не был активен. Но если активировать, то и v86 уже не нужен...
В топике, думаю, что-то подобное. Эмулятор процессора в комплекте. А иначе-то никак!
Оно использует эмулятор процессора.На процессорах Intel можно также подключить специальный драйвер, чтобы 16-битные программы работали нативно.
Очень сырой продукт. У меня ничего из win16 нормально не запустилось.
Меня прям любопытство разбирает. А что вы пытались запустить-то? :)
Ну всё скачивается из интернета, так что он много что мог найти.
FoxPro 2.5 и программу под него написанную
Прошу прощения, зря я гнал на продукт, и фокспро и программа замечательно работают! Будем пользовать.
А так приходилось создавать виртуалку, в ней ставить вин98, а в ней уже работать. Тормозило всё сильно, а сейчас летает!!!Спасибо авторам!
>Исправления в системе диалогов: Civilization I теперь идёт без каких-либо проблемСрочно отпиливаем от видющек лишнюю память и идем играть в первую Цивилизацию...
Излишки памяти вы можете высылать мне по следующему адресу:
М...(NO CARRIER, CODE 07)
> Civilization IУ меня и в мыслях бы не было запускать её под вайном.
Или в dosbox или под эмулем амиги, но про оффтопную версию я даже не знал.