ROS Newsletter57
Содержание
Выпуск новостей ReactOS №57
Видеодрайвер VirtualBox
Недавно в ReactOS заработал видеодрайвер VirtualBox, и теперь люди, использующие VirtualBox, могут получить аппаратное ускорение графики. Для того, чтобы драйвер функционировал правильно, Тимо Крейцер (Timo Kreuzer) исправил две ошибки в подсистеме Win32. Несмотря на то, что видеодрайвер работал и раньше, его функциональность была не полной, и с ним часто возникали проблемы. Первое исправление связано с обновлением изображения при движении указателя мыши по экрану. Когда указатель мыши перемещается из одной точки в другую, изображение, которое находится под ним должно быть перерисовано, а сам указатель скрыт. Затем, координаты указателя должны быть обновлены, а он сам должен быть показан и перерисован. Проблема заключалась в том, что код, отвечающий за вывод указателя в точке с новыми координатами, помимо этого пытался скрыть указатель в точке со старыми координатами. Однако, после того, как координаты были обновлены, осуществлялся вывод изображения, которое находилась под указателем в точке с его старыми координатами. Следствием стало большое количество искажений изображения. Тимо удалил отвечающий за это код, и теперь перемещение указателя мыши работает корректно.
Вторая проблема, которая была решена, связана с изменением разрешения экрана. Решение этой проблемы оказалось проще, и заключалась в том, что ReactOS не сохранял частоту обновления экрана в реестре. Разумеется, видеодрайвер не находил этого значения в реестре и устанавливал стандартное разрешение - 640x480x256. Интересен тот факт, что видео драйвер VMware не зависит от этого значения.
Среда сборки (RosBE) и средство сборки (RBuild)
KJK::Hyperion недавно залил довольно много необходимых обновлений, касающихся средства сборки (RBuild). Однако, это закончилось тем, что обнаружилась серьезная проблема в среде сборки (RosBE) для обеих платформ, как для Windows, так и для Unix. Обновление средства сборки (RBuild) KJK требует или будет требовать использование различных переменных, таких как TARGET_CFLAGS и TARGET_CPPFLAGS, HOST_CFLAGS и HOST_CPPFLAGS. К сожалению, ошибка в Windows GCC мешает их использованию. В частности, GCC хранит пути к директориям заголовочных файлов, в которых он их ищет по мере необходимости. Несомненно, это очень сложно сделать правильно и текущая версия среды сборки (RosBE) не делает это корректно. Для того, чтобы обойти эту проблему, определяются переменные HOST_CFLAGS и HOST_CPP_FLAGS, в которых в правильном порядке перечисляются директории. Разумеется, позже не допускается их использование для добавления дополнительных флагов компилятора, которые были необходимы KJK. Он предложил сменить текущие имена переменных путем добавления к ним префикса ROSBE_.
Вторая проблема, которая заключалась в том, что среда сборки (RosBE) не дает возможности в Unix-подобных операционных системах включать в TARGET_CFLAGS или в TARGET_CPPFLAGS директории, которые используются для сборки. В средство сборки (RBuild) также необходимо внести изменения, касающиеся предоставления информации другим компиляторам, в случае, когда GCC не используется. Это более актуально для Windows, но средство сборки (RBuild) ожидает определения этих переменных независимо от того какая платформа используется, и их отсутствие может вызвать много проблем в среде сборки (RosBE) для Unix-подобных операционных систем. В целом, эту проблему было достаточно легко исправить по сравнению с предыдущей. Колин (Colin) просто добавил определение этих переменных для Unix-версии среды сборки (RosBE).
К этому времени вышел новый Windows GCC, в котором исправлена ошибка, связанная с директориями. Даниэль Реймер (Daniel Reimer) безуспешно пытался собрать ReactOS с ним. Среда сборки ReactOS (RosBE), которая не может собрать ReactOS, является бесполезной, поэтому группа работает над выяснением того, что происходит. После того, как они это сделают, ожидается новый релиз среды сборки (RosBE).
Драйвера сетевых карт
В процессе тестирования 0.3.9, Олаф Слэйка (Olaf Slejka) и еще несколько тестировщиков начали проверять различные сетевые карты на реальном оборудовании и наблюдать за тем, что происходит при установке драйверов этих сетевых карт. Отчеты с отладочной информацией о работе устройств были отправлены Арту Йеркесу (Art Yerkes) и Камерону Гутману (Cameron Gutman), которые проверяли их, чтобы оценить функциональность используемых драйверов и корректность их работы. С этого момента, Арт и Камерон начали добавлять необходимый функционал и исправлять найденные ошибки, а тестировщики, в свою очередь, проверяли новые патчи. Это продолжалось до тех пор, пока разработчики не заставили работать половину из первоначально проверенных сетевых карт и драйверов. Еще осталось несколько сложностей, связанных с тем, что для функционирования драйверов XP/2000 необходимо делать кое-что "наугад", но, по крайней мере, ReactOS уже может использовать для сетевых карт официальные windows-драйвера. Разработчики планируют продолжить работу над улучшением работы сетевых карт и мы надеемся, что к следующему релизу будет намного больше сообщений об успешном запуске драйверов.
Версия 0.3.9 и будущее ReactOS
Хотя в релизе 0.3.9 заметны достаточно неплохие улучшения функциональности, некоторые из них сделаны довольно грубо. Особенно это касается поддержки звука, которая работает только в VirtualBox или последней версии Qemu, на других платформах Йоханнес Эндервольд (Johannes Anderwald) еще не тестировал, по причине нехватки времени. Но даже на VirtualBox/Qemu проблемы в общей кэш-памяти и драйвере FAT могут привести к сбоям при воспроизведении звука. Что касается 0.3.10 разработчики планируют работать над исправлением ошибок, что уже было достигнуто тем, что возможности гораздо проще в использовании, и сама система работает более стабильно. В то же время они планируют уделять больше внимания поддержке драйверов, и не только для сетевых карт. Было много споров относительно того, что бы предпринять для запуска сторонних видеодрайверов. Работа, которую проделали за последнее время для запуска видеодрайвера VirtualBox - это шаг в нужном направлении, но у подсистемы Win32 есть несколько существенных дыр, которые требуют исправления, чтобы некоторые видео драйверы заработали в РОС-коде.
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 |