[Восстановлено после обновления версии форума из кэша Гугла]
ReactOS Newsletter - Newsletter 41 (#41), 2008-05-15
Просто напоминание, что регулярности выхода ньюслеттеров ждать не стоит: мы(или, по крайней мере, я) публикуем их тогда, когда есть о чём рассказать, когда скапливается достаточный объем информации, чтобы им поделиться. Последние несколько недель были очень насыщены событиями.
Версия 0.3.5 и направление развития разработки
Среди разработчиков ходила шутка о том, что выпуск задерживает Алексей из-за отпуска, который позади. Сейчас же - задерживает Алексей, но по иным причинам. Те люди, которые подписались на почтовую рассылку, вероятно, заметили, довольно пространное заявление по поводу текущего состояния и направленности развития разработки, а именно отсутствие гарантии качества и надлежащего регрессионного тестирования. По этим причинам, Алексей толкает релиз назад, чтобы выполнить исправление давно ожидающих багов и для решения других вопросов совместимости.
Особое внимание Алексей уделил направлению "отлова багов" подсистемы Win32, для выведения его на уровень Wine. Он считает, что люди должны прекратить добавление новых функций на нее, и вместо этого работать над поддержкой уже существующего кода, который должен уменьшить поломки и ограничить число регрессий("откатов"). Winetests(тесты для Wine) были указаны в качестве простого способа обнаружения дефектов, хотя нам придется писать тесты для других, своих компонент. Однако, просто нахождение многих ошибок в Win32 позволит запускаться многим другим программам. Дальнейшая разработка ядра приводит к всё большим и большим сбоям в Win32-подсистеме, поэтому ей необходимо уделить больше внимания. Его придирки, кажется, имели результат, поскольку в течение минувшей недели было внесено колоссальное количество исправлений. Теперь нам нужно лишь придерживаться этого пути.
Прямо сейчас, приоритеты Алексея ограничены стабильностью ОС в целом и совместимостью приложений. Совместимость с внутренней организацией NT это здорово, но на данный момент это не даёт плодов на ближайшую перспективу.
Алексей - не единственный беспокоящийся о регрессионном тестировании, например Самуэль, другой создатель newsletter(теоретически), напыщенно говорил об этом не так давно. Несколько других разработчиков с заброшенными идеями и один я были брошены на включение модуля rostests в билд транка.
_____________________________________________________________
RBuild
Возможно, под влиянием позиции Алексея о направлении общего развития, KJK решили начать "вентилирование" некоторых его замечаний о RBuild. Эти проблемы не являются новыми и раздражали большое количество разработчиков и тестеров. Проблемы варьируются от неверно создаваемых файлов solution для Visual Studio до полностью перепутанных зависимостей. Во многих отношениях ReactOS перерос RBuild, из-за отсутствия модулей для определенных вещей приводит к необходимости искать обходные пути. Марк упорно работает над тем, что он может, но это большой объем работы для одного человека.
_____________________________________________________________
Юникод
Unicode - это стандарт кодирования символов, позволяющий представлять все известные языка в мире. NT использует юникод в ядре и почти везде, где возможно. Проблемной частью является все данные и алгоритмы, которые используют юникод. К счастью, есть другие проекты там, осуществившие все это. KJK решили, перевести в юникод normaliz.dll, используя библиотеку International Components for Unicode(ICU). ICU библиотека является огромной и выполняет все, в чём мы нуждаемся для поддержки юникод, экономя нам работу. Wine также однажды предпринимали попытку интегрировать ICU, но размер библиотеки вызвал тревогу. Для нас самой большой проблемой, вероятно, будет то, что ICU написан на C++. Мы всегда имели проблемы с ним, отчасти из-за компилятора GCC C++. Надеюсь, KJK смогут обойти их.
_____________________________________________________________
NoCc
По словам Алекса Ионеску, Cc означает Common Cache, а не Cache Controller. Просто небольшая мелочь. Во всяком случае, в ROS Сс всегда был проблемным. Его оригинальный дизайн был неправ на концептуальном уровне, и вполне возможно, является причиной большой нестабильности. Даже если система выживала после порч и перезаписей Cc, это делало систему более или менее непригодной в любом случае. Наиболее вопиющей проблемой является крушение ROS из-за массового копирования файлов, которое происходит всякий раз, когда производится установка крупных приложений. Но это не единственная проблема. Алексей уже работает над новым менеджером пула, который является гораздо более строгим, чем тот, что мы сейчас имеем и больше похож на NT в поведении. Нам нужен новый менеджер пула для устранения других проблем, таких, как запуск OpenOffice.
Сейчас Cc всегда сильно связан с менеджером памяти. Точнее будет сказать, что не существует отдельной компоненты, называемой Cc. Сс просто влияет на некоторые функции(сервисы) Mm(memory manager). В результате мы имеем в ROS сейчас Mm полностью отличающийся от NT, а как следствие - совершенно отличающийся Cc. Переписывание Мм займёт много времени и код нового пула Алексея является частью этих усилий, но так как Cc привязан непосредственно к мм, это становится серьезным препятствием. Текущее решение заключается в том, чтобы полностью убрать кэширование из ядра и передавать запросы на чтение / запись непосредственно драйверам стека носителей, отсюда и название NoCc. Надеемся получить готовый NoCc к моменту выпуска версии 0.3.5, что может быть вполне осуществимо.
В долгосрочной перспективе, когда NoCc заработает хорошо, насколько это возможно, можно будет добавить некоторый очень простой алгоритм Least Recently Used. Это все равно будет далеко от NT Common cache, но мы, по крайней мере, вернёмся на путь надлежащей реализации архитектуры.
_____________________________________________________________
Безопасность
Многие люди особенно озабочены безопасностью ReactOS в будущем, опасаясь, что будучи клоном NT, ReactOS будут уязвима, так же как Windows. Я не могу сказать об этом, поскольку это все еще гипотетически, и кто знает, что будущее нам принесёт. Но люди подняли интересный вопрос в отношении безопасности ROS и её текущего состояния. Я разговаривал с Эрве об этом и он предложил ряд разъяснений. В прошлом, ROS не имело инфраструктуры для какого-либо обеспечения безопасности или аутентификации, кроме обычного перехода из пользовательского режима в режим ядра, поэтому все компоненты были написаны с учетом этого. Мы прошли долгий путь с тех пор, с поддержкой ACLs и других проверок безопасности, добавлявшихся в течение лет. Проблема в том, что немногие компоненты были обновлены для использования этих проверок. Сейчас добавление этих проверок будет влиять на производительность, это неизбежный факт. Тем не менее, это то, что нужно сделать или мы в итоге оставим все дыры в системе. Разработчики заботятся об их подключении(проверок безопасности), но это, опять же, требует времени.
Большая часть инфраструктуры для надлежащего обеспечения безопасности на месте не протестирована, поэтому - могут ли быть ошибки, мы не известно.
_____________________________________________________________
Добро пожаловать, Стивен Эдвардс
Конечно, Стивен остаётся, как и liasion, между ROS и Wine; он формально перестал быть разработчиком, после того как он покинул пост координатора проекта еще в начале 2006 года. Однако, никто от нас не сбегал и Стивен вернулся в нашу паству. Надеемся, его возвращение знаменует новую эру сотрудничества и примирения между нами и различными сторонами в Wine.
_____________________________________________________________
Китайский язык
Это должно было быть сделано уже давно, но Klemens, наконец, обхитрил расщепление китайского языка на традиционный и упрощенный. Теперь я просто нужно войти в контакт с людьми, которые предложили выступить в качестве переводчиков для упрощённой - и дело пойдёт!