ROS Newsletter40

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

Выпуск новостей 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, вас ждали бы нелёгкие времена, поверьте на слово. Исправление багов в уже существующем коде допустимо, поскольку не так уж сложно обнаружить плохое место просто читая код.

Новый калькулятор

Не так давно Карло Брамини (Carlo Bramini) начал делать программу-калькулятор на основе Windows API. Ему не нравился калькулятор Wine, который мы использовали, и он решил придать большую функциональность своему собственному. Ну что ж, поздравляем тебя Карло, потому что теперь твоя программа является частью встроенных в ReactOS приложений. Мы благодарим тебя за всю твою работу по программированию и надеемся, что ты и в будущем будешь вносить код в проект. Калькулятор включён в качестве основного приложения, в то время как калькулятор Wine перемещён в RosApps.

Переключение раскладки

Дмитрий Чапыщев (Dmitry Chapyshev) добавил возможность переключения раскладки, которую ждали многие пользователи. Это всё ещё временная мера, так как полноценной реализации этой функциональности придётся подождать, пока не будет готов правильный Explorer-шелл, потому как там должен использоваться какой-то toolbar. Тем не менее, новая возможность высоко оценена людьми, которые используют не только US-раскладку.

0.3.5

Помня о нашем обещании, что самый ранний срок релиза 0.3.5 будет Апрель 2008-го, тем из вас, кому любопытно, из-зв чего же задержка, мы можем сказать, что у нас в данный момент от 3 до 6 блокеров, которые нужно разрешить. Я говорю "от 3 до 6", потому что Алексей (Aleksey Bragin) может решить понизить некоторым из них приоритет, или они могут быть уже исправлены благодаря патчам к диспетчеру памяти от Алекса (Alex Ionescu). Требуется дальнейшее тестирование. Также я в данный момент перешёл в режим экзаменов, так что время, которое я могу пожертвовать на составление changelog'а, ограничено. Надеюсь к концу следующей недели мы со всем управимся.

Newsletters
30-39 #30#31#32#33#34#35#36#37#38#39
40-49 #40#41#42#43#44#45#46#47#48#49
50-59 #50#51#52#53#54#55#56#57#58#59
60-69 #60#61#62#63#64#65#66#67#68#69
70-79 #70#71#72#73#74#75#76#77#78#79
80-89 #80#81#82#83#84#85#86#87#88#89
90-99 #90#91#92#93#94#95#96#97#98#99