Здравствуйте, дорогие друзья!

Вот и заканчивается 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)


  1. R0bur
    30.12.2023 14:05
    +2

    Учитывая, что прошедший год можно назвать "Годом GPT", не будет ли оптимальнее показать нейронной сети Windows 2003 Server, потом текущее состояние проекта ReactOS, и попросить дописать исходные тексты "чтобы оно так же работало"?


    1. CoolCmd
      30.12.2023 14:05
      +30

      и нейросеть даст ключ активации для Windows 2003 Server


    1. petr97 Автор
      30.12.2023 14:05
      +8

      А где вероятность того, что GPT не "подсмотрел" в утекшие исходники Microsoft? Один раз так заявили, что в ReactOS используется утекший код, и затормозили проверкой разработку года на полтора.


      1. R0bur
        30.12.2023 14:05

        Не показывать нейросети исходники Microsoft, "воспитать Бабу Ягу в своём коллективе". Интерфейсы Windows API достаточно хорошо документированы, а в публикациях о GPT часто приводятся истории успеха, когда по объявлениям функций сеть вполне прилично дописывает их реализацию.


        1. Fell-x27
          30.12.2023 14:05
          +1

          Где гарантия, что тот же chatgpt уже не накормлен исходниками винды?


          1. kozlov_de
            30.12.2023 14:05

            Так это проблемы openai


            1. Areso
              30.12.2023 14:05

              Посмотрите на реальную практику: сейчас нельзя (можно, но нельзя) опубликовать что-либо, что было сделано с помощью генеративных сетей, если вы не готовы предоставить полные данные, по которым обучалась нейросеточка.
              Таким образом, лицензионная чистота производных стоит под очень большим вопросом.


  1. Breathe_the_pressure
    30.12.2023 14:05
    +1

    А вот один бывший президент говорил, что никто никогда не вернётся в 2007 год.


  1. jackcrane
    30.12.2023 14:05
    +2

    проблема возникала из-за повреждения реестра, поскольку проверка и исправление реестра не были реализованы.

    в оригинальной windows реестр - это несколько БД на движке типа MS Jet. там ничего не надо "проверять и исправлять", достаточно откатить незавершенные транзакции (на самом деле нет).

    в wine реестр - это несколько текстовых файлов, их можно положить в систему контроля версий.

    в reactos - ???


    1. R0bur
      30.12.2023 14:05
      +1

      Рискну предположить, что реестр в ReactOS реализован так же, как в wine.


  1. MagisterAlexandr
    30.12.2023 14:05
    +1

    https://habrastorage.org/r/w1560/getpro/habr/upload_files/fb5/ccd/2b6/fb5ccd2b642b49446b21cdcc651474b7.jpg

    Что за игра, HorBlitz? (не получается найти)


    1. fivlabor
      30.12.2023 14:05
      +1

      Похоже на DOS-игру "Isle wars" (там еще пара подобных), но не она

      https://www.dosgames.com/game/isle-wars/


    1. VelocidadAbsurda
      30.12.2023 14:05
      +2

      Выглядит как реализация классической настольной Risk.


    1. MagisterAlexandr
      30.12.2023 14:05
      +3

      Нашлась игра на CD https://archive.org/details/famfun-strategy, называется Horror Blitz.

      @fivlabor@VelocidadAbsurda


  1. Shannon
    30.12.2023 14:05
    +6

    Шикарная вещь всё-таки этот ReactOS, всегда интересно потыкать новую сборку. Даже если ещё далеко до релиза, как-то существование такой вещи вдохновляет.


  1. voidptr0
    30.12.2023 14:05
    +3

    Переписанный WindowsXP? А зачем? Старые приложения исчезают в дали, новые средства разработки там не работают. Потешить ЧСВ и "потыкать"? Я не пойму кто это финансирует - но возврат инвестиций потенциально "околонулевой".


    1. StjarnornasFred
      30.12.2023 14:05
      +16

      Ну нравится людям этим заниматься, милое и безвредное увлечение в мире IT. Пусть.


      1. regs
        30.12.2023 14:05

        Так ReactS уже и не производится как Альфа версия, в позиционируется просто как песочница для её разработчиков.


        1. regs
          30.12.2023 14:05
          +1

          ReactOS* позиционирует*


    1. Fell-x27
      30.12.2023 14:05
      +5

      Еще пару лет назад спрашивали "переписанный вин98? Зачем". Сейчас вот уже доросла до "переписанный винXP". Судя по тестам лонгхорна, в следующем году ее вполне могут называть "переписанной вистой" или даже "переписанной вин7", такими темпами. А тут уж и до актуалочки рукой подать!


      1. R0bur
        30.12.2023 14:05
        +2

        Назвать-то можно, но это при условии, что заявленные ранее ориентиры были достигнуты. Но пока что система не имеет даже поддержки NTFS, на которую в MS Windows ещё завязаны многие аспекты безопасности. В итоге нельзя сказать, что достигнута даже цель WinXP.


        1. Fell-x27
          30.12.2023 14:05

          Будет :)


    1. Fell-x27
      30.12.2023 14:05
      +3

      Когда в качестве альтернытивы Unix создавался GNU/Linux, Торвальдса и Столмана тоже спрашивали, сдается мне о чём-то таком же :)


      1. Newbilius
        30.12.2023 14:05
        +3

        Радикально разные вещи - на бинарном уровне совместимости Торвальдсу и компании достигать не требовалось, как итог - у них получилось выйти в продакшен)


        1. Fell-x27
          30.12.2023 14:05
          +1

          Ну так там и стартовые условия были ни в пример мягче. А тут как ни крути, нет смысла делать "открытый аналог винды" без бинарной совместимости с этой самой виндой.


          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] Или мы пытаемся сделать то же самое путём реверса, не зная, как оно работает на самом деле.

            Последний путь выглядит самым проигрышным и бесполезным для практических нужд.


    1. gxcreator
      30.12.2023 14:05
      +3


  1. strvv
    30.12.2023 14:05
    +2

    21x40 - это 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 с полуосью работают на ура.


    1. R0bur
      30.12.2023 14:05
      +2

      пробовал ваше изделие на P166MMX с 16Мб - не пустилось.

      Разработчики ReactOS заявляют в качестве ориентира Windows 2003 Server, а для этой версии минимальный объём оперативной памяти - 128 Мб.


      1. strvv
        30.12.2023 14:05

        Какая версия реактос была более скромными требованиями. Наверное версии 2000х годов?


        1. boris768
          30.12.2023 14:05

          Она и не раздувалась сильно. И "не запустилось" слишком широкое понятие, чтобы вообще чем-то Вам помочь.


  1. AlexanderS
    30.12.2023 14:05
    +7

    Приятно видеть прогресс. Одна из самых главных полезностей проекта - наработка компетенций, которая, надеюсь, не пропадёт и выльется во что-то полезное и практичное.

    По сути это же единственный в мире хоть какой-то аналог Windows ;)


    1. 314159abc
      30.12.2023 14:05
      +1

      Про линукс не слышали?


      1. AlexanderS
        30.12.2023 14:05
        +4

        Линукс это не аналог. Это совершенно иная ОС.


        1. StjarnornasFred
          30.12.2023 14:05

          А что в вашем понимании аналог?


          1. AlexanderS
            30.12.2023 14:05
            +6

            Возможно я не совсем точно выразился. Имелся ввиду "виндузоподобный аналог")

            Линукс аналог функциональный, но структурно, архитектурно, да и вообще идеологически это совсем другое ПО.


          1. Fell-x27
            30.12.2023 14:05
            +3

            ReactOS относится к Windows так же, как GNU/Linux относится к Unix.


  1. nitro80
    30.12.2023 14:05
    +1

    RDP-клиент нормально работающий есть под ReactOS?


    1. boris768
      30.12.2023 14:05

      FreeRDP должен работать.


  1. Akr0n
    30.12.2023 14:05

    Будто в двухтысячный окунулся...


  1. mnnoee
    30.12.2023 14:05
    +1

    ReactOS интересный проект, если честно, правда, когда начинаешь его изучать глубже задаешься такими вопросами, что просто страшно думать, почему все так плохо. Например, почему нельзя работать паралельно с проектом wine? Я читал их официальное вики и думал, что они работают сообща, но нет. Это странно, reactos могли бы сфокусироваться на реализации ядра, загрузчика, поддержки драйверов, а остальную часть брать у вина и переписывать под себя.


    1. slonopotamus
      30.12.2023 14:05
      +3

      остальную часть брать у вина и переписывать под себя

      Насколько мне известно, в ReactOS используется изрядное количество кода из Wine.


  1. Panzerschrek
    30.12.2023 14:05
    +1

    А в чём проблема с драйвером NTFS? Вроде формат уже давно как изучили, в Linux есть драйвера для данной файловой системы. Почему тогда ещё в ReactOS, где NTFS должна быть как родная, её драйвер ещё не стабилен?


    1. boris768
      30.12.2023 14:05

      Потому что драйвер файловой системы - это не hello world в консольку, а драйвер для линукса - это намного больше чем ничего, но это надо уметь. Всё же дело с файловыми системами было даже в другом - подсистемы, связанные с фс, были на уровне "запускает fat32 и ладно"). Сейчас с этим лучше, можно попробовать поставить систему на btrfs, через правки, можно на ext2. Штатный драйвер, насколько помню, умеет читать разделы, если разрешить в реестре - то и писать, но может порушить раздел. Но в целом, через некоторые (уже значительно меньшие чем раньше) танцы с бубном можно подложить виндовый драйвер и он с достаточно большим шансом заработает.


  1. nuclight
    30.12.2023 14:05

    А участник @SigmaTel71 протестировал DynaBlaster (BomberMan):

    Я аж вспомнил этот дребезжащий звук, но тут поди без звука?
    Про загрузочный сектор тоже весело.