ROS Newsletter31

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

Выпуск новостей ReactOS №31

Этот выпуск немного задержался из-за того, что я столкнулся с проблемой прав доступа в RosCMS. Если есть у кого-нибудь еще подобные трудности - frik должен завтра все исправить.

Переписывание Win32k

Samuel уже упомянул об этом в прошлом выпуске, теперь я поговорил с разработчиками, чтобы узнать подробности. Jim Tabor, Timo Kruzer и Magnus Olsen работали и продолжают работать над переделыванием подсистемы win32k. Главная задача - воспроизвести поведение аналогичной системы в windows. К примеру, Windows хранит серию структур данных пользовательского режима, разумеется, эти данные также доступны из уровня ядра. Это очень полезно для сокращения числа переключений в режим ядра, что очень важно с точки зрения производительности. Вместо этого, код пользовательского режима может работать с этими данными до тех пор, пока не будет вызвана функция draw, требующая переключения в режим ядра, и структуры ядра будут обновляться в соответствии со структурами уровня пользователя. Преимущества этого очевидны: вы можете отложить слишком дорогое с точки зрения производительности переключение в режим ядра до тех пор, пока в этом не будет абсолютной необходимости, таким образом, увеличивая скорость работы. Jim работает над тем, чтобы заставить ReactOS вести себя подобным образом, и добился в этом больших успехов.

В исходных кодах ReactOS есть файл, ntgdibad.h, который содержит много прототипов системных вызовов win32k, которые являются специфичными для ROS. В идеальном случае этого файла вообще не должно существовать. Timo и Magnus продолжают работать над сокращением этого файла. Они составили список всех системных вызовов для Windows 2000 Service Pack 4, XP SP 2, и Server 2003 SP2. Пользуясь этим списком, они начала работать над реализацией конкретных системных вызовов. Несмотря на то, что на данный момент большинство из них всего лишь обозначены, некоторые функции уже переименованы, в других были исправлены параметры. Эти изменения не должны повлиять на функциональность, тем не менее, они значительно упростят дальнейшую разработку.

Имейте в виду, что эти изменения не коснутся релиза 0.3.3. Они могут стать причиной многих ошибок и регрессий, прежде, чем будут полностью стабильны. Это долгосрочная работа, подобная работе Alex Ionescu по переписыванию кода ядра.

0.3.3

Выпущен Release Candidate 2, но мы не стали уделять этому слишком большое внимание. Изначально разработчики планировали сделать хороший сюрприз, включив в релиз реальную поддержку DirectX, но позже решили, что это непрактично из-за проблем с win32k (еще одна причина переписать его). Таким образом, выпуск RC2 несколько затянулся. Кроме того, у нас был спор о принципе добавления патчей в ветку релиза репозитория. Некоторые из разработчиков хотели, чтобы мы вручную добавляли и проверяли каждый патч, чтобы убедиться, что он не вызвал никаких нарушений в работе системы, но Colin решил, что достаточно просто создать новую ветвь для релиза. Мы еще ждем информации от тестеров, не нарушилось ли что-нибудь, но пока все выглядит многообещающе.

Ошибка с просмотром интернета под Firefox, очевидно, не была исправлена, не смотря на мои просьбы и подтверждения от нескольких разработчиков и тестеров. Похоже, что все они не поняли, какую именно ошибку сети я имею в виду. На самом деле, проблема не в самом Firefox. Получилось так, что Firefox сделал заметной эту проблему, и Art Yerkes в данный момент разбирается, в чем там дело. Лично я надеюсь, что к 0.3.3 эта проблема будет исправлена, но неизвестно, насколько масштабные изменения потребуются, чтобы решить ее.

Интересные ссылки

Недавно наше внимание привлекла публикация текста книги "Недокументированные секреты Windows 2000" в виде pdf-файла онлайн. Вот ссылка: http://www.rawol.com/?topic=41, так что не забудьте поблагодарить автора! Все, кто хотят помочь в разработке ReactOS, найдут эту книгу весьма полезной.

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