ROS Newsletter40 — различия между версиями
Fog (обсуждение | вклад) (Новая страница: «ReactOS Newsletters == Выпуск новостей ReactOS №40 == [http://www.reactos.org/ru/%D0%B2%D1%8B%D0%BF%D1%83%D1%81%D0%BA-%D0%BD%D0%BE%D0%B2%D…») |
Fog (обсуждение | вклад) (→Microsoft DirectX) |
||
Строка 1: | Строка 1: | ||
+ | [[ReactOS]] [[Newsletters]] | ||
+ | == Выпуск новостей ReactOS №40 == | ||
+ | [http://www.reactos.org/ru/%D0%B2%D1%8B%D0%BF%D1%83%D1%81%D0%BA-%D0%BD%D0%BE%D0%B2%D0%BE%D1%81%D1%82%D0%B5%D0%B9-reactos-%E2%84%9640 Публикация на сайте проекта] | ||
+ | |||
+ | [http://old.reactos.org/ru/newsletter_40.html (Старая версия сайта)] | ||
+ | |||
[[ReactOS]] [[Newsletters]] | [[ReactOS]] [[Newsletters]] | ||
== Выпуск новостей ReactOS №40 == | == Выпуск новостей ReactOS №40 == | ||
Строка 6: | Строка 12: | ||
===Microsoft DirectX=== | ===Microsoft DirectX=== | ||
− | Для начала позвольте сказать, что в соответствии с WGA (Windows Genuine Advantage) и EULA (End-User License Agreement), вы имеете право | + | Для начала позвольте сказать, что в соответствии с WGA (Windows Genuine Advantage) и EULA (End-User License Agreement), вы имеете право устанавливать DirectX только на лицензионную систему Windows. С другой стороны, библиотеки, которые поставляются с различными играми и обязательны для их работы, технически не ограничены WGA. Именно поэтому DirectX теперь работает в ReactOS. Чтобы установить его, вы должны вручную скопировать файлы dxg.sys, dxgthk.sys, dxapi.sys, ddraw.dll и dciman32.dll, т.к. инсталлятор всё ещё не работает. Не работает и 3D, однако простое 2D работает с аппаратным ускорением. По крайней мере под VMWare Workstation, где поддерживается аппаратное ускорение DirectX. |
+ | |||
+ | |||
+ | Чтобы DirectX заработал, пришлось изрядно потрудиться над исправлением и доработкой gdi32.dll и win32k.sys. На самом деле, эта работа началась ещё в 2004 году, так что это результат долгих усилий. Мы все благодарны Магнусу Олсену (Magnus Olsen), Тимо Кройцеру (Timo Kreuzer), Джеймсу Тэбору (Jim Tabor), Маартену Босма (Maarten Bosma) и Алексу Ионеску (Alex Ionescu) - за то, что они смогли заставить работать DirectX, и Камилю Горничек (Kamil Hornicek) - за его помощь в тестировании компонентов DirectX и ReactX. | ||
− | |||
Помните, что мы говорим о DirectX от Microsoft, не о DirectX от Wine или ReactX. Мы можем получить поддержку 3D благодаря использование некоторых библиотек DX от Wine. Однако запуская MS DirectX мы можем тестировать реализацию функций в gdi32.dll и win32k.sys. Все функции DX все равно сводятся именно к ним. | Помните, что мы говорим о DirectX от Microsoft, не о DirectX от Wine или ReactX. Мы можем получить поддержку 3D благодаря использование некоторых библиотек DX от Wine. Однако запуская MS DirectX мы можем тестировать реализацию функций в gdi32.dll и win32k.sys. Все функции DX все равно сводятся именно к ним. | ||
+ | |||
+ | ===Важные исправления ошибок=== | ||
+ | Не так давно Алекс Ионеску (Alex Ionescu) нашёл в ReactOS несколько ошибок, связанных с таймингом и блокировкой. Они варьировались от совершенно неправильных алгоритмов до простого изменения типа блокировки, используемого в некоторых ситуациях, устранения race condition'ов, deadlock'ов и других гадостей. Прирост производительности в некоторых ситуациях оказался просто громадным, согласно тестам Алекса, во время инсталляции он достигал 150%. Другие важные исправления были проведены в диспетчере памяти путём замены "хаков" на различные оптимизации. Излишне упоминать, что мы все благодарны за помощь. | ||
+ | |||
+ | |||
+ | Вот пояснение для тех, кто гадает, почему Алекс всё ещё разрабатывает ReactOS. Баги в блокировочном коде были исправлены Алексеем Брагиным (Aleksey Bragin). Алекс просто предоставил информацию и указал на проблемные места. Тот код, который он внёс, касался исправления проблем с диспетчером памяти. Однако диспетчер памяти ReactOS - это самая большая причина задержки перед массовым переписыванием ядра, после которого система должна изменить поведение на более NT-подобное. Наш диспетчер памяти хоть и предоставляет ту же функциональность, на самом деле ничем не похож на диспетчер памяти NT. На самом деле если вы читали книгу Windows Internals и пытались работать над диспетчером памяти ReactOS, вас ждали бы нелёгкие времена, поверьте на слово. Исправление багов в уже существующем коде допустимо, поскольку не так уж сложно обнаружить плохое место просто читая код. |
Версия 14:10, 25 июня 2014
Содержание
[убрать]Выпуск новостей ReactOS №40
Выпуск новостей ReactOS №40
Microsoft DirectX
Для начала позвольте сказать, что в соответствии с WGA (Windows Genuine Advantage) и EULA (End-User License Agreement), вы имеете право устанавливать DirectX только на лицензионную систему Windows. С другой стороны, библиотеки, которые поставляются с различными играми и обязательны для их работы, технически не ограничены WGA. Именно поэтому DirectX теперь работает в ReactOS. Чтобы установить его, вы должны вручную скопировать файлы dxg.sys, dxgthk.sys, dxapi.sys, ddraw.dll и dciman32.dll, т.к. инсталлятор всё ещё не работает. Не работает и 3D, однако простое 2D работает с аппаратным ускорением. По крайней мере под VMWare Workstation, где поддерживается аппаратное ускорение DirectX.
Чтобы DirectX заработал, пришлось изрядно потрудиться над исправлением и доработкой gdi32.dll и win32k.sys. На самом деле, эта работа началась ещё в 2004 году, так что это результат долгих усилий. Мы все благодарны Магнусу Олсену (Magnus Olsen), Тимо Кройцеру (Timo Kreuzer), Джеймсу Тэбору (Jim Tabor), Маартену Босма (Maarten Bosma) и Алексу Ионеску (Alex Ionescu) - за то, что они смогли заставить работать DirectX, и Камилю Горничек (Kamil Hornicek) - за его помощь в тестировании компонентов DirectX и ReactX.
Помните, что мы говорим о DirectX от Microsoft, не о DirectX от Wine или ReactX. Мы можем получить поддержку 3D благодаря использование некоторых библиотек DX от Wine. Однако запуская MS DirectX мы можем тестировать реализацию функций в gdi32.dll и win32k.sys. Все функции DX все равно сводятся именно к ним.
Важные исправления ошибок
Не так давно Алекс Ионеску (Alex Ionescu) нашёл в ReactOS несколько ошибок, связанных с таймингом и блокировкой. Они варьировались от совершенно неправильных алгоритмов до простого изменения типа блокировки, используемого в некоторых ситуациях, устранения race condition'ов, deadlock'ов и других гадостей. Прирост производительности в некоторых ситуациях оказался просто громадным, согласно тестам Алекса, во время инсталляции он достигал 150%. Другие важные исправления были проведены в диспетчере памяти путём замены "хаков" на различные оптимизации. Излишне упоминать, что мы все благодарны за помощь.
Вот пояснение для тех, кто гадает, почему Алекс всё ещё разрабатывает ReactOS. Баги в блокировочном коде были исправлены Алексеем Брагиным (Aleksey Bragin). Алекс просто предоставил информацию и указал на проблемные места. Тот код, который он внёс, касался исправления проблем с диспетчером памяти. Однако диспетчер памяти ReactOS - это самая большая причина задержки перед массовым переписыванием ядра, после которого система должна изменить поведение на более NT-подобное. Наш диспетчер памяти хоть и предоставляет ту же функциональность, на самом деле ничем не похож на диспетчер памяти NT. На самом деле если вы читали книгу Windows Internals и пытались работать над диспетчером памяти ReactOS, вас ждали бы нелёгкие времена, поверьте на слово. Исправление багов в уже существующем коде допустимо, поскольку не так уж сложно обнаружить плохое место просто читая код.