Page 1 of 8

ARWINSS: новая реализация подсистемы win32

Posted: Sat Jul 18, 2009 1:01 pm
by unxed
Презентация ARWINSS на open life
Перевод PDF-файла, входящего в презентацию
Страница ARWINSS в ReactOS wiki
Техническая информация по ARWINSS
Ошибки, относящиеся к ARWINSS

Здесь можно найти свежие сборки ARWINSS.

Ветка ARWINSS представляет собой альтернативную реализацию подсистемы win32. Вместо того, чтобы "с нуля" воспроизводить громоздкую подсистему win32 по аналогии с тем, как она устроена в Windows NT, в ARWINSS используются библиотеки user32 и gdi32 из проекта Wine.

Такое использование стало возможным благодаря тому, что Wine использует промежуточный "слой совместимости" с графической подсистемой конкретной платформы, на которой он работает. В linux/*nix этот слой представляет собой "драйвер" winex11.drv, перенаправляющий графический вывод Wine на X Windows System.

Алексею Брагину (его ник fireball на форуме и в svn), инициатору и одному из авторов ARWINSS, удалось сделать замену этому "драйверу", под названием winent.drv, использующую графические возможности соответствующей ему части ядра ReactOS, исключив, таким образом, необходимость в X Window System, и получив фактически работающие в ReactOS библиотеки user32 и gdi32 из Wine, что ранее считалось невозможным.

Так как код user32/gdi32 в Wine является протестированным и относительно надёжным, предполагается, что ARWINSS обеспечит большую совместимость с приложениями, чем нынешняя реализация win32 в ReactOS, содержащаяя "кашу" из разных версий Wine с вкраплениями собственного кода ReactOS той или иной степени актуальности.

Кроме того, ARWINSS позволит обмениваться с проектом Wine гораздо большим количеством кода, а также использовать "дешевые" (не требующие значительного времени разработчиков) синхронизации с Wine библиотек user32 и gdi32.

Таким образом, ARWINSS должна (по крайней мере, теоретически) обеспечить работоспособность в ReactOS как минимум всех тех программ, которые работают в последних версиях Wine.

Re: Что за ветка arwinss?

Posted: Sun Jul 19, 2009 12:39 pm
by unxed
То, что fireball комиттит туда что-то связанное с win32k, и так видно.
Какая цель? Чем реализация win32k из ветки arwinss будет отличаться от нынешней?
Кто-нибудь в курсе?

PS: больше всего удивили в логах коммитов слова wineserver и x11. В ReactOS?!

Re: Что за ветка arwinss?

Posted: Sun Jul 19, 2009 5:08 pm
by bz00mmer

Re: Что за ветка arwinss?

Posted: Mon Jul 20, 2009 9:28 am
by unxed
I will explain thoroughly and in all details what's being done. Just
let me commit the remaining of my stuff first.

WBR,
Aleksey Bragin.
Ага, т.е. даже разработчики ничего не знают, кроме Алексея.

Re: Что за ветка arwinss?

Posted: Sat Jul 25, 2009 6:16 pm
by fireball
Я уже кое-что в мейллист написал. В общем это замена большой части подсистемы Win32 на новую, базирующуюся на вайне, и имеющую (когда она будет закончена) гораздо большую стабильность и совместимость чем то, что есть сейчас.

Также, в результате, будут "бесплатные" (т.е. затраты времени на их применения сравнительно малы) обновления из вайна - естественно протестированные, и т.п.

И ещё один бонус, это поддержка удаленного X сервера. Очень удобно, чтобы полностью заменить вайн, используя вместо него реактос+arwinss в виртуальной машине (той же KVM например).

Re: Что за ветка arwinss?

Posted: Sat Jul 25, 2009 8:23 pm
by unxed
fireball wrote:Я уже кое-что в мейллист написал. В общем это замена большой части подсистемы Win32 на новую, базирующуюся на вайне, и имеющую (когда она будет закончена) гораздо большую стабильность и совместимость чем то, что есть сейчас.

Также, в результате, будут "бесплатные" (т.е. затраты времени на их применения сравнительно малы) обновления из вайна - естественно протестированные, и т.п.

И ещё один бонус, это поддержка удаленного X сервера. Очень удобно, чтобы полностью заменить вайн, используя вместо него реактос+arwinss в виртуальной машине (той же KVM например).
Спасибо за разъяснения! Интересная попытка, вне всякого сомнения.
Базирующуюся на вайне - в смысле, на архитектуре х-сервер - х-клиент, и все это, собранное под ROS, я правильно понимаю?
(и нескромный вопрос) Как скоро можно ждать чего-то, на что уже можно будет взглянуть?

PS: при фразе заменить вайн - сразу вспомнилось обсуждение wine 2.0 в ЖЖ :)

Re: Что за ветка arwinss?

Posted: Mon Jul 27, 2009 3:12 pm
by NOX86
Мировой кризис добрался и до ReactOS. Оптимизация затрат и поиск выгодных решений. По-моему неплохо, хотя бы для тестирования остальных частей ReactOS.
И вопрос по теме. позволит ли arwinss сосредоточиться на ядре\дровах?

Re: Что за ветка arwinss?

Posted: Tue Jul 28, 2009 11:50 pm
by fireball
Нет, архитектурно X Windows там нету. Есть опциональный драйвер (плагин), с помощью которого вывод пойдет не на экран, а на удаленный X server.
Но всё остальное построено без него (ну, есть конечно чуть-чуть исходного кода взятого оттуда самим вайном для, например, работы с графическими регионами, но это буквально один-два файла из исходников).

Кстати, действительно, сейчас больше половины всех проблем при разработке новой ветки - это поиск и исправление глюков в остальных частях системы.

Re: Что за ветка arwinss?

Posted: Mon Aug 03, 2009 11:33 am
by unxed
В контексте последней newsletter возникает естественный вопрос: планируется ли в будущих релизах заменить классический ReactOS win32k на arwinss, а "мэйнстримный" win32k, наоборот, вынести в branch на время его переписывания?

Re: Что за ветка arwinss?

Posted: Mon Aug 03, 2009 10:07 pm
by NOX86
На досуге поговорил с ВанГой (дочь Ван Гога), она мне сообщила что если arwinss будет работать, то он очень даже может финансово обеспечить развитие идеологически верного win32k и проч.. Но вполне возможно, что всё это мне приснилось.

Re: Что за ветка arwinss?

Posted: Sun Aug 16, 2009 11:43 pm
by fireball
unxed wrote:В контексте последней newsletter возникает естественный вопрос: планируется ли в будущих релизах заменить классический ReactOS win32k на arwinss, а "мэйнстримный" win32k, наоборот, вынести в branch на время его переписывания?
Думаю, да. Хотя, очевидно, что те немногие, что пишут сейчас транковый win32k довольно сильно возмутились и обиделись на эту тему. Но в любом случае, как я уже говорил, это не моя вина, что вин32 в транке уже 10 лет пилится и до сих пор недопилен. Значит не так его пилят, пила не та :)

Re: Что за ветка arwinss?

Posted: Mon Aug 17, 2009 1:01 am
by unxed
fireball wrote:
unxed wrote:В контексте последней newsletter возникает естественный вопрос: планируется ли в будущих релизах заменить классический ReactOS win32k на arwinss, а "мэйнстримный" win32k, наоборот, вынести в branch на время его переписывания?
Думаю, да. Хотя, очевидно, что те немногие, что пишут сейчас транковый win32k довольно сильно возмутились и обиделись на эту тему. Но в любом случае, как я уже говорил, это не моя вина, что вин32 в транке уже 10 лет пилится и до сих пор недопилен. Значит не так его пилят, пила не та :)
Спасибо за ответ. Надеюсь, такое положение вещей не приведет к серьезному расколу в проекте.

Думаю, не мне одному будет интересно услышать ответ на еще один вопрос: в каком состоянии arwinss сейчас, и сколько человек активно трудятся над ней (branch-ветка-женский род)?

Posted: Mon Aug 17, 2009 3:00 am
by hto
unxed wrote: … и сколько человек активно трудятся над ней
Если к fireballу прибавить разработчиков Wine, которые трудятся над кодом, который потом используется в arwinss, то наверное будет много. :)

Re: Что за ветка arwinss?

Posted: Fri Aug 21, 2009 9:35 pm
by asd1!
Если я правильно понимаю, проект arwinss - как бы мостик между вайном и виндоуским (т.е. реактоским) ядром. Вайн переводит api функции в линукское ядро, а arwinss будет все переводить назад - быстрее пишется, но медленнее работает.
В таком случае идея хорошая - через относительно короткое время можно будет увидеть не максимально быстрый, но зато максимально стабильный реактос! А потом можно будет спокойно дополнительные 10 лет допиливать текущий код.

Если я все совсем не правильно понял, поясните пожалуйста, интересно. :)

Re: Что за ветка arwinss?

Posted: Sat Aug 22, 2009 1:26 am
by NOX86
Да, именно так
Это альтернативная реализация Win32 подсистемы. Данное решение НЕ предназначено для полного замещения оригинальной реализации Win32 подсистемы, и может быть неактуально после завершения работ над ReactOS Win32 подсистемой. ... Arwinss использует архитектурные решения как Wine так и Windows NT в надлежащих местах для правильной реализации функционала. Более подробное описание дано на отдельной странице Архитектура Arwinss