ROS Newsletter41

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

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

Версия 0.3.5 и направление разработки

Среди разработчиков ходила шутка о том, что выпуск новой версии задерживается из-за отпуска Алексея Брагина, и столь долгий период разработки - это его вина. Сейчас же задержка происходит действительно по вине Алексея, однако уже по другим причинам. Те, кто подписался на рассылку, вероятно заметили его довольно пространное заявление по поводу текущего состояния и направленности разработки, а в особенности об отсутствии проверки качества и надлежащего регрессионного тестирования. По этим причинам Алексей решил отложить релиз и потратить ещё немного времени на исправление старых багов и решение других проблем совместимости.

Прямо сейчас, приоритеты Алексея сосредоточены на стабильности ОС в целом и совместимости приложений. Совместимость с внутренней структурой NT это всегда здорово, однако на данный момент стабильность важнее.

Алексей далеко не единственный, кто беспокоится о регрессионном тестировании, например Самуэль, (теоретически) являющийся ещё одним автором выпусков новостей, тоже недавно говорил об этом. Несколько разработчиков высказали множество идей, и я один взялся за включение модуля rostests в сборки транка.

RBuild

Возможно под влиянием позиции Алексея о направлении общего развития, KJK решил начать очистку RBuild от некоторых выявленных им проблем. Эти проблемы не являются новыми и раздражают большое количество разработчиков и тестеров. Диапазон проблем варьируются от неверно созданных файлов сборки для Visual Studio до полностью перепутанных зависимостей. Во многих отношениях ReactOS перерос RBuild, поскольку из-за отсутствия некоторых специфических модулей для решения некоторых задач приходится искать обходные пути. Марк по мере сил упорно работает над устранением этих проблем, однако это большой объем работы для одного человека.

Unicode

Unicode - это стандарт кодирования символов, позволяющий представить почти все известные в мире языки. NT использует юникод в ядре и почти везде, где только это возможно. Создание алгоритмов и обработка данных в формате unicode довольно сложная задача, но к счастью, существуют другие проекты, успешно решившие эти задачи. KJK решил попытаться воспользоваться готовой динамической библиотекой normaliz.dll, использующую библиотеку International Components for Unicode (ICU). Библиотека ICU очень велика и выполняет всё, что нам необходимо для поддержки unicode, тем самым значительно экономя затраты на разработку необходимых нам функций. Проект Wine также однажды предпринял попытку интегрировать ICU, но размер библиотеки вызвал у них тревогу. Для нас самой большой проблемой, вероятно, будет то, что ICU написан на C++. Мы всегда испытывали проблемы с этим языком, отчасти из-за компилятора GCC C++. Надеюсь KJK сможет их избежать.

NoCc

По словам Алекса Ионеску (Alex Ionescu), Cc означает Common Cache (диспетчер кэша), а не Cache Controller (контроллер кэша). Просто небольшое примечание. Во всяком случае, в Сс в ROS всегда был проблемным местом. Его оригинальный дизайн был изначально ошибочен, и, вполне возможно, является причиной большой нестабильности. Даже если система выживала после повреждений и перезаписей Cc, то в любом случае она в большей или меньшей степени становилась непригодной для использования. Наиболее вопиющей проблемой остаётся крушение ROS при копировании большого количества файлов за раз, происходящее всякий раз, когда производится установка объёмных приложений. Но и это не единственная проблема. Алексей уже работает над новым диспетчером пула, который является гораздо более строгим, чем тот, что мы сейчас имеем и больше похож в поведении на NT. Новый диспетчер пула крайне нам необходим для устранения многих проблем из-за ошибок в старом, таких например, которые происходят при запуске OpenOffice.

Сейчас Cc тесно связан с диспетчером памяти. Точнее будет сказать, что не существует отдельного компонента по названием Cc. Сс на данный момент лишь представляет собой некоторые сервисы диспетчера памяти (Mm). В результате, на данный момент в ROS мы имеем Mm, в корне отличный от имеющегося в NT, и, как следствие, совершенно отличающийся Cc. Переписывание диспетчера памяти займёт много времени и код нового пула Алексея является частью этой работы, но так как Cc интегрирован в Mm, задача крайне осложняется. Текущее решение заключается в том, чтобы полностью убрать кэширование из ядра и передавать запросы на чтение/запись непосредственно драйверам стека носителей, отсюда и название NoCc. Мы надеемся получить готовый NoCc к моменту выпуска версии 0.3.5, что вполне осуществимо.

В долгосрочной перспективе, когда NoCc заработает настолько хорошо, насколько это возможно, можно будет добавить очень простой алгоритм кэширования недавно использованных данных. Хотя это всё равно будет лишь жалким подобием диспетчера кэша из NT, но зато мы, по крайней мере, сможем вернуться на путь надлежащей реализации архитектуры.

Безопасность

Многие люди особенно озабочены предполагаемым уровнем безопасности ReactOS в будущем, опасаясь, что будучи клоном NT, ReactOS будет уязвима в той же мере, что и Windows. Мне пока нечего сказать по этой теме, поскольку всё это пока лишь рассуждения, да и кто знает, что нам уготовлено в будущем. Однако вопрос безопасности ROS и её текущего состояния показался мне весьма интересным. Я разговаривал на эту тему с Эрве и он дал мне ряд разъяснений. В прошлом, в ROS не имелось инфраструктуры для обеспечения безопасности или аутентификации при переходах из пользовательского режима в режим ядра, поэтому все компоненты были написаны с учетом этого факта. Мы прошли долгий путь с тех пор, и в течение нескольких лет была добавлена поддержка списков контроля доступа (ACL) и другие проверки безопасности. Проблема состоит в том, что лишь немногие компоненты были обновлены для использования этих проверок. На данный момент добавление этих проверок будет влиять на производительность, это неизбежный факт. Тем не менее, это нужно сделать, иначе мы в итоге получим систему с множеством уязвимых мест во многих её компонентах. Разработчики занимаются подключением проверок безопасности, но это также требует времени.

Большая часть инфраструктуры для надлежащего обеспечения безопасности уже реализована, однако надлежащим образом не протестирована, поэтому может содержать ошибки, о которых нам пока не известно.

Добро пожаловать, Стивен Эдвардс

Стивен всё ещё участвует в ROS и Wine; он формально перестал быть разработчиком, после того как он покинул пост координатора проекта еще в начале 2006 года. Однако, от нас никто не сбежит, и Стивен вернулся в наши ряды. Надеемся, его возвращение ознаменует новую эру сотрудничества и взаимопонимания между нами и участниками команды Wine.

Китайский язык

Это должно было случиться давным-давно, но Клеменс наконец-то решился сделать отдельные локализации для традионного и упрощенного диалектов китайского языка. Теперь мне нужно всего лишь связаться с людьми, которые предлагали свои кандидатуры в качестве переводчиков для упрощённого диалекта китайского языка - и дело пойдёт.

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