ROS Newsletter43

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

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

Релиз 0.3.5

Вы должно быть уже заметили, что для загрузки доступен новый релиз (0.3.5) и мы, как обычно, получаем много отзывов о проделанной работе. Судя по всему, самая большая сложность, с которой столкнулись пользователи - запуск ReactOS в Qemu под Vista. По крайней мере, эта проблема точно есть с той версией Qemu, которую содержит наш zip-архив с предустановленной в QEMU ReactOS. Это проблема связана не ReactOS, а именно с виртуальной машиной, поэтому, если у вы столкнулись с этими трудностями, мы советуем использовать Qemu 0.9.0 (а не 0.9.1) или неофициальную сборку Qemu [1] [Прим. пер.- А лучше, не используйте Vista ;-) ]

Другая проблема - с Firefox'ом, там приходится двигать мышкой, чтобы что-нибудь загружалось. Это старый баг, который так и не был исправлен, потому что мы всё ещё не знаем, чем собственно это вызвано. Да, этот баг уже всем надоел, но из-за его сложности, мы не сможем расстаться с ним в ближайшее время.

Звук

Одна из наиболее ожидаемых фич ReactOS - поддержка звука, хотябы уже потому, что многие считают, будто это очень важная часть операционной системы. Эндрю Гринвуд (Andrew Greenwood), занимающийся поддержкой звука в ReactOS, потратил несколько лет на исследование и изучение аудиосистемы Windows. Недавно он сделал ряд коммитов, демонстрируя плоды своего труда, и я сейчас кратко опишу все, что он сделал, и что еще планирует сделать.

В данный момент Эндрю работает над user mode-компонентами звуковой системы. Их нужно три, один из них - MME API, находящийся в winmm.dll. К счастью, в Wine уже реализована эта библиотека, и Эндрю модифицировал её, убрав зависимости от некоторых вещей, специфичных только для Wine. Чего в ReactOS нет, так это двух других DLL - mmdrv.dll и sndblst.dll.

В Windows NT4 было два файла, которые отвечали за звук - mmdrv.dll и sndblst.dll. Первый из них (mmdrv.dll) - это общая низкоуровневая библиотека, поддерживающая работу звуковых драйверов, а второй (sndblst.dll) обеспечивал поддержку для драйверов, основанных на Sound Blaster. Оба этих файла содержат много функционально-схожего кода, поэтому Эндрю хочет объединить их в общую библиотеку. Ожидается, что эта библиотека, под рабочим названием MME buddy, будет поддерживать не только эти две DLL, но также и функционал plug'n'play. Пока это только первый шаг, так как библиотека полностью в user mode. Еще одну библиотеку придётся разработать для kernel mode, вместе с собственно звуковым драйвером. Таким образом, MME buddy будет находить и использовать звуковые устройства через kernel-драйвер. В данный момент Эндрю работает над wave-out, поэтому запись, микширование и даже поддержка MIDI появятся много позже.

Уверен, что некоторые из вас заметили, что в предыдущем абзаце я написал "NT4", а не "XP" или "2000". Всё потому, что с каждой последующей версией, NT наследует звуковую систему предшественника. Основные изменения в 2000 и XP - добавление kernel streaming, и реализация этого функционала потребует еще дополнительной работы. Однако базовая функциональность, присутствующая в NT4 несомненно понадобится, поскольку kernel streaming просто обеспечивает связь с звуковыми устройствами. User mode-компоненты и KS связаны через WDMAUD, ещё одну штуку, которую придётся написать. Очевидно, нам предстоит долгая дорога, но при таком подходе мы по крайней мере видим, каким должен стать код.

Кроме того, хотя sndblst.dll будет работать со звуковыми картами на основе архитектуры Sound Blaster, существуют другие карты, основанные на AC97 и аналогах. Это значит, что Эндрю скорее всего придётся писать ещё что-нибудь, чтобы поддерживать и AC97.

Win32

Для разнообразия, Джим Тэйбор (Jim Tabor) начал работать над кодом user32.dll и изучать Bug #2451. Грубо говоря, похоже существует проблема с минимизацией и восстановлением окон. В результате его расследования складывается впечатление, что код в user32 - просто очень старый код Wine, этак 6-летней давности. Поэтому он делает странные вещи, в том числе - используя SetWindowPlacement вместо ShowWindow. Неожиданно, это оказалось, довольно трудно исправить, пришлось покопать код Firefox'а чтобы разобраться, что же собственно происходит.

Для тех, кому интересно над чем он работал до того - это была поддержка enchanced metafile в gdi32. Metafile - формат графики, впервые введённый в Windows 3.0, для 16 бит. Enchanted Metafile - 32-битный.

Inno Setup

Inno Setup - ещё одна программа для создания инсталляционных пакетов, подобная NSIS, MSI и InstallShield. Она используется для достаточного большого количества приложений и недавние исправления в Runtime Library убрали блокеры, которые не давали Inno Setup работать в ReactOS, так что теперь приложения хотя бы устанавливаются. Это не значит, что после установки они работают, но некоторые все же запускаются. Пьер Швейцер (Pierre Schweitzer) сумел заставить работать LBreakout2, довольно затягивающую игру, а Алексей Брагин (Aleksey Bragin) - XnView, программу-viewer для графических файлов.

Sourceforge Community Choice Awards

ReactOS - один из проектов Sourceforge, так как мы там хостим релизы. В общем, Community Choice Awards идёт полным ходом, и ReactOS был номинирован в трёх категориях: Most Likely to Change the World, Most Likely to be Accused of Patent Violation, и Most Likely to Get Users Sued ("Вероятнее Всего Изменит Мир", "Вероятнее Всего Будет Обвинён в Нарушении Патентов", "Вероятнее Всего Пользователей [этого проекта] Засудят"). Полагаю, что всё это так. Чтобы достичь величия нужно многим рисковать. Так что идите и проголосуйте за нас в этих категориях. Не беспокойтесь, любая известность пойдёт только на пользу проекту.

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