ROS and Wine

Материал из Русский WINE
Перейти к: навигация, поиск

ReactOS и Wine

В основном, из проекта Wine ReactOS берет реализацию библиотек пользовательского режима. Где-то разработчики Wine предоставляют свои патчи, где-то наоборот - разработчики ReactOS отправляют наработки в Wine. Тем не менее, из-за архитектурных различий, возникающих из-того, что Wine ориентирован на Linux, некоторые из DLL-библиотек не могут быть использованы в ReactOS без предварительных модификаций.

Wine-ros1.jpg

Например, kernel32.dll и Gdi32.dll должны быть разделены, так как ReactOS перенаправляет их вызовы к своему NT-подобному ядру, а версии Wine к ядру Linux и X-серверу соответственно.

В ноябре 2009 были предприняты усилия для доведения архитектуры ReactOS ближе к Wine для того, чтобы больше их кода могло быть использовано без изменений. Это делается в рамках проекта ARWINSS.

В ReactOS периодически проводятся синхронизации с кодовой базой Wine. (пример)

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 из-за ошибок и недоработок в ядре системы.

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