16 декабря сего года, команда разработчиков ReactOS, спустя долгое время после последнего релиза (с последнего прошло почти полтора года) выпустила новую версию под номером 0.4.14. Это все еще альфа-версия.
Выпуск релиза так долго задерживался из-за соблюдения принципа, что число известных регрессий не должно быть больше, чем в предыдущем релизе. При этом, исправлять регрессии весьма трудная задача, а так как желающих заниматься этим добровольцев было мало, а число обнаруженных тестерами регрессий периодически увеличивалось, это и повлияло на сроки выхода новой версии.
В данной статье мы рассмотрим основные новшества как со стороны разработчиков, так и со стороны сообщества.
Новости от разработчиков
"Отправить в..." и улучшение проводника
В проводник добавили функцию "Отправить в...", позволяющую отправлять файлы и каталоги в указанные места, такие как раздел "Мои Документы", "Рабочий стол" или в "Сжатую zip-папку".
В контекстное меню рабочего стола добавлены команды "Открыть расположение объекта" и "Командная строка" для открытия каталога с выбранным файлом в файловом менеджере и открытия командной строки с указанным каталогом.
Решены проблемы с прокруткой, улучшены некоторые COM-интерфейсы (Component Object Model) и устранены регрессии в реализации drag&drop.
Улучшен диалог безопасного извлечения устройств, в котором теперь показываются подключенные устройства.
Улучшения ICMP
В сетевом стеке улучшена поддержка протокола ICMP (Internet Control Message Protocol), реализация которого ранее была не полной. В новой версии появилась поддержка вызовов IOCTL_ICMP_ECHO_REQUEST и полностью переписаны все процедуры Icmp*.
Улучшения ядра
Была продолжена работа по устранению ошибок и повышению стабильности ядра системы. Внесены улучшения и переписаны некоторые части менеджера памяти, началась работа над реализацией поддержки PAE (Physical Address Extension). Из кодовой базы Wine перенесён код для обработки исключений в CRT (C Run-Time).
В драйвере PnP (classpnp.sys) исправлены ошибки, мешавшие нормальной работе устройств хранения. В подсистеме ввода/вывода улучшено взаимодействие с устройствами. Устранена серия уязвимостей, вызванных переполнениями буфера.
Добавлена начальная реализация библиотеки Resource Arbiter, которая может использоваться для разрешения конфликта доступа к ресурсам в драйверах в различных шинах, таких как PCI. Также добавлен код для отладки работы PnP и менеджеров ввода/вывода. В менеджере PnP обеспечена поддержка сопоставления возможностей устройств с флагами, отражающими эти возможности.
Обновлён отладчик ядра и связанные с ним модули. В интерактивном отладчике KDBG улучшена работа команд cregs и tss, переписан код обработки TSS. Завершена реализация отладочных фильтров.
NetKVM VirtIO
В состав включён драйвер NetKVM VirtIO, позволяющий ускорить выполнение сетевых операций в окружениях, работающих под управлением систем виртуализации на базе QEMU и KVM. Ранее его приходилось ставить вручную, а теперь он доступен "из коробки".
Другие улучшения
Улучшена работа загрузчика FreeLoader, в котором появилась возможность загрузки 64-разрядных систем на базе ядра Linux и решены проблемы с чтением из Ext2. Устранены сбои при загрузке в отладочном режиме. Добавлена эмуляция ARC, необходимая для поддержки оборудования NEC PC-98. Улучшена поддержка загрузки на устройствах Xbox.
Обновлены реализации экранной клавиатуры и инструментов для людей с ограниченными возможностями (переобразовали диалог в обычное окно; текст кнопок теперь соответствует выбранной раскладке клавиатуры, а не системному языку; кнопки обновляются автоматически при переключении раскладки (и при нажатии Shift / Capslock; обновление наиболее надежно, когда клавиатура сфокусирована; и пр.)
Продолжена работа над драйвером ISA PnP, обеспечивающим определение устройств на шине ISA.
Исправлены ошибки в модуле comctl32 (Common Controls), мешавшие нормальному отображению установщика Visual Basic 6.
Удалены устаревшие шрифты, что привело к небольшому увеличению производительности, снижению потребления ОЗУ и сокращению размера системных образов.
Осуществлена синхронизация с кодовой базой Wine Staging 4.18 и обновлены версии сторонних компонентов: mpg123 1.25.13, libjpeg 9d, mbedtls 2.7.14, libtiff 4.1.0, ACPICA 20200326, BtrFS 1.7.2, glu32 9.0.1. Обновлён список корневых сертификатов.
Удаление неподдерживаемых файловых систем
Из ReactOS удалена поддержка файловых систем ReiserFS и UFS. Причиной удаления стала неподдержка апстрима драйверов и полузаброшенное состояние самих файловых систем.
Новости от сообщества
UEFI
Участник сообщества ReactOS Illen составил рабочую инструкцию как с помощью свободной и opensource альтернативы winload.efi - Quibble - загрузить ReactOS через UEFI. На нашей русскоязычной вики есть перевод.
Freeldr + DOS/Win9x
Участник сообщества ReactOS Manuel сообщает, что после доработки freeldr - загрузчика ReactOS - и закрытия соответствующих багов, он находит установленные рядом FreeDOS/MS-DOS/Win9x и добавляет их в меню.
Chrome
Участник сообщества @The_DarkFire__ запустил в ReactOS Google Chrome 49 - последнюю версию, доступную для Windows XP.
BeOS 5 PE
Один из участников сообщества установил и запустил из под ReactOS BeOS 5 Personal Edition.
Запуск ReactOS с CF-карты
Один из участников сообщества @tommi117 прислал новость:
"HP Pavilion 15 с разбитым экраном и неисправным жестким диском. Моя CompactFlash-карта Trippleboot с Win7 (0x7b) не запускается с USB, но ReactOS таким образом загружается нормально. Я даже могу установить родное разрешение экрана."
SMP
На последнем GSoC один из студентов начал реализацию многопроцессорности и многоядерности в ReactOS.
Один из участников сообщества @The_DarkFire поделилися видео с тестом:
Dsound.dll
Один из участников сообщества, а теперь еще и разработчик Олег Дубинский работает над реализацией Dsound.dll библиотеки реализующей DirectSound, необходимой для вывода звука в разных играх и программах.
Видео, загруженно в VK и Хабр вставить его не дает. Поэтому прикрепляю ссылками:
-https://vk.com/wall-1086956_86128
-https://vk.com/wall-1086956_86336
WOW16
Совсем недавно, месяц назад, в систему была добавлена поддержка WOW16 на основе Winevdm. В первых тестах участники правили реестр для запуска программ, а сейчас система автоматически запускает 16-битные программы если Winevdm установлен.
Программы и игры
Заключение
Скачать релиз можно по ссылке с sourceforge.net, как BootCD, так и LiveCD.
Вам понравился этот релиз? Ждем ваших комментариев и мнений! Не забывайте, что вы можете помочь проекту не только пожертвованиями, но и просто поставив ему звездочку на гитхабе!
Вы вдруг захотели поставить ReactOS первый раз в своей жизни? Обязательно прочтите этот мануал по установке системы. Если у вас остались вопросы, то мы с радостью ответим на них в нашем чате.