ROS Newsletter60
Содержание
Выпуск новостей ReactOS №60
RBuild и компилятор Microsoft
Многие из разработчиков хотели бы использовать компилятор от Microsoft для сборки ReactOS, но никто - заниматься монстром, в которого превратился RBuild (внутренняя программа для сборки). KJK::Hyperion решил, что достаточно психически устойчив для того, чтобы заняться этим, и в течение некоторого времени работает над возможностью использовать компилятор, отличный от GCC. Его дополнение к RBuild позволяет обнаружить наличие компилятора VC++, который используется в Visual Studio, одном из SDK или WDK. Затем начиналась сборка, но практически сразу давала сбой.Существуют как мелкие, так и серьезные отличия при написании кода для GCC и MSVC, и эти отличия необходимо "сглаживать" в коде, прежде чем появится возможность успешной сборки. И проблема не только в этом: так как ReactOS является операционной системой, многие вспомогательные файлы компиляторов должны дублироваться (Platform SDK, например).Это дублирование было сделано для GCC, но не для MSVC. Следующим шагом должна стать линковка скомпилированных объектов компоновщиком (linker) от Microsoft, с чем KJK ещё не разобрался.Параметры коммандной строки, которые принимает этот компоновщик, отличаются от существующих в GCC, и это тоже требует доработки. Остальные проблемы, по словам KJK::Hyperion, "технически слишком сложны", поэтому они будут описаны, если вообще будут, позже. На данный момент, остальной части разработчиков будет необходимо начать попытки сборки ReactOS с использованием MSVC и устранять любые возникающие синтаксические проблемы.
Регрессивное тестирование драйверов
ReactOS использует тесты Wine, чтобы убедиться, что ничего не было сломано в пользовательском режиме, но раньше не было ничего сделано для тестирования интерфейсов ядра и драйверов. Во время исследования проблемы повторной загрузки драйверов, Майкл Мартин (Michael Martin) решил собрать воедино несколько тестов для функций, используемых драйверами. Проблема оказалась в ошибочной(полностью противоположной) проверке коррректности, которую, к сожалению, очень легко сделать и очень сложно найти. Чтобы попытаться предотвратить возможность подобным ошибкам прокрасться незамеченными в будущем, Майкл написал два драйвера, которые тестируют создание устройств, загрузку и выгрузку драйверов и вызывают несколько функций режима ядра. Благодаря этому тесту он уже внёс несколько изменений, исправляющих отсутствующие или неправильно установленныые флаги в структуре DRIVER_OBJECT.
Помимо этих двух драйверов, Майкл также планирует написать приложение, упрощающее доступ к результатам тестов. Эти тесты, в основном, работают в режиме ядра, что делает их отладку и обзор несколько сложнее, чем в тестах Wine.
Регрессия поддержки звука
Если быть кратким, ReactOS имеет некоторую минимальную поддержку звука, только для того, чтобы она исчезала в связи с ошибкой в менеджере объектов. Йоханнес Эндерволд (Johannes Anderwald) работал над поддержкой микшера, которая позволила бы реально контролировать громкость воспроизведения. В Windows все звуковые карты имеют не менее двух компонент устройства, ассоциированных с картой: одна из компонент обрабатывает захват и воспроизведение, другая - сведение(mixing) звука. Раньше ReactOS мог общаться только с первой из компонент и Йоханнес работает над взаимодействием со второй. Проблема же заключалась в том, что ошибка в менеджере объектов портила начальную регистрацию компонент устройства так, что их идентификаторы были установлены в NULL. Это и сделало невозможным для системы раздельное обращение к ним и, соответственно, направление сообщений и команд. Йоханнес удалось создать небольшую "заплатку", хотя он открыто признает, что это может навредить ему в будущем. Надеемся, что ошибка в менеджере объектов будет исправлена быстро, и он сможет вернуться к корректной реализации звуковой поддержки.
Спасибо, Эндрю Гринвуд (Andrew Greenwood)
Эндрю недавно объявил о своем уходе из проекта, так как чувствует, что у него нет больше возможности учавствовать. Так или иначе, его прежняя работа в настоящее время нашла хорошее применение Йоханнесом для предоставления пользовательского режима поддержки звука. Эндрю также сделал много работы для FOSDEM в этом году, включая визитные карточки и создание гибридного загрузочного / LiveCD диска, который мы распространяли. Позже ещё было видео, которое служит доказательством безумия некоторых разработчиков. Мы, от имени проекта, хотели бы пожелать Эндрю успехов в его будущих начинаниях и благодарны ему за его вклад.
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 |