ROS Newsletter75
Содержание
Выпуск новостей ReactOS №75
Вывод изображения
Основным способом вывода изображения в подсистеме Win32 является использование массива цветовых точек (bitmap). Однако, этот термин означает больше, чем просто широко используемый формат изображений. Основной частью этого формата являются аппаратно-независимые точечные изображения (DIB). Ясно, что если существуют аппаратно-независимые изображения, то, разумеется, существуют и аппаратно-зависимые, представляющие собой формат, используемый графическими картами для вывода изображения. Правильное преобразование между этими двумя форматами является неотъемлемой частью прорисовки, и ошибки в этом процессе могут приводить к неправильному отображению цветов и другим видимым ошибкам. Жером Гардо (Jérôme Gardou) успешно решил эту проблему в ветке yarotows. Изображения формата DIB содержат достаточное количество служебной информации, позволяющей убедиться в правильности их интерпретирования, например, такой, как формат цвета, разрешение, палитра создавшего их устройства, информация о сжатии, и, конечно же, значения долей красного, зеленого, и синего цветов для каждого из пикселей, составляющих изображение. Вся эта информация хранится в целом ряде различных структур данных, которые, к сожалению, не полностью поддерживаются ROS, в особенности это актуально для старых версий форматов. Жером устраняет эти недостатки, большая часть его работы уже завершена, и осталась лишь одна не совсем корректно работающая функция. После окончания этих работ произойдёт ещё одно большое слияние ветви yarotows с транком.
Поддержка сети в LiveCD
Кэмерон Гутман (Cameron Gutman) продолжает работу над сетевым стеком, и, в данный момент занимается исправлением ряда ошибок, препятствующих работе с сетью при загрузке с LiveCD. Сетевые карты и некоторые протоколы, к примеру TCP/IP, используют для своей работы драйверы. NDIS это один из таких драйверов, управляющий взаимодействием между другими драйверами поддержки сети, к примеру, он информирует драйверы протоколов, таких, как TCP/IP, о наличии сетевых карт. Для того, чтобы драйвер протокола мог получить такую информацию, он должен зарегистрировать себя в NDIS. В случае ReactOS, драйвер TCP/IP после загрузки не запускался, а NDIS не мог сообщить драйверам протоколов об обнаружении добавленной в систему новой сетевой карты. Если любая из этих проблем в отдельности и могла привести к проблемам работы с сетью, то все вместе они привели к полной невозможности когда-либо выйти в Интернет используя LiveCD, и это не принимая в расчёт третью проблему - служба DHCP так же не может найти добавленные сетевые карты. Первые две проблемы были успешно решены, однако ситуация с DHCP всё ещё остаётся сложной. Для устранения этой ошибки было использовано временное решение, однако в будущем понадобится более корректная реализация. По крайней мере теперь тестеры, использующие LiveCD, смогут выйти в Интернет и провести больше тестов.
CMake
RBuild довольно долго был необходимым злом для проекта ReactOS. Изначальные благие намерения его разработчиков уже давно потеряли актуальность, и RBuild стал крайне громоздким и сложным в обслуживании. Как система сборки он не обеспечивает хорошую абстракцию между основными инструментами, такими, как компиляторы и сборщики, привязывая к ReactOS к стеку GCC, и приводя к невозможности использования других компиляторов, которые хотели использовать разработчики, к примеру MSVC. Было предпринято несколько попыток исправить эти проблемы, последним, кто занимался этим, был KJK::Hyperion. После его ухода из проекта никто не проявил желание взять на себя эту задачу, и многие задаются вопросом, для чего же ReactOS необходима собственная система сборки? Ответ таков: нет веских оснований, по крайней мере, их уже не осталось. CMake ранее уже привлекал к себе внимание разработчиков, но опять же не было каких-либо серьезных действий в этом направлении. Но несколько недель назад Амин Хальди (Amine Khaldi) совместно с командой ARM приступили к работе над веткой CMake-Bringup, которая позволит скомпилировать ReactOS при использовании CMake. Они достигли значительного прогресса и смогли скомпилировать многие библиотеки пользовательского режима. Еще осталось много работы, но, мы надеемся, что CMake в конце концов отправит RBuild на заслуженный отдых, после чего произойдёт ещё несколько изменений в инфраструктуре, которые хотели бы видеть разработчики.
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 |