Главная | Информация | Сообщество | Разработка | myReactOS | Связаться с нами

  1. Главная
  2. Сообщество
  3. Разработка
  4. myReactOS

  1. Обзор
  2. Люди ReactOS
  3. Форумы
  4. Вики
  5. Списки рассылок
  6. IRC-каналы
  7. Выпуски новостей
  8. Блоги
  9. ЧаВО

Community > ReactOS Newsletter Archive > ReactOS Newsletter: Выпуск новостей ReactOS №56

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

by Z98 on 2009-04-09
translated by Anton Podavalov on 2009-04-19

top

USB


Поддержка USB в ReactOS - отдельная история. Изначально, Алексей Брагин потратил много времени на портирование стека Cromwell USB из Linux. Но от этой идеи отказались в пользу другого стороннего проекта - USB стека, разработанного для NT4 программистом из Китая. Однако, реализация вышеупомянутого стека была не закончена и довольно нестабильна, да и автор отказался от дальнейшего развития проекта, поэтому Алексей некоторое время занимался исправлением ошибок и наращиванием функциональности. USB драйвер мыши был реализован не совсем корректно и, как могли заметить многие, пробовавшие воспользоваться этим драйвером, он работал ненадёжно. Недавно Алексей занялся написанием драйвера для USB клавиатуры, и попытался применить тот же подход, что был использован для написания драйвера USB мыши, чтобы USB клавиатура заработала хоть как-то. Однако, Алексею захотелось реализовать всё "пучком", а для этого надо было заставить работать диоды на клавиатуре. Но как оказалось для управления светодиодами используется несколько другой метод, нежели управление движением мыши или нажатиями клавиш. Столкнувшись с этой проблемой, Алексей открыл, что драйвер USB парсит конфигурационный дескриптор, посылаемый устройством, неправильно и, проконсультировавшись с одним из разработчиков Haiku, сведущим в разработке USB драйверов, исправил ошибку. Последнее повлекло правильную и стабильную реализацию драйвера для USB мыши. USB драйвера в работе полагаются на обычные драйвера мыши и клавиатуры, именно поэтому обычные драйвера должны быть загружены до загрузки USB драйверов. Поддержка USB устройств с помощью обычных драйверов первоначально была введена Эрве Поссино (Hervé Poussineau). Алексей просто соединил вместе разные части, чтобы получить почти работающую систему.

С тех пор, как в ReactOS имеются драйвера для USB мыши и USB клавиатуры, нужно отметить следующий факт: оба эти драйвера разработаны для текущей реализации USB стека в ReactOS. USB в NT5 и выше имеет 2 стека: PnP и HID, что коренным образом отличается от реализации в ReactOS. Прежде чем мы сможем думать о реализации USB драйверов, которые следуют стандарту NT5+, нам в первую очередь нужен USB стек, основанный на NT5+ архитектуре. Сделано это было в основном для совместимости со сторонними драйверами и функционирования основных USB устройств.

top

Сеть


Арт Йеркес (Art Yerkes) и Камерон Гутман (Cameron Gutman) приложили немало усилий чтобы получить сетевой стек в лучшей форме и реализовать недостающую функциональность. Одна из проблем: из-за повреждений памяти имели место ошибки в работе сайтов, которые требуют SSL. Массив IP адресов поддерживается и используется двумя функциями: AfdGetPeerName и AfdGetSockName. Арт полагает, что сайты использующие SSL могут обращаться друг к другу дополнительные несколько раз, для обработки сертификатов, что и приводит к ошибке. С исправлением этой ошибки стало возможным посещать такие сайты, как страница ввода имени пользователя на gmail, а также использование приложений подобных Thunderbird зависимых от SSL для обеспечения безопасности.

Арт и Камерон провели два различных исследования сетевого кода. Проблема, с которой они столкнулись - это, во многих случаях, запутанная реализация сетевого интерфейса (множество структур имеют очень похожие имена и всего лишь немного отличаются членами). Примерами таких структур служат TDI_ADDRESS_INFO, TDI_ADDRESS_INFORMATION и TRANSPORT_ADDRESS. Предполагается, что протокол может вернуть множественные адреса по запросу, что не является нормой в сетевой системе. Так как всё это части определенного интерфейса, разработчики не могут изменить этого и должны просмотреть весь код, чтобы удостовериться что соответствующие структуры данных и упомянутые члены этих структур используются. Самое ужасное заключается в том, что иногда разница между структурами не принимается во внимание, а это влечёт за собой не всегда корректную работу разных условиях.

top

Инфраструктура тестирования


Кристоф фон Виттич (Christoph von Wittich) запустил автоматическое тестирование с помощью winetests, а Алвин Тэн (Alwyn Tan), член нашего сообщества, недавно сделал временный графический интерфейс, служащий для просмотра и сравнения результатов wine-тестов. Этот веб-интерфейс позволяет сравнивать результаты тестирования (максимально) пяти разных сборок или же просто просмотреть изменившиеся результаты. Но уже сейчас Колин Финк (Colin Finck) работает над созданием более совершенного графического интерфейса с большим количеством возможностей, который будет служить заменой текущего. Вдобавок ко всему, обновлён buildbot, который используется для сборки и запуска wine-тестов. Colin также переписал программу rosautotest для автодиагностики ОС - теперь стало возможным перезапустить тестирование после сбоя ReactOS. Благодаря усилиям Стефана Гинзберга (Stefan Ginsberg), мы уверены в том, что ReactOS проходит проверку текущим набором тестов. Для тех же, кому не терпится повозиться с новым тест менеджером - добро пожаловать по этой ссылке.


top

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.