Compatibility mode — различия между версиями

Материал из Русский WINE
Перейти к: навигация, поиск
(Статус реализации)
(Поддержка API NT 6.0)
 
(не показано 40 промежуточных версии 2 участников)
Строка 3: Строка 3:
 
=Режим совместимости=
 
=Режим совместимости=
  
Некоторые программы в более новых версиях Windows работают некорректно или не работают вообще. Это происходит потому, что более новая версия функции API отличается от старой.
+
'''Application Compatibility Framework''' (''фреймворк совместимости приложений'') - механизм, предназначенный для работы с ошибками в приложениях. После  обновления операционной системы некоторые приложения внезапно перестают работать. Общей причиной этого является то, что приложение используют в своей работе исправленную ошибку в операционной системе. И после исправления данной ошибки приложение, без вмешательства автора, больше не будет работать. Поскольку автор может быть недоступен для создания обновления (или может даже не знать о проблеме), в приложении Application Compatiblity Framework есть средства для устранения распространенных ошибок.
  
Для решения данной проблемы в Windows существует режим совместимости, который можно выбрать для каждой программы. Выбрав конкретную версию системы и определенные параметры, можно запустить программу, если по умолчанию она не запускается.
+
Наиболее известной для пользователя является вкладка «Совместимость», находящаяся в диалоговом окне свойств.
  
Такая же функция присутствует и в Wine. С помощью '''Winecfg''' можно выбрать, какую версию Windows API будет имитировать Wine для всей "системы" или для конкретной программы. Так же Wine может эмулировать виртуальный рабочий стол (например, для полноэкранного приложения) и выбрать какую библиотеку ему использовать: собственную, или стороннюю. Например, mfc42.dll: из Wine, или из установленного пользователем Microsoft Visual C++ 2008 Redistributable Package.
+
<!-- Такая же функция присутствует и в Wine. С помощью '''Winecfg''' можно выбрать, какую версию Windows API будет имитировать Wine для всей "системы" или для конкретной программы. Так же Wine может эмулировать виртуальный рабочий стол (например, для полноэкранного приложения) и выбрать какую библиотеку ему использовать: собственную, или стороннюю. Например, mfc42.dll: из Wine, или из установленного пользователем Microsoft Visual C++ 2008 Redistributable Package.
  
В ReactOS, которая на данный момент стремится к Windows NT 5.2 (Windows Server 2003), пока данная функция отсутствует и система, ни смотря на то, что в ней для реализации Windows API используется код Wine, данная функция отсутствует. Это потому, что реализация режима совместимости Wine отличается от NT-систем (например, некорректными цепочками вызовов в kernel32/ntdll [http://winehq.org.ru/ARWINSS]). Для всех программ она идентифицируется как Windows Server 2003 SP2 и несовместимые с этой системой приложения даже не запустятся.
+
В ReactOS, которая на данный момент стремится к Windows NT 5.2 (Windows Server 2003), пока данная функция отсутствует и система, ни смотря на то, что в ней для реализации Windows API используется код Wine, данная функция отсутствует. Это потому, что реализация режима совместимости Wine отличается от NT-систем (например, некорректными цепочками вызовов в kernel32/ntdll [http://winehq.org.ru/ARWINSS]). Для всех программ она идентифицируется как Windows Server 2003 SP2 и несовместимые с этой системой приложения даже не запустятся. -->
 +
В ReactOS аналог данной функции разрабатывает Mark Jansen.
  
==Изучение и реализация системы управления версиями для ReactOS==
+
==Поддержка API NT 6.0==
 
*{{JIRA|11288}} - В настоящее время ReactOS нацелен на совместимость с Windows Server 2003. Разработчик планирует реализовать механизм для использования API-интерфейсов Windows NT 6.0 и более поздних, при этом чтобы в ReactOS оставалась среда Windows Server 2003.
 
*{{JIRA|11288}} - В настоящее время ReactOS нацелен на совместимость с Windows Server 2003. Разработчик планирует реализовать механизм для использования API-интерфейсов Windows NT 6.0 и более поздних, при этом чтобы в ReactOS оставалась среда Windows Server 2003.
 
**{{JIRA|11289}} - Исследование и документирование параметров совместимости Windows
 
**{{JIRA|11289}} - Исследование и документирование параметров совместимости Windows
Строка 18: Строка 19:
 
**{{JIRA|11292}} - Реорганизация ядра Win32 API
 
**{{JIRA|11292}} - Реорганизация ядра Win32 API
 
**{{JIRA|11293}} - Исследование требований ядра для NT 6+ API пользовательского режима
 
**{{JIRA|11293}} - Исследование требований ядра для NT 6+ API пользовательского режима
 +
 +
----
 +
 +
{{JIRA|11292}} - Реорганизация ядра Win32 API - [http://github.com/reactos/reactos/pull/397 PR-397] Timo Kreuzer реализует поддержку экспорта версий.
 +
 +
Реорганизации API со следующими целями:
 +
*Использование статических библиотек / API-наборов [http://ru.wikipedia.org/wiki/MinWin MinWin] в качестве основы
 +
*Комбинирование (объединение общеиспользуемых API наподобие kernel32/advapi32/... в единую DLL, типа MinWin API используемую в качестве основы)
 +
*Возможность тестирования DLL в Windows (добавление пользовательских целей для автономных полных DLL на поддерживаемую целевую версию: kernel32_0x502 для 2k3)
 +
*Управление конкретными версиями API
 +
*DLL Naming (пользовательские имена DLL для основных DLL)
 +
 +
''"Идея состоит в создании наборов «оберточных DLL», по одному для каждой версии ОС. Каждая из них обращается к "базовой версии" (например, «roskernelbase.dll»), за исключением тех, которые требуют специальной обработки. Все это можно сделать, не создавая полдюжины копий спек-файлов."'' - '''Timo Kreuzer''', PR-397
 +
 +
===Дистрибутив NT 6===
 +
Участник сообщества The_DarkFire [https://chat.reactos.org/reactos/pl/hbqmqftoepf4pxtoh1u4r1ofgy делает] [https://github.com/Ring-0-Productions/reactos/tree/PostReset-ReactOSLongHorn проект] по созданию ReactOS с функциями NT 6.1 - ReactOS Longhorn.
 +
 +
Наработки проекта по состоянию на 18.04.23 можно скачать по ссылке: https://disk.yandex.ru/d/4OJEHFtqnHG0mw
  
 
==Реализация режима совместимости==
 
==Реализация режима совместимости==
Строка 38: Строка 57:
 
В более новых версиях Windows реализована в виде расширения оболочки (acppage.dll). Использует функции SetPermLayerState, SdbGetPermLayerKeys.
 
В более новых версиях Windows реализована в виде расширения оболочки (acppage.dll). Использует функции SetPermLayerState, SdbGetPermLayerKeys.
  
На данный момент вкладка реализована вместе с функциональностью позволяющей применить необходимые «слои», но отключена.
+
На данный момент вкладка реализована вместе с функциональностью позволяющей применить необходимые «слои».
 
*<del>{{JIRA|10375}}</del>
 
*<del>{{JIRA|10375}}</del>
  
 
===Интеграция apphelp===
 
===Интеграция apphelp===
Интеграция apphelp в создание процесса, COM, MSI и загрузку драйверов.
+
Интеграция apphelp в <s>создание процесса</s>, COM, MSI и загрузку драйверов.
 
*{{JIRA|10368}}
 
*{{JIRA|10368}}
 
**3 июня 2017 года была начата интеграция apphelp в [http://jira.reactos.org/browse/CORE-13284 создание процесса]
 
**3 июня 2017 года была начата интеграция apphelp в [http://jira.reactos.org/browse/CORE-13284 создание процесса]
 
***27 июня был опубликован первый патч
 
***27 июня был опубликован первый патч
 
***29 июня года была реализована функция SdbpMatchExe
 
***29 июня года была реализована функция SdbpMatchExe
 +
***1 июля произведена интеграция apphelp в создание процесса
  
 
===Инфраструктура Shim===
 
===Инфраструктура Shim===
Реализует базовую инфраструктуру для эмуляции различных API.
+
Реализует базовую инфраструктуру для работы со слоями совместимости.
 
*{{JIRA|10370}}
 
*{{JIRA|10370}}
  
Строка 55: Строка 75:
 
*{{JIRA|10369}}
 
*{{JIRA|10369}}
 
Предоставляет:
 
Предоставляет:
*список "эмулируемых" версий API. (<del>{{JIRA|11299}}</del>)
+
*список "эмулируемых" версий API (''VersionLie'') (<del>{{JIRA|11299}}</del>)
 
*настройку разрешения экрана/глубины цвета/отключение тем (<del>{{JIRA|11927}}</del>)
 
*настройку разрешения экрана/глубины цвета/отключение тем (<del>{{JIRA|11927}}</del>)
 +
*игнорировать песочницу Chrome {{JIRA|13409}}
 +
*обработчик исключений WindowProc {{JIRA|12244}}
  
 
===ShimLib===
 
===ShimLib===
*{{JIRA|11329}}
+
*<s>{{JIRA|11329}}</s>
 
Выполняет вспомогательные функции для регистрации регулировочных слоев и для обработки общих задач.
 
Выполняет вспомогательные функции для регистрации регулировочных слоев и для обработки общих задач.
  
Первый коммит - [http://code.reactos.org/changelog/reactos?cs=73461 r73461].
+
Первый коммит - [http://github.com/reactos/reactos/commit/3da415c457d68745c20dc32c6be37bfe8d83bfb1 r73461].
  
 
===Данные Shim в ярлыках===
 
===Данные Shim в ярлыках===
Строка 69: Строка 91:
  
 
==Статус реализации==
 
==Статус реализации==
*5 сентября 2015 года в ядре [http://code.reactos.org/changelog/reactos?cs=69022 был реализован] компонент '''NtApphelpCacheControl''' (<del>{{JIRA|9914}}</del>)
+
*5 сентября 2015 года в ядре [http://github.com/reactos/reactos/commit/2565dcba2634cdf76559f7e85fcf91596a1ba1cc был реализован] компонент '''NtApphelpCacheControl''' (<del>{{JIRA|9914}}</del>)
*31 марта 2016 года [http://code.reactos.org/changelog/reactos?cs=71084 была добавлена] библиотека '''apphelp.dll''' (<del>{{JIRA|10367}}</del>)
+
*31 марта 2016 года [http://github.com/reactos/reactos/commit/3a5f8b5d7eee1d38d1484a8033a6614399e6db08 была добавлена] библиотека '''apphelp.dll''' (<del>{{JIRA|10367}}</del>)
*28 мая 2016 года [http://code.reactos.org/changelog/reactos?cs=71442 был добавлен] список "эмулируемых" версий API (<del>{{JIRA|11299}}</del>)
+
*28 мая 2016 года [http://github.com/reactos/reactos/commit/cc1a5a5932b1f599459948cdecd0214d010933ce был добавлен] список "эмулируемых" версий API (<del>{{JIRA|11299}}</del>)
*16 декабря 2016 года [http://code.reactos.org/changelog/reactos?cs=73462 была] [http://code.reactos.org/changelog/reactos?cs=73463 добавлена] [http://code.reactos.org/changelog/reactos?cs=73464 настройка] '''разрешения экрана'''/'''глубины цвета'''/'''отключения тем''' (<del>{{JIRA|11927}}</del>)
+
*16 декабря 2016 года [http://github.com/reactos/reactos/commit/b7add401e93e88e15f10a0f3108ae93e35a26e72 была] [http://github.com/reactos/reactos/commit/f3f43843fe5a102367bd581b90f28323bf271ff3 добавлена] [http://github.com/reactos/reactos/commit/71d5b09683e6f97b36aa9fe4ae8c32345205770b настройка] '''разрешения экрана'''/'''глубины цвета'''/'''отключения тем''' (<del>{{JIRA|11927}}</del>)
*22 апреля 2017 года - [http://code.reactos.org/changelog/reactos?cs=74388 реализация] пользовательского выбора режима совместимости в виде расширения оболочки '''acppage'''
+
*22 апреля 2017 года - [http://github.com/reactos/reactos/commit/20756892b7414163fd56df7de1d70dbf42ff5257 реализация] пользовательского выбора режима совместимости в виде расширения оболочки '''acppage'''
*19 мая 2017 года [http://code.reactos.org/changelog/reactos?cs=74601 была добавлена] начальная реализация интеграции apphelp в создание процесса, COM, MSI и загрузку драйверов ({{JIRA|10368}})
+
*19 мая 2017 года [http://github.com/reactos/reactos/commit/bbe72b0163cfee85b8cdd63f64b31fc459ccb26e была добавлена] начальная реализация интеграции apphelp в создание процесса, COM, MSI и загрузку драйверов ({{JIRA|10368}})
*29 июня 2017 года [http://code.reactos.org/changelog/reactos?cs=75238 была реализована] функция '''SdbpMatchExe''', позволяющая сопоставить файлы/приложения в соответствии с параметрами ({{JIRA|13284}})
+
*29 июня 2017 года [http://github.com/reactos/reactos/commit/af9601337012b0e6338dec15bdad7bede9e6ef53 была реализована] функция '''SdbpMatchExe''', позволяющая сопоставить файлы/приложения в соответствии с параметрами ({{JIRA|13284}})
*1 июля 2017 года [http://code.reactos.org/changelog/reactos?cs=75256 была полностью реализована] вкладка для проводника
+
*1 июля 2017 года:
**Так же было реализовано большинство необходимых функций apphelp sdb. Остальные будут реализованы когда понадобятся.
+
**[http://github.com/reactos/reactos/commit/1fa3c1a922e132061dda703b00cca986d8695271 была полностью реализована] вкладка для проводника
 +
**было реализовано большинство необходимых функций apphelp sdb. Остальные будут реализованы когда понадобятся
 +
**[http://github.com/reactos/reactos/commit/711a1cb3414768c59419bb0454a1265403f7a5a6 произведена] интеграция [http://jira.reactos.org/browse/CORE-13284 apphelp] в создание процесса
 +
*30 июля 2017 года была завершена разработка ShimLib
 +
*17 августа 2017 года режим совместимости [http://github.com/reactos/reactos/commit/9d8fe6f2381db5c877cc9d1858fae209bb77eb97 был включен] по-умолчанию (при этом он не может применяться на системные файлы - в '''system32''' и '''WinSxS''')
 +
*10 января 2018 был реализован [http://github.com/reactos/reactos/commit/63a3a2cbb8d67c1afe8b283880e75e0e5b5bed01 запуск] [http://github.com/reactos/reactos/pull/273 NT6-приложений] (информация в [http://www.reactos.org/archives/public/ros-general/2018-January/002984.html списке рассылки]) (Colin Finck)
 +
*24 февраля 2018:
 +
**были реализованы ''VersionLie'' для '''WIN8''' и '''WIN81'''[http://github.com/reactos/reactos/commit/9b55e647fae5c899f22699a6f432ae44e2c11146][http://github.com/reactos/reactos/commit/2ffc6846996748c7d81bd569ba44ffd8bf858bc4]
 +
**в acppage добавлены системы NT6+[http://github.com/reactos/reactos/commit/9b55e647fae5c899f22699a6f432ae44e2c11146]
 +
*2019
 +
**начата работа по поддержке пользовательских установщиков shim
 +
**приложения могут получить версии Windows 7 SP1, 8 или 8.1
 +
**исправлены некоторые сбои движка shim[https://reactos.org/wiki/Community_Changelog-0.4.12]
 +
*23 августа 2019 - [https://github.com/reactos/reactos/pull/1872 PR-1872] - Система управления версиями для DLL
 +
*28 мая 2020 - [http://github.com/reactos/reactos/pull/2872 PR-2872] - Начальная реализация движка Kernel Shim Engine
 +
 
 +
==База совместимости==
 +
Приложения работающие через режим совместимости:
 +
*VMware Horizon Client for 32-bit Windows[http://github.com/reactos/reactos/commit/1eee5db1a53b0ff65a7bbe938d5be82f0aa7c845][http://vk.com/wall-1086956_45871]
 +
*Windows Media Player 6.4[http://vk.com/wall-1086956_50195]
 +
*Windows Media Player 7[http://vk.com/wall-1086956_50259]
 +
*Krita 3.2.1.0[http://reactos.org/forum/viewtopic.php?f=2&t=10972&start=1125#p129165]
 +
*QuickTime Player 7.7.9[http://reactos.org/forum/viewtopic.php?f=2&t=10972&start=1125#p129166]
 +
*Sound Forge Pro 11.0 build 299[http://www.reactos.org/forum/viewtopic.php?f=2&t=10972&start=1140#p131866]
  
==Управление через реестр==
+
==*_vista-библиотеки==
По адресу ''HKLM\Software\Policies\Microsoft\Windows\AppCompat'' находятся параметры, которыми управляется режим совместимости:
+
В исходном коде ReactOS есть библиотеки advapi32_vista, kernel32_vista, ntoskrnl_vista и ntdll_vista. Может показаться, что они существуют для реализации vista-API в ReactOS, однако, это не так. Они предназначены для предоставления необходимых функций для линкинга '''[[http://ravesli.com/urok-3-vvedenie-v-razrabotku-programmnyh-produktov/ i]]''' используемых Wine-библиотек.
*DWORD:DisableEngine
+
*DWORD:DisablePropPage
+
*DWORD:DisableWizard
+
*DWORD:LogAppHelpEvents
+
*DWORD:VDMDisallowed
+
  
 
==Ссылки==
 
==Ссылки==
*[http://reactos.org/forum/viewtopic.php?f=2&t=14589 Обсуждение на форуме]
+
*Обсуждение на форуме: [http://reactos.org/forum/viewtopic.php?f=2&t=14589], [http://reactos.org/forum/viewtopic.php?f=2&t=16621];
 
*[http://www.reactos.org/pipermail/ros-dev/2015-March/017216.html Управление версиями в списке рассылки]
 
*[http://www.reactos.org/pipermail/ros-dev/2015-March/017216.html Управление версиями в списке рассылки]
 
*[http://github.com/Skulltrail192/One-Core-Api One-Core-Api] - слой совместимости NT6 для Windows XP/2003 на базе Wine и ReactOS
 
*[http://github.com/Skulltrail192/One-Core-Api One-Core-Api] - слой совместимости NT6 для Windows XP/2003 на базе Wine и ReactOS
 
*[http://adolfintel.com/?p=wined3d/index.frag Wined3D], [http://yadi.sk/d/Fh2ORD7KsoU3T] - обертка основанная на Wine, транслирующая вызовы DirectX 1-11 в OpenGL, являющаяся полной реализацией DirectX для старых версий Windows.
 
*[http://adolfintel.com/?p=wined3d/index.frag Wined3D], [http://yadi.sk/d/Fh2ORD7KsoU3T] - обертка основанная на Wine, транслирующая вызовы DirectX 1-11 в OpenGL, являющаяся полной реализацией DirectX для старых версий Windows.
 +
*[http://technet.microsoft.com/en-us/library/bb457032.aspx О режиме совместимости на сайте Microsoft (англ.)]
 +
*[http://reactos.org/wiki/User:Learn_more/Appcompat Режим совместимости на официальной вики]
 
{{ReactOS}}
 
{{ReactOS}}

Текущая версия на 22:50, 18 апреля 2023

Режим совместимости в Wine

Режим совместимости

Application Compatibility Framework (фреймворк совместимости приложений) - механизм, предназначенный для работы с ошибками в приложениях. После обновления операционной системы некоторые приложения внезапно перестают работать. Общей причиной этого является то, что приложение используют в своей работе исправленную ошибку в операционной системе. И после исправления данной ошибки приложение, без вмешательства автора, больше не будет работать. Поскольку автор может быть недоступен для создания обновления (или может даже не знать о проблеме), в приложении Application Compatiblity Framework есть средства для устранения распространенных ошибок.

Наиболее известной для пользователя является вкладка «Совместимость», находящаяся в диалоговом окне свойств.

В ReactOS аналог данной функции разрабатывает Mark Jansen.

Поддержка API NT 6.0

  • CORE-11288 - В настоящее время ReactOS нацелен на совместимость с Windows Server 2003. Разработчик планирует реализовать механизм для использования API-интерфейсов Windows NT 6.0 и более поздних, при этом чтобы в ReactOS оставалась среда Windows Server 2003.
    • CORE-11289 - Исследование и документирование параметров совместимости Windows
    • CORE-11290 - Убедиться в том, что загрузчик соблюдает совместимость
    • CORE-11291 - Создание спек-файлов для основных библиотек Windows 7
    • CORE-11292 - Реорганизация ядра Win32 API
    • CORE-11293 - Исследование требований ядра для NT 6+ API пользовательского режима

CORE-11292 - Реорганизация ядра Win32 API - PR-397 Timo Kreuzer реализует поддержку экспорта версий.

Реорганизации API со следующими целями:

  • Использование статических библиотек / API-наборов MinWin в качестве основы
  • Комбинирование (объединение общеиспользуемых API наподобие kernel32/advapi32/... в единую DLL, типа MinWin API используемую в качестве основы)
  • Возможность тестирования DLL в Windows (добавление пользовательских целей для автономных полных DLL на поддерживаемую целевую версию: kernel32_0x502 для 2k3)
  • Управление конкретными версиями API
  • DLL Naming (пользовательские имена DLL для основных DLL)

"Идея состоит в создании наборов «оберточных DLL», по одному для каждой версии ОС. Каждая из них обращается к "базовой версии" (например, «roskernelbase.dll»), за исключением тех, которые требуют специальной обработки. Все это можно сделать, не создавая полдюжины копий спек-файлов." - Timo Kreuzer, PR-397

Дистрибутив NT 6

Участник сообщества The_DarkFire делает проект по созданию ReactOS с функциями NT 6.1 - ReactOS Longhorn.

Наработки проекта по состоянию на 18.04.23 можно скачать по ссылке: https://disk.yandex.ru/d/4OJEHFtqnHG0mw

Реализация режима совместимости

CORE-10366

NtApphelpCacheControl

Функция ядра NtApphelpCacheControl используемая AppHelp, чтобы сохранить список (200) недавно запущенных приложений в оперативной памяти для более быстрого поиска. При выходе список приложений сохраняется в реестре, а при загрузке подгружается обратно.

Реализация apphelp sdb

Реализация большинства SDB * API-интерфейсов, связанных с чтением и записью файлов SDB.

SDB файлы - базы данных совместимости приложений, содержащие информацию об известных "плохих приложениях", а также список «слоев», которые должны применяться к этим приложениям.

В качестве основы используется: http://github.com/krofna/wine/tree/master/dlls/apphelp

  • CORE-10367
  • в настоящий момент ведется работа над данным компонентом
Вкладка в свойствах ярлыка

Вкладка в explorer

В более новых версиях Windows реализована в виде расширения оболочки (acppage.dll). Использует функции SetPermLayerState, SdbGetPermLayerKeys.

На данный момент вкладка реализована вместе с функциональностью позволяющей применить необходимые «слои».

Интеграция apphelp

Интеграция apphelp в создание процесса, COM, MSI и загрузку драйверов.

  • CORE-10368
    • 3 июня 2017 года была начата интеграция apphelp в создание процесса
      • 27 июня был опубликован первый патч
      • 29 июня года была реализована функция SdbpMatchExe
      • 1 июля произведена интеграция apphelp в создание процесса

Инфраструктура Shim

Реализует базовую инфраструктуру для работы со слоями совместимости.

Создание стандартных значений Shim

Предоставляет:

  • список "эмулируемых" версий API (VersionLie) (CORE-11299)
  • настройку разрешения экрана/глубины цвета/отключение тем (CORE-11927)
  • игнорировать песочницу Chrome CORE-13409
  • обработчик исключений WindowProc CORE-12244

ShimLib

Выполняет вспомогательные функции для регистрации регулировочных слоев и для обработки общих задач.

Первый коммит - r73461.

Данные Shim в ярлыках

Применение окружения совместимости не для *.exe-файла, а для ярлыка.

Статус реализации

  • 5 сентября 2015 года в ядре был реализован компонент NtApphelpCacheControl (CORE-9914)
  • 31 марта 2016 года была добавлена библиотека apphelp.dll (CORE-10367)
  • 28 мая 2016 года был добавлен список "эмулируемых" версий API (CORE-11299)
  • 16 декабря 2016 года была добавлена настройка разрешения экрана/глубины цвета/отключения тем (CORE-11927)
  • 22 апреля 2017 года - реализация пользовательского выбора режима совместимости в виде расширения оболочки acppage
  • 19 мая 2017 года была добавлена начальная реализация интеграции apphelp в создание процесса, COM, MSI и загрузку драйверов (CORE-10368)
  • 29 июня 2017 года была реализована функция SdbpMatchExe, позволяющая сопоставить файлы/приложения в соответствии с параметрами (CORE-13284)
  • 1 июля 2017 года:
  • 30 июля 2017 года была завершена разработка ShimLib
  • 17 августа 2017 года режим совместимости был включен по-умолчанию (при этом он не может применяться на системные файлы - в system32 и WinSxS)
  • 10 января 2018 был реализован запуск NT6-приложений (информация в списке рассылки) (Colin Finck)
  • 24 февраля 2018:
    • были реализованы VersionLie для WIN8 и WIN81[1][2]
    • в acppage добавлены системы NT6+[3]
  • 2019
    • начата работа по поддержке пользовательских установщиков shim
    • приложения могут получить версии Windows 7 SP1, 8 или 8.1
    • исправлены некоторые сбои движка shim[4]
  • 23 августа 2019 - PR-1872 - Система управления версиями для DLL
  • 28 мая 2020 - PR-2872 - Начальная реализация движка Kernel Shim Engine

База совместимости

Приложения работающие через режим совместимости:

  • VMware Horizon Client for 32-bit Windows[5][6]
  • Windows Media Player 6.4[7]
  • Windows Media Player 7[8]
  • Krita 3.2.1.0[9]
  • QuickTime Player 7.7.9[10]
  • Sound Forge Pro 11.0 build 299[11]

*_vista-библиотеки

В исходном коде ReactOS есть библиотеки advapi32_vista, kernel32_vista, ntoskrnl_vista и ntdll_vista. Может показаться, что они существуют для реализации vista-API в ReactOS, однако, это не так. Они предназначены для предоставления необходимых функций для линкинга [i] используемых Wine-библиотек.

Ссылки

ReactOS
Search.png
Доклады
О ReactOSARWINSSЧеЗа
Информация Новости Выпуски новостейПереводы блоговНовости проектаВидеоReactOS на ХабреUSB от Вадима Галянта
Разработка Руководство по программированиюОтсутствующая функциональностьВетви разработкиКомпоненты системыReactOS и WineПлан работRoadmap ядра by VgalРазработчикиСовместимость с dll WindowsНаиболее значимые изменения за годИспользуемые проектыGoogle Summer of CodeИзвестные проблемы
Порты AMD64ARMXboxPowerPC
Компоненты Файловые системыРежим совместимостиОтчеты об ошибкахПечатьUSBЯдро
Загрузчик Восстановление MBRЗагрузка из GRUBПараметры загрузки
Прочее ARWINSSПриложения в ReactOSОформление ReactOSКоординаторы"Пасхальные яйца"Монетизация
Другое Типы ядерFreeWin95
Помощь
RAM-диск ReactOS по PXEс жесткого диска
Разработка Стиль написания кодаСтандарты RC-файловРабота с документациейВенгерская нотацияGNU Indent • [ Subversion : ветвислияниеиспользование TortoiseSVN ] • Основы переводаОтправка патчей
Репорты Отладка в VirtualBoxОтладка на экранДобавление программы в менеджер приложенийОтправка отчетов
Отладка Com0comGDBKdbgRossym.gdbRoswin.gdbWinDBGРуководство по WinDBGВключение трассировки ядраКоды DPRINTУдалённый отладчик ReactOS
Сборка CMakeRBuildФайлы RBuildАвтоматическое копирование файловСборка MINGW-w64Сборка модулейСреда сборки
Тестирование VirtualBoxVMwareQEMUHyper-VНеобходимый объём дискаПеренос файлов на виртуальный дискУстановка ReactOSУстановка драйверов
Сеть Общие папкиSambaNFS
Игры Установка DirectPlay
Обновление ReactOSЗагрузочная флешкаЧем можно помочь проектуСоздание нового пользователяЗвук и сеть в VirtualBoxСъемка и публикация видеоIRC-каналСторонние компонентыFAQReactOS как рабочая станцияReactOS и UEFI
Обзоры ОболочкаNTVDMWOWCommunity EditionИстория сайтаReactOS ServerКриптографияПО времен XP