ROS Newsletter82

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

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

Состояние NewCC

Недавно Арт Йеркс (Art Yerkes) произвёл слияние разработанного им кода новой реализации диспетчера кэша (NewCC) с основной ветвью кодовой базы проекта. Это слияние должно заложить основу для обеспечения возможности замены текущего диспетчера, которая произойдёт сразу, как только Арт разрешит некоторые проблемы в обработке структур данных разделов диспетчером памяти и диспетчером кэша. Диспетчер памяти отвечает не только за управление разделами, но и предоставляет набор функций, необходимых диспетчеру кэша. У старой реализации диспетчера кэша имелась склонность напрямую управлять разделами вместо того, чтобы запрашивать необходимые ресурсы у диспетчера памяти. Было крайне непросто разобраться в перекрёстных зависимостях этих двух модулей, что и стало одной из причин задержки интеграции NewCC. Эти проблемы в настоящее время проявляются в критических сбоях во время выполнения юнит-тестов в системе, скомпилированной с использованием NewCC, и Арт решил разрешить их до следующего слияния с транком.

Концептуально, диспетчер кэша должен запросить ресурсы, необходимые для кэширования файлов, у диспетчера памяти. Диспетчер кэша получает эти ресурсы в форме объектов "раздел" и не должен пытаться произвести какое-либо взаимодействие со страницами памяти, состоящими из этих разделов. Программный код диспетчера был полностью переписан для исключения с его стороны попыток непосредственного воздействия на страницы памяти, поскольку это создаст круговую зависимость в том случае, если диспетчеру памяти внезапно потребуется кэш для поддержания структуры данных, которая была выделена кэшу.

Ещё одно ограничение старой реализации диспетчера кэша заключалось в обработке смещений при проецировании файлов. Это ограничение зависимо от файловой системы, поскольку возникновение этой проблемы зависит от размещения структур данных файловой системы на диске. В частности, старый диспетчер не мог спроецировать смещения больше, чем 4 Гбайт. Для файловых систем подобных FAT, где все структуры данных находятся в начале диска, для возникновения этой проблемы необходимо иметь достаточно большой раздел, чтобы потребовалось более 4 Гб метаданных файловой системы. Для файловых систем типа ext3, метаданные файлов в которых распределены по всему диску, для возникновения проблемы необходимо лишь иметь раздел объёмом более 4 Гбайт. С использованием новой реализации диспетчера кэша проблема была решена, и для подтверждения правильности работы диспетчера Арт воспользовался драйвером файловой системы ext3, написанным Мэттом Ву (Matt Wu). Ветвь программного кода Арта на настоящий момент обеспечивает установку и загрузку системы с раздела, отформатированного в ext3, это именно то, чего многие из нас очень хотят от системы в течение уже довольно длительного периода времени. Это и другие улучшения начнут приносить пользу всем нам, как только удастся найти и устранить причины критических сбоев, и Арт сделает следующее слияние его кода.

Автоматическое тестирование патчей

Одной из проблем, связанных с разработкой ReactOS, является время, необходимое для полной сборки и тестирования. Серверы сборки, поддерживаемые проектом, тратят приблизительно 10 минут на полную сборку и ещё час на выполнение тестов. Даже разработчики, у которых имеется доступ к оборудованию сопоставимой мощности, не хотят быть связанными по рукам в течение часа только для того, чтобы удостовериться, что их коммит не приведёт к регрессиям. Поскольку серверы сборки всё равно автоматически тестируют каждый направляемый в репозиторий коммит, участники проекта хотели бы, чтобы регрессии были обнаружены как можно раньше, ещё до добавления нового кода в основную кодовую базу, и не вынуждали тестеров тратить время на их поиск спустя сотни коммитов после их появления. Поэтому Олаф Сейка (Olaf Siejka) создал новую систему сборки, которая забирает патчи из Багзиллы и применяет их к последней версии кода в репозитории, создаёт сборку, тестирует её, а затем публикует результаты тестирования для последующего анализа. Установка и настройка системы осложнялись отсутствием в Windows подходящих утилит для применения патчей, а именно утилит, работу которых можно было бы настраивать для, например, исключения отказа их функционирования без окончаний строк в стиле DOS в текстовых файлах. Однако система теперь запущена, работает и может использоваться разработчиками, хотя её интерфейс несколько неудобен. Разработчикам необходимо присоединять патчи к отчетам об ошибках для тестирования их системой, поскольку обработка их прямого добавления в репозиторий не была реализована. Олаф также настраивает систему таким образом, чтобы она позволила публиковать результаты и производить сравнение с автоматической системой тестирования регрессий для каждого коммита. У VirtualBox, виртуальной машины, используемой в автоматической системе тестирования патчей, имеются давние проблемы с выводом в последовательный порт, что усложняет получение результатов тестирования, к тому же эта проблема затрагивает и тесты регрессий. В будущем работа будет сосредоточена на том, чтобы сделать систему проще в использовании, а уже сейчас у разработчиков ReactOS имеется дополнительный инструмент, облегчающий работу, и одним оправданием меньше за патчи, повреждающие функциональность.

Итоги CLT

Несколько участников немецкого сообщества ReactOS вновь посетили Chemnitzer Linux-Tage в этом году, показали ReactOS и подарили всем заинтересовавшимся около 170 дисков с системой. Выставку посетило более двух тысяч человек, поэтому она стала отличным местом для демонстрации ReactOS. Стремление выпустить версию 0.3.13 по большей части было обусловлено необходимостью обеспечить команду обновлённой версией системы для её демонстрирования, и все те, кто принял участие в конференции, могли получить копию новой версии системы до её официального выпуска. По словам присутствовавших разработчиков, количество посетителей, которые знали о ReactOS и тех, кому о проекте ничего не известно, было примерно одинаково. Разработчики отвечали на вопросы посетителей и даже имели возможность пообщаться с завсегдатаями IRC-канала во время выставки. Самым забавным в этой поездке было наверное то, что все представители проектов, например команда ReactOS, спали в спортивном зале чтобы сэкономить деньги. Сказать "как бы я хотел быть там" можно, пожалуй, лишь по поводу бесплатной еды, на которую налегал Тимо Кройцер (Timo Kreuzer). Фотографии, сделанные разработчиками, а также файл образа подарочного диска вы можете найти чуть ниже.

Новые разработчики и помощники

Олаф Сейка, один из основных тестеров проекта, несколько месяцев назад совместно с Колином Финком (Colin Finck) приступил к работе над объединением воедино набора машин для сборки и тестирования. В действительности, коммит-доступ он получил ещё некоторое время назад, однако Олаф пропустил сообщение от Колина о предоставлении ему доступа на запись в репозиторий, и не знал об этом до тех пор, пока Алексей Брагин, попытавшись сделать то же самое, не заметил этого. Помимо оказания помощи с новыми системами сборки, Олаф взял на себя часть ответственности по добавлению в репозиторий переводов, слияний и других различных патчей. Рафал Харабиен (Rafal Harabień) - это ещё один новичок, и до получения коммит-доступа он создавал качественные патчи с внушительной скоростью. По большей части он просматривал весь исходный код и исправлял все обнаруженные ошибки, которые только мог. Рафал уже устранил несколько старых ошибок, и, мы надеемся, что с его помощью новые ошибки будут устраняться быстрее.

Ссылки

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