Здравствуйте, дорогие друзья!
Вот и заканчивается 2023 год. В этой статье я хочу продолжить начатую в 2021 году традицию вспоминать наиболее важные события из жизни ReactOS за год. То, что статьи не появляются на Хабре, не значит что система мертва. Медленно, но верно, в ReactOS реализуются разные фичи и исправляются баги. И в данной статье мы рассмотрим что произошло в жизни системы в 2023 году.
События
CLT2023
ReactOS приняла участие в CLT2023. Вот несколько фотографий со стенда проекта, предоставленных @EmuandCo:
Функции
"Выполнить" из адресной строки
В ReactOS добавили функцию запуска приложений из адресной строки подобно пункту выполнить. Теперь Вы можете запустить приложение введя команду в адресной строке, типа calc или winver.
Повышение стабильности работы сети
В основную ветку Дугом Лайонсом было добавлено исправление в драйвер TCP/IP, позволяющее использовать 0xFFFF в качестве корректного номера порта. Это дает исправление BSoD, который ранее возникал после нескольких часов/дней использования сети.
После исправления участник @KCSoftwaresсообщает о более чем 30 днях работы в сети без сбоев!
Азиатский ввод
Наш разработчик Katayama Hirofumi MZ реализует IME (Input Method Editor) - поддержку ввода азиатских языков.
IME у ReactOS настолько совместим с Windows-стандартом, что поддерживает сторонние методы ввода. Участник сообщества @Spz2022 присылал скриншот с демонстрацией работы одного из таких IME - Sogou Wubi Input Method 2.0.
Поддержка новых системных звуков
В мае 2023 года участник сообщества под ником @TAN-Gaming реализовал в ReactOS поддержку новых звуковых уведомлений.
Аппаратное ускорение у DirectX
В конце июня в master-ветвь добавили патчи Олега Дубинского в win32k по DirectX и это значит, что теперь на реальном железе поддерживается аппаратное ускорение графики (с заменой следующих компонентов от XP/2003: ddraw.dll, d3d8.dll, d3d9.dll, dxg.sys).
И вот, участники сообщества тестируют данную наработку (правда, пока в виртуалке).
Панель задач запоминает положение
Благодаря закрытому пулл-реквесту и последующему коммиту в начале июля 2023 г. от участника сообщества @cbialorucki ReactOS запоминает положение панели задач и ее закрепление даже после перезагрузки.
Дописывание GUI-интерфейса первого этапа установки системы
Со 2 сентября 2023 года наш разработчик Hermes Belusca был нанят на 5 месяцев на завершение реализации GUI-интерфейса первого этапа установки. По завершении данного контракта должна получиться возможность установки системы из GUI-интерфейса в т.ч. с LiveCD.
Доступен опытный образ с наработками (от 19 декабря 2023 г.).
Перевод первого отчета о работе разработчика доступен в нашем vk-сообществе.
Windows 7-подобная панель задач
Благодаря участнику сообщества @cbialorucki в ReactOS были реализованы большие значки на панели задач, что делает ее похожей на панель Windows 7.
Параметры переключаются в настройках панели задач.
Группировка значков пока не реализована.
Новые функции внешнего вида папок
В проводнике ReactOS добавили функции настройки отображения полного пути в заголовке и адресной строке. Теперь можно либо скрыть полный путь в адресной строке (отображая только текущий каталог) либо напротив, показать полный путь в заголовке вместо текущего каталога.
Загрузка с NTFS
В конце августа в ReactOS был реализован загрузочный сектор NTFS, который загружает загрузчик системы - FreeLdr - из раздела NTFS. Но стабильного драйвера NTFS в ReactOS пока нет и без специальных танцев с установкой драйвера NTFS от Microsoft, копированием файлов и ручной установки загрузчика протестировать эту функцию пока не получится.
Аварийное завершение работы
В Windows Server 2003 есть функция аварийного завершения работы/выхода из системы. Она запускается из Диалогового окна безопасности Ctrl-Alt-Del, при удержании клавиши CTRL и выборе параметра «Завершение работы»/«Завершение сеанса». При выборе аварийного завершения работы/сеанса компьютер перезагружается/завершает сеанс немедленно, без каких-либо попыток сохранить пользовательские данные.
Такая функция была реализована в компоненте Winlogon в ReactOS в конце августа 2023 г.
Исправление и проверка реестра
19 ноября 2023 года в основную ветку были объединены наработки нашего разработчика Джорджа Бисока, по исправлению и проверке реестра. Это важная веха на пути к повышению стабильности ReactOS и движения в сторону беты.
Принудительное выключение ReactOS (после зависания, BSoD или перезагрузки виртуальной машины) при следующей перезагрузке, могло привести к BSoD или непроходимому экрану входа в систему (Ctrl-Alt-Del). Данная проблема возникала из-за повреждения реестра, поскольку проверка и исправление реестра не были реализованы.
Теперь большинство этих случаев станут историей!
Драйвера сетевых карт для виртуальных машин от MS
В октябре 2023 г. в ReactOS был добавлен драйвер для сетевых карт серии 21x40 написанный @disean.
В аппаратном исполнении такую карту уже довольно сложно найти, но знаменита она тем, что используется в качестве эмулируемого сетевого адаптера в виртуальных машинах Connectix / Microsoft VirtualPC / HyperV.
Теперь драйвер не нужно искать и скачивать, он установится сам, полностью автоматически!
Вот скриншот, демонстрирующий это:
ARM
Хотя работы над ARM в ReactOS идут не так уж активно, есть некоторые подвижки.
Загрузчик ReactOS ARM на реальном оборудовании
Участникам сообщества получилось запустить FreeLoader (загрузчик ReactOS) на Lumia 950XL.
Приложения ReactOS портированные на ARM64 и запущенные на планшете с Windows 10
Несмотря на то, что на ARM еще не портированы многие системные компоненты и драйвера, пользовательские приложения компилируются для ARM и работают в Windows для данной архитектуры.
Серверы
Web и FTP сервера
Участник сообщества Артём Миляев запустил в ReactOS веб- и FTP- сервера.
Использовались программы:
Xitami 2.5c2 для запуска веб и FTP сервера
Wine Internet Explorer для просмотра страниц
FTPCommander 5.85 для просмотра FTP.
Minecraft Spigot Server
Участник сообщества @React0S запустил в системе Minecraft Spigot Server 1.16.5 на ReactOS x64 с 8 ГБ памяти, выделенной для JVM!
Это довольно быстро для клиента, но на сервере обновление интерфейса происходит медленно.
16 виртуальных машин с ReactOS с Minecraft-серверами
Участник сообщества @ThunderClapLP запустил в Proxmox 16 виртуальных машин с ReactOS, на каждой из которых был запущен сервер Minecraft.
Поддержка архитектуры x64
Участники сообщества продолжают тестировать сборки ReactOS для x64 архитектуры. И несмотря на то, что WOW64 в системе пока нет, список приложений, которые уже можно проверить в работе, весьма велик.
NewMoon
SumatraPDF
PeaZip
Putty
Notepad++
Emule
Firefox
Gimp 2.8
ClassicCube 1.3.x
Тесты сообщества
Longhorn Aero в ReactOS
Участник ReactOS-сообщества @The_DarkFireпровел интересный тест.
Благодаря замене win32ss и некоторых других файлов на файлы из Windows Longhorn 5048, а также благодаря хорошему пониманию устройства работы WDDM в аспекте пользовательского режима @The_DarkFire запустил в ReactOS Aero.
Эффекты работают на встроенном программном рендерере.
Были заменены следующие компоненты:
csrsrv.dll
d3d9
dxg
win32k
user32
winsrv
gdi32
uDWM
DWMAPI
MILCORE
Демонстрация возможностей режима совместимости
Игру CrispyDoom запустили в ReactOS x64 в режиме совместимости NT6.
Так же предоставлен скриншот с результатом запуска этой же версии CrispyDoom на Windows XP x64.
Тестирование на реальном железе
В этом году было много тестов на реальном железе, но я вам покажу наиболее экзотические.
Xbox
SteamDeck
Результат теста от @The_DarkFire:
ReactOS на Steam deck.
Как пишет автор теста:
Благодаря прогрессу в разработке 64-битного порта и некоторым работам по UEFI, мы теперь можем загружать ReactOS на разном современном странном оборудовании.
Вот Steam deck под управлением ReactOS!
Очень минимален и, к сожалению, не имеет эмуляции PS/2. Но это первый звук нашего будущего!
Старенький ПК
ReactOS на ПК с процессором Intel Pentium II 233 MMX и 64 МБ ОЗУ. Загружается за 5 минут.
Тесты NTVDM
Участник сообщества @simonelombardo провел тесты с NTVDM в ReactOS.
А участник @SigmaTel71 протестировал DynaBlaster (BomberMan):
ПО на x86
Chromium
После масштабной работы с подсистемой безопасности в ядре с 2021 года (Chromium очень много работает с токенами безопасности), благодаря нашему разработчику Джорджу Бисоку, в ReactOS работает Chromium 49 (скомпилированный для Windows XP/Server 2003)!
Но, требуется параметр «--no-sandbox», и залипает мышь. И то, и другое — наши ошибки недоработки. Тест провел: reactosfanboy
Сборки Chromium под XP - https://github.com/Alex313031/chromium-xp/releases
Adobe Photoshop 7
WinRAR 5.6
Bryce 4
Bryce - программа для 3D моделирования. Последняя версия, 7, вышла в 2010 году. Протестированная версия, 4, вышла в 1999.
LMMS 1.2
SoftMaker FreeOffice
Timeline Maker Pro
Timeline Maker Pro - инструмент визуального анализа с временным критерием и инструмент презентации. Программа создаёт диаграммы из заданных тем для построения разнообразных графиков для печати, распространения и презентации.
Игры на x86
Quake 2, 3 и Nerf Arena
Serious Sam Alpha и Half-Life
SubwaySurf
Icy Tower
Гарри Поттер и Философский камень
Avatar The Last Airbender - The Path of Zuko
Samurai II - Vengeance
UFO: Alien Invasion
The Simpsons
Pro Evolution Soccer 2013
Rayman Origins Demo
MarbleBlast Ultra
WorldOfWarcraft
MageKnight Apocalypse
FNAF
ExiledKingdoms
Заключение
И вот, собственно, на этом я и хочу завершить "годовой отчет" ReactOS.
Желаю вам всем успехов на работе и дома!
До новых встреч и счастливого нового года!
Ссылки
Комментарии (45)
Breathe_the_pressure
30.12.2023 14:05+1А вот один бывший президент говорил, что никто никогда не вернётся в 2007 год.
jackcrane
30.12.2023 14:05+2проблема возникала из-за повреждения реестра, поскольку проверка и исправление реестра не были реализованы.
в оригинальной windows реестр - это несколько БД на движке типа MS Jet. там ничего не надо "проверять и исправлять", достаточно откатить незавершенные транзакции (на самом деле нет).
в wine реестр - это несколько текстовых файлов, их можно положить в систему контроля версий.
в reactos - ???
MagisterAlexandr
30.12.2023 14:05+1Что за игра, HorBlitz? (не получается найти)
fivlabor
30.12.2023 14:05+1Похоже на DOS-игру "Isle wars" (там еще пара подобных), но не она
https://www.dosgames.com/game/isle-wars/
MagisterAlexandr
30.12.2023 14:05+3Нашлась игра на CD https://archive.org/details/famfun-strategy, называется Horror Blitz.
Shannon
30.12.2023 14:05+6Шикарная вещь всё-таки этот ReactOS, всегда интересно потыкать новую сборку. Даже если ещё далеко до релиза, как-то существование такой вещи вдохновляет.
voidptr0
30.12.2023 14:05+3Переписанный WindowsXP? А зачем? Старые приложения исчезают в дали, новые средства разработки там не работают. Потешить ЧСВ и "потыкать"? Я не пойму кто это финансирует - но возврат инвестиций потенциально "околонулевой".
StjarnornasFred
30.12.2023 14:05+16Ну нравится людям этим заниматься, милое и безвредное увлечение в мире IT. Пусть.
Fell-x27
30.12.2023 14:05+5Еще пару лет назад спрашивали "переписанный вин98? Зачем". Сейчас вот уже доросла до "переписанный винXP". Судя по тестам лонгхорна, в следующем году ее вполне могут называть "переписанной вистой" или даже "переписанной вин7", такими темпами. А тут уж и до актуалочки рукой подать!
R0bur
30.12.2023 14:05+2Назвать-то можно, но это при условии, что заявленные ранее ориентиры были достигнуты. Но пока что система не имеет даже поддержки NTFS, на которую в MS Windows ещё завязаны многие аспекты безопасности. В итоге нельзя сказать, что достигнута даже цель WinXP.
Fell-x27
30.12.2023 14:05+3Когда в качестве альтернытивы Unix создавался GNU/Linux, Торвальдса и Столмана тоже спрашивали, сдается мне о чём-то таком же :)
Newbilius
30.12.2023 14:05+3Радикально разные вещи - на бинарном уровне совместимости Торвальдсу и компании достигать не требовалось, как итог - у них получилось выйти в продакшен)
Fell-x27
30.12.2023 14:05+1Ну так там и стартовые условия были ни в пример мягче. А тут как ни крути, нет смысла делать "открытый аналог винды" без бинарной совместимости с этой самой виндой.
StjarnornasFred
30.12.2023 14:05Опять же, вопрос "что такое аналог?"
Если аналог - это ПО, предназначенное для примерно тех же целей и эксплуатируемое похожим образом, то аналог - это любая другая ОС, пригодная для стационарных компьютеров: Linux, Chrome OS, Mac OS, BSD, Solaris, Haiku. С небольшой натяжкой даже Android. [Бензиновая Газель с вариатором и грузовой будкой - аналог дизельного Атланта с механикой и цельнометаллическим кузовом]
Если аналог - это ОС, которая имеет схожую структуру, пользовательский опыт и дизайн, то тут есть 2 пути. Первый - это взять Linux и оформить его под Windows. Не просто гуй и обои, а ещё и меню настроек в дизайне панели управления, встроенный магазин приложений и т.д. Примеры есть и очень удачны. Второй способ - это городить свой "китайфон", который выглядит, звучит и структурно аналогичен Windows, но с ней несовместим. Ну, это в принципе возможно. [BAIC BJ40 - аналог Jeep Wrangler]
Если аналог - это ОС, строго совместимая с оригиналом, то тут тоже 2 пути. Или мы активно плагиатим с оригинала, вытягивая слитые исходники Windows и по возможности партизаня неслитые.[IKCO Tara - аналог Peugeot 301] Или мы пытаемся сделать то же самое путём реверса, не зная, как оно работает на самом деле.
Последний путь выглядит самым проигрышным и бесполезным для практических нужд.
strvv
30.12.2023 14:05+221x40 - это dec tulip (https://phy.duke.edu/~rgb/brahma/Resources/beowulf/linux/drivers/tulip.html), один из первых чипов pci эзернета, простой и поэтому везде используется... у 3Com тогда использовался pci-isa-bridge потом 3с509 чип. Pci чипы у 3com пошли с 900 серии.
потом, 440bx это PPro233, а не P233MMX, у пентиума-1 не было 440 серии.
пробовал ваше изделие на P166MMX с 16Мб - не пустилось. какая версия ещё пускалась? WNT4.0 с полуосью работают на ура.
R0bur
30.12.2023 14:05+2пробовал ваше изделие на P166MMX с 16Мб - не пустилось.
Разработчики ReactOS заявляют в качестве ориентира Windows 2003 Server, а для этой версии минимальный объём оперативной памяти - 128 Мб.
AlexanderS
30.12.2023 14:05+7Приятно видеть прогресс. Одна из самых главных полезностей проекта - наработка компетенций, которая, надеюсь, не пропадёт и выльется во что-то полезное и практичное.
По сути это же единственный в мире хоть какой-то аналог Windows ;)
314159abc
30.12.2023 14:05+1Про линукс не слышали?
AlexanderS
30.12.2023 14:05+4Линукс это не аналог. Это совершенно иная ОС.
StjarnornasFred
30.12.2023 14:05А что в вашем понимании аналог?
AlexanderS
30.12.2023 14:05+6Возможно я не совсем точно выразился. Имелся ввиду "виндузоподобный аналог")
Линукс аналог функциональный, но структурно, архитектурно, да и вообще идеологически это совсем другое ПО.
mnnoee
30.12.2023 14:05+1ReactOS интересный проект, если честно, правда, когда начинаешь его изучать глубже задаешься такими вопросами, что просто страшно думать, почему все так плохо. Например, почему нельзя работать паралельно с проектом wine? Я читал их официальное вики и думал, что они работают сообща, но нет. Это странно, reactos могли бы сфокусироваться на реализации ядра, загрузчика, поддержки драйверов, а остальную часть брать у вина и переписывать под себя.
slonopotamus
30.12.2023 14:05+3остальную часть брать у вина и переписывать под себя
Насколько мне известно, в ReactOS используется изрядное количество кода из Wine.
Panzerschrek
30.12.2023 14:05+1А в чём проблема с драйвером NTFS? Вроде формат уже давно как изучили, в Linux есть драйвера для данной файловой системы. Почему тогда ещё в ReactOS, где NTFS должна быть как родная, её драйвер ещё не стабилен?
boris768
30.12.2023 14:05Потому что драйвер файловой системы - это не hello world в консольку, а драйвер для линукса - это намного больше чем ничего, но это надо уметь. Всё же дело с файловыми системами было даже в другом - подсистемы, связанные с фс, были на уровне "запускает fat32 и ладно"). Сейчас с этим лучше, можно попробовать поставить систему на btrfs, через правки, можно на ext2. Штатный драйвер, насколько помню, умеет читать разделы, если разрешить в реестре - то и писать, но может порушить раздел. Но в целом, через некоторые (уже значительно меньшие чем раньше) танцы с бубном можно подложить виндовый драйвер и он с достаточно большим шансом заработает.
nuclight
30.12.2023 14:05А участник @SigmaTel71 протестировал DynaBlaster (BomberMan):
Я аж вспомнил этот дребезжащий звук, но тут поди без звука?
Про загрузочный сектор тоже весело.
R0bur
Учитывая, что прошедший год можно назвать "Годом GPT", не будет ли оптимальнее показать нейронной сети Windows 2003 Server, потом текущее состояние проекта ReactOS, и попросить дописать исходные тексты "чтобы оно так же работало"?
CoolCmd
и нейросеть даст ключ активации для Windows 2003 Server
petr97 Автор
А где вероятность того, что GPT не "подсмотрел" в утекшие исходники Microsoft? Один раз так заявили, что в ReactOS используется утекший код, и затормозили проверкой разработку года на полтора.
R0bur
Не показывать нейросети исходники Microsoft, "воспитать Бабу Ягу в своём коллективе". Интерфейсы Windows API достаточно хорошо документированы, а в публикациях о GPT часто приводятся истории успеха, когда по объявлениям функций сеть вполне прилично дописывает их реализацию.
Fell-x27
Где гарантия, что тот же chatgpt уже не накормлен исходниками винды?
kozlov_de
Так это проблемы openai
Areso
Посмотрите на реальную практику: сейчас нельзя (можно, но нельзя) опубликовать что-либо, что было сделано с помощью генеративных сетей, если вы не готовы предоставить полные данные, по которым обучалась нейросеточка.
Таким образом, лицензионная чистота производных стоит под очень большим вопросом.