ROS and Wine — различия между версиями
(→Синхронизация с Wine) |
|||
Строка 9: | Строка 9: | ||
==Синхронизация с Wine== | ==Синхронизация с Wine== | ||
− | В ReactOS периодически проводятся синхронизации с кодовой базой Wine. | + | В ReactOS периодически проводятся синхронизации с кодовой базой Wine. Сейчас [[ROS used projects|используется]] код Wine 2.9. [http://www.winehq.org/ Текущая] версия Wine 2.13. |
*[http://jira.reactos.org/browse/CORE-12409 пример] | *[http://jira.reactos.org/browse/CORE-12409 пример] | ||
*[http://jira.reactos.org/issues/?jql=issuetype%20%3D%20Task%20AND%20text%20~%20%22Syncing%20ReactOS%20with%20Wine%20Staging%22%20ORDER%20BY%20updated%20DESC История синхронизаций] | *[http://jira.reactos.org/issues/?jql=issuetype%20%3D%20Task%20AND%20text%20~%20%22Syncing%20ReactOS%20with%20Wine%20Staging%22%20ORDER%20BY%20updated%20DESC История синхронизаций] |
Версия 22:07, 24 июля 2017
ReactOS и Wine
В основном, из проекта Wine ReactOS берет реализацию библиотек пользовательского режима. Где-то разработчики Wine предоставляют свои патчи, где-то наоборот - разработчики ReactOS отправляют наработки в Wine. Тем не менее, из-за архитектурных различий, возникающих из-того, что Wine ориентирован на Linux, некоторые из DLL-библиотек не могут быть использованы в ReactOS без предварительных модификаций.
Например, kernel32.dll и Gdi32.dll должны быть разделены, так как ReactOS перенаправляет их вызовы к своему NT-подобному ядру, а версии Wine к ядру Linux и X-серверу соответственно.
В ноябре 2009 были предприняты усилия для доведения архитектуры ReactOS ближе к Wine для того, чтобы больше их кода могло быть использовано без изменений. Это делается в рамках проекта ARWINSS.
Синхронизация с Wine
В ReactOS периодически проводятся синхронизации с кодовой базой Wine. Сейчас используется код Wine 2.9. Текущая версия Wine 2.13.
Wine и хаки
Для работы многих программ разработчики Wine используют хаки. В конце ноября-декабре 2016 года при реализации поддержки Word 2010 Hermes Belusca выявил один из них.
Код реализации реестра Wine позволяет любому создавать прямые непостоянные подразделы (которые не хранятся в файле) в HKEY_USERS (это запрещено в реальной реализации NT, или в ReactOS, поскольку HKEY_USERS представляет собой виртуальный ключ реестра, в соответствии с которым загружаются ключи реального реестра). Как следствие, когда установщик Word 2010 пытается создать/открыть раздел под HKEY_USERS\S-1-5-20, который не существует, этот ключ создается на лету, позволяя инсталятору продолжить работу и в конечном итоге добиться успеха. Тем не менее, как только программа установки Word 2010 завершается (и выходит из Wine server), эти ключи реестра удаляются. Этот факт был подтвержден Sylvain Petreolle. Это может показаться приемлемым для Wine, но этот хак не приемлем для ReactOS: вместо этого будет реализован необходимый функционал.
ReactOS и ядро
Так же некоторые программы могут не работать в ReactOS из-за ошибок и недоработок в ядре системы.