ReactOS стал самодостаточным в год своего 21-летия

    Привет, Хабр! У нас есть внезапные новости!

    image

    Пьер Швейцер, один из основных разработчиков операционной системы ReactOS, сделал в своем твиттере резонансное сообщение. Теперь новые билды операционной системы можно собирать, пользуясь исключительно средствами этой ОС и ее официальной среды сборки RosBE. Сама среда сборки так же собирается из исходников при первом запуске сценария сборки.

    Таким образом, ОС ReactOS достигла состояния, называемого Self-Hosted. Символично, что данное событие происходит в тот момент, когда проект, по некоторым расчетам, достигает своего полного совершеннолетия по человеческим меркам (21 год). На скриншоте ниже показан заключительный этап сборки и смонтированный средствами ОС, только что собранный, новый образ Live-дистрибутива ReactOS. Официальная инструкция по сборке обновлена в соотвествии с новым положением дел.

    image

    В целом, это эпохальное событие стало возможно благодаря совместной целенаправленой работе Томаса Фабера над контролером кеша и Пьера над драйвером файловых систем FastFAT и CDFS непосредственно. О чем будет рассказано гораздо подробнее к в анонсе к грядущей версии 0.4.9. За поддержанием возможности самосборки теперь будут постоянно следить, поэтому следующим этапом будет установка билд-бота для регулярной сборки публичных тестовых образов ReactOS на ReactOS.

    Одним из последних, недостающих для самосборки компонентов, стала несовершенная реализация алгоритма qsort в библиотеке msvcrt.dll. Это обнаружилось при очередных попытках скомпилировать ReactOS в ReactOS, когда сборка останаливалась из-за сбоя в подготивтельном этапе компиляции компонета USB-стека библиотеки USBD. Правильную реализацию qsort быстро перенесли из FreeBSD, за что этому проекту выражается отдельная благодарность.

    Заключительным штрихом стало устранение Гермесом Белуской древних несовершенств в командной оболочке CMD, связанных с управлением заголовком окна, которые раньше можно было игнорировать или обходить хаком.

    Состояние self-hosted достигалось и ранее в 2003 и 2009 годах. Но оба раза утрачивалось, так как не являлось приоритетным. В первом случае — из-за экспоненциального роста функционала и объема кодовой базы, а во втором — из-за значительной модернизации средств среды сборки и формата исходников (переход с rbuild на cmake)

    Релиз 0.4.9 станет первым в новейшей истории проекта, который будет полностью поддерживать самосборку. Хотя до выхода 0.4.9 еще около месяца — для предварительного тестирования уже доступен релиз-кандидат, впечатляющий своей стабильностью работы по сравнению с предыдущими выпусками ОС.
    Фонд ReactOS 365,28
    Операционная система
    Поделиться публикацией
    Похожие публикации
    Ой, у вас баннер убежал!

    Ну. И что?
    Реклама
    Комментарии 95
      +4
      Поздравляю!
      Состояние self-hosted достигалось и ранее в 2003 и 2009 годах. Но оба раза утрачивалось, так как не являлось приоритетным.

      А как теперь? Было бы здорово, если теперь все билды, выкладываемые на сайте, будут self-hosted, чисто для морального удовлетворения. Да и сам сайт было бы неплохо хостить на ReactOS )
        0

        Многие вещи, например PHP, уже давно не поддерживаются на WinXP.

          0
          Только вот ReactOS это не WinXP.
            0
            Что особо не помогает, ограничения те же.
              0
              И что же помешает добавить в ReactOS то, что нужно, для совместимости с более поздними версиями Windows?
                +1

                Это будет в следующих версиях. Пока же полируется совместимость с WinXP.

        0
        Интересно а получится ли запустить ReactOS внутри VirtualBox, который будет крутиться в docker контейнере, который запущен в wsl, на windows 10?
          +6
          Для начала, запустите докер под wsl.
            –1
            А докер под ReactOS есть шанс запустить?
              0

              А разве есть докер под win?

                0
                Есть, правда фуфло, хотя я лично не пробовал.
                +2
                Докер гвоздями прибит к linux cgroups. На не-линукс платформах линукс виртуализируется, что на виндах, что в макоси. В частности, Docker for Win пользуется гипервизором Hyper-V.
              +3
              Docker из под WSL не работает.
                0
                Нативный виндовый типа «работает». Т.е. можно все комманды вызывать из него. Как раз сейчас смотрел статью на эту тему blog.jayway.com/2017/04/19/running-docker-on-bash-on-windows
                  0
                  Там от докера одно название
                  –2
                  Ну, линуховые контейнеры запускаются (другими и пользоваться не стоит). Но не под WSL, а нативно под самой виндой.
                  +3
                  А если звук работать не будет, то обращаться куда надо будет?)
                    +14
                    По традиции, к психиатру!
                      +1
                      В оригинале — к санитарам. Но да, ответ в целом правильный)
                      +2
                      В исходный код
                      +1
                      С проблемами со звуком — к санитарам!
                      +2
                      оук… 21 год, а оно еще даже не в хоть каком-то стейбле.
                      Не, мне реально нравится идея реактося, но с таким подходом и темпами оно имеет огромные шансы морально устареть, что называется *в нулину* до выхода v1.0
                        +4
                        Ну я так понимаю, ReactOS это moving target, они целятся на все более поздние и поздние винды, поэтому устареть, скорее всего, не устареет.
                          +8
                          Ну я так понимаю, ReactOS это moving target, они целятся на все более поздние и поздние винды, поэтому устареть, скорее всего, не устареет стать стабильным, скорее всего, не станет.

                          Fixed

                          Хотя лично я желаю проекту исключительно успехов. А то мне скоро не на чем будет игры запускать.
                            0
                            Ахиллес и черепаха, лол.
                            +1
                            Как вы себе представляете моральное устаревание?
                            Вот есть РеактОС, которая появилось во времена Вин 9х.
                            Прошел 21 год. 9х устарел более чем полностью.
                            ReactOS выглядит вполне нормально в этом плане.
                            Что должно произойтие с ReactOS чтобы она устарела?
                              +3
                              Я бы сказал так — разница между последней версией ReactOS и последней версией Windows в каждый текущий момент времени растет или сокращается?
                                0
                                Думаю есть неточность в вашем сравнении. Реакт ос, насколько понимаю целится в пк-сегмент, а «последняя» виндоус скоро и на табуретке пойдет. Поэтому реактос скорее всего никогда не догонит «последнюю» винду по всему спектру ее функционала. Более логичным был бы вопрос сокращается ли разрыв с функциональной нагрузкой последней винды под пк-сегмент. Сравнивать можно например с Windows Ltsb, без ентерпрайзного функционала. Но кто ж его знает кроме мейнтейнеров и пользователей)
                                  +1
                                  Я бы сказал — сокращается.
                                  Windows 8..10 уже не становится лучше настолько, насколько это было во времена Windows 95,2000,XP,7.
                                  До тех пор, пока ReactOS догоняет Windows — ей нет необходимости тратить огромные ресурсы на поддержание огромного парка оборудования, тех поддержки(обновлений безопасности), маркетинга, бюрократов, сэйлов.
                                  Да и идти по проторенной дороге всегда легче (например нет необходимости тратить время на изобретение плиток и метро).

                                    +4
                                    речь не о «лучше», а о WinAPI.
                                    +2
                                    Конечно, растёт разница. Винда раздувается просто неприлично, такое количество ненужной неотключаемой хрени больше нигде нет. Я буду разочарован, если РОС догонит в этом смысле.

                                    Но у догоняющих всегда будет бонус — им не нужно реализовывать всё, что внедряют Майки. Те сами не знают, взлетит ли новая технология. Сколько уже примеров, когда они тратят силы и время, пиарят, продавливают, рекомендуют нам, а потом выбрасывают в корзину: «не взлетело» (
                                      0
                                      Но у догоняющих всегда будет бонус — им не нужно реализовывать всё, что внедряют Майки.

                                      Нужно. Куча невзлетевшего хлама всё равно остаётся для обеспечения обратной совместимости, и команде ReactOS придётся и это повторять, иначе что-нибудь да отвалится.
                                        0
                                        Считаю что ВЕСЬ хлам поддерживать нет необходимости.

                                        Ну не будет она 100% совместима. 100% не совместима винда относительна винды (32/64/ru/en, обновления, фреймворки, поколения и проч.)
                                        Не взлетит одна программка, взлетит другая, от конкурентов.

                                        На домашних ПК — сейчас большинство приложений — это WEB (кроме игр).
                                        На офисных… Представим, что функционал реакт будет удовлетворять требованиям по софту для всего 50-70% раб мест, остальным таки придется ставить Windows — уже огромный выхлоп.
                                          +1
                                          Категорически не согласен!
                                          Потому что имеются старые любимые игры для запуска которых DosBox недостаточен, потому что они под Windows.
                                        0
                                        Винда раздувается просто неприлично, такое количество ненужной неотключаемой хрени больше нигде нет

                                        А что мешает сделать эту хрень отключаемой в ReactOS?
                                        Совместимость с каким-нибудь старым софтом нужна не каждый день и не всем пользователям (но, тем не менее, время от времени возникает реальная нужда в совместимости).
                                          0

                                          Мне кажется, нужные штуки пробьются со временем. Если в РОС чего-то нет, найдутся люди и компании, которые напишут недостающее для себя, ну и с сообществом поделятся. А разработчиков софта это заставит задуматься: а так ли мне мне нужна в программе эта новая проприетарная фича от МС, или, может, есть что-то более универсальное?

                                          0
                                          вы меня простите великодушно за оффтоп, но Майки — это же с оранжевой повязкой и пиццей))
                                    +10

                                    Запускал недавно последнюю версию так как хотел поиграть в героев а образ винды слишком много весит. На удивление все работает достаточно стабильно. Смог запустить игру и посмотреть ютюб в фаерфоксе. Неплохой результат. По сравнению с состоянием 5 летней давности- небо и земля

                                      +4
                                      3 и 4 неплохо работают в WINE
                                        0
                                        Я HoT запускал. Он что-то под вайном не идет
                                          0
                                          HoT? Если Вы про HotA, то всё(в версии 1.5.1) прекрасно работает под вайном(3.0) на маке.
                                        +1

                                        Я недавно демку диабло запускал, тоже впечатлился. Даже хотел попытаться плюсовый проект там собрать. Но не вышло, инсталятор Qt не запустился из-за мелочи, не смог окно задекорировать.

                                        +2
                                        3 рюмки водки этому товарищу! Ему 21, уже можно!
                                          +2
                                          А почему вы не выкладываете готового файла для vmware/virtualbox/parallels? Какой-нибудь OVA ведь несложно генерировать автоматически?
                                            0

                                            Doom 1 на React 21

                                              +1
                                              Как там с USB движется? Или не движется? С live-флешки уже можно запускать?
                                                +3
                                                Можно, но пока нет. :)

                                                На онлайн конференции разработчиков в марте этого года обсуждали состояние готовности нового USB стека: reactos.org/project-news/march-2018-meeting-minutes
                                                –1
                                                Было бы клёво, если бы ReacOS смогли запустить на Raspberry!
                                                  +2
                                                  А смысл? Под ARM не так много виндовых программ сделано…
                                                    +1
                                                    ну так не только линуксы смогут работать на малинке.
                                                    Винда десятая, которая IoT, вполне себе работает на малинке
                                                      0
                                                      кто тут такой нервный минусует? напишите, что не нравится, а не тихой сапой
                                                        +2

                                                        Я не минусовал, но предположу, что толку для обычного пользователя от windows iot на малинке чуть меньше, чем никакого. Для разработчиков — да, но что там делать обычному пользователю? А вот linux на малинке вполне выполняет офисные функции

                                                          0
                                                          Так ОС с потребностями памяти в 53 мб тоже могла бы офисные функции.
                                                  +4
                                                  О, впервые вижу скриншот ReactOS, где правильно размещен индикатор раскладки (на что я жаловался в прошлый раз). Осталось теперь сами буквы (в данном случае, FR) сдвинуть на пиксел вправо, и проблему можно считать решенной.
                                                    +5
                                                    Странно, пол дня с момента публикации и ни одного коммента в духе «это просто хобби. зачем оно? не нужно».
                                                    Спасибо за вашу работу, это очень круто.
                                                      0
                                                      А Космические Рейнджеры пойдут?
                                                      А то под wine за лет 10 так и не нашёл способа писать кириллицей в информационном центре.
                                                      Да и вообще, можно попробовать ребёнку на комп поставить, это же не винда, так что идеологически можно, тем более что по идее должна завестись куча развивающих игрушек для детей.
                                                      Под винду такого добра значительно больше, чем под никсы.
                                                        –1
                                                        Решили лишить ребенка детства? Ставьте виндовс, нельзя давать ребенку в руки заведомо не доведенный продукт — завтра у него при игре с друзьями по сети откажет дискорд или тимспик или игра не стартует, и его засмеют в школе, и за что? Что родители линуксоиды поставили заведомо кривую ос которой до релиза которой, как до луны?
                                                          +3
                                                          Ребёнок с трёх лет на линуксе.
                                                          Сейчас ему 4,5 года.
                                                            0
                                                            Не дурно. Дети всё быстро хватают. Так, глядишь, через пару лет завёдет аккаунт на гитхабе битбакете, а к десяти уже и патчи будет в ядро коммитить.
                                                              0

                                                              Главное, что бы не как Поттеринг...

                                                              –1
                                                              Бедняга, он что-то знает что этот черный экран с мигающей горизонтальной палочкой в уголке умеет мультики показывать или игрушечки запускать? Сколько раз он плакал за то что вы ругали его что он не смог полностью выучить очередную apt sudo get blah-blah?
                                                                +2
                                                                Линукс это уже давным давно не только консоль.
                                                                Ребёнку это не нужно, гуя для повседневных задач хватает полностью.
                                                                  0
                                                                  Лопата
                                                              0
                                                              Там всё очень просто решается, просто нужно зафорсить локаль: даже HD собиралась в Borland Delphi 7, и, как следствие, все строки и весь ввод был в ANSI.

                                                              Ларчик, собственно, открывается очень просто:
                                                              env WINEPREFIX="/home/<имя_пользователя>/.wine" LANG=ru_RU.utf8 wine C:\\windows\\command\\start.exe steam://rungameid/214730

                                                              Между прочим, я это даже в документации к «Революции» указывал прямым текстом :)
                                                                0
                                                                О_0
                                                                Сколько локалями игрался, ничего не получалось.
                                                                Попробую вечером.
                                                              +5
                                                              FreeBSD прям донор кода для всех: для Реакта — сортировку, для HaikuOS драйверы ethernet, ну, и так, по мелочи, там, четвертинку от макоси, TCP/IP для винды…
                                                                0

                                                                Пусть фряху и пытаются с завидным упорством "rip'путь", но наследник одной из старейших ОС всё-равно всем помогает.

                                                                +1
                                                                А можно подробнее, что там было не то с сортировкой в msvcrt?
                                                                0
                                                                А насколько ядро ReactOS совместимо с ядром винды? Я это к чему…
                                                                Вот раньше был проект coLinux, такое специальное ядро, которое можно было запускать под виндой и оно эффективно использовало ресурсы (в отличии от виртуальной машины, например память только та, что реально занята). Было бы здорово иметь coWindows ядро. Чтобы для всего, что выше ядра, оно было неотличимо от настоящего, а работало поверх Linux. Ну, что-то вроде теперешнего WSL.
                                                                Можно было бы загружать рядом стоящую винду с подменой ядра и эффективным использованием ресурсов.
                                                                Я бы винду вообще не загружал и с удовольствием пользовался только Linux. Но некоторый софт заставляет поступать иначе. Под Wine работает не всё, в виртуалке часть ресурсов уходит в никуда.
                                                                (как-то я об этом уже писал в подобной теме. ЕМНИП, ничего конкретного не ответили)
                                                                  0
                                                                  Было несколько проектов (сходу могу только Lindows/Linspire вспомнить), но все под вопросом. А под wine никто не мешает заменить часть библиотек на оригинальные виндовые через настройки.
                                                                    0
                                                                    А получится ли таким способом получить «винду»? Если бы всё было так хорошо, то софт от той же Adobe работал бы без проблем.
                                                                    Lindows/Linspire

                                                                    Мне всегда казалось, что там только внешний закос под винду продвигался. Разве нет?
                                                                      0
                                                                      Насколько я помню, изначально заявлялся именно одновременный запуск приложений. Wiki подтверждает. Ну, и новости у них на сайте тоже намекают.
                                                                    0
                                                                    и эффективным использованием ресурсов.

                                                                    Откуда оно возьмётся? Ядро винды достаточно хорошее и оптимизированное. Весь жор идёт в юзерспейсе, и этого не избежать, если нужна совместимость.
                                                                    А для запуска прог от Linux и Windows одновременно проще использовать упомянутый WSL, так как сделать совместимость с открытой ОС на закрытой проще, чем с закрытой для открытой.
                                                                      0
                                                                      Откуда оно возьмётся?

                                                                      Я имел в виду отсутствие накладных расходов от виртуальной машины. Памяти потребялется столько, сколько надо приложениям, а не сколько выделено (да есть механизмы для решения проблемы). Нет тормозов из-за файловой системы в файле и т.п.
                                                                      проще использовать упомянутый WSL

                                                                      Это понятно. Но у меня основная причина, что винда не нравится. Чем меньше её будет, тем лучше.
                                                                        +2
                                                                        Тогда Wine. Гибридное ядро тут никак не поможет и не даст никаких преимуществ перед вином, так как основная проблема в закрытой реализации.
                                                                          0
                                                                          Ну, может быть и так… А насколько полно wine реализует API ядра и низкоуровневых компонентов? Можно всё, что выше перенести из винды и получить более высокую совместимость, чем через просто wine?
                                                                            0
                                                                            Переносите, но это возможно нарушает лицензию Windows, но под свою ответственность вы можете делать что угодно.
                                                                              +1
                                                                              Не всё так просто:
                                                                              Native versions of these DLLs do not work: kernel32.dll, gdi32.dll, user32.dll, and ntdll.dll. These libraries require low-level Windows kernel access that simply doesn't exist within Wine.

                                                                              wiki.winehq.org/Wine_User%27s_Guide
                                                                              Думаю, что кроме этих ещё многие настоящие dll откажутся работать.
                                                                      0

                                                                      Некоторое время назад можно было подменить ядро ReactOS ядром WinXP, и оно запускалось и даже работало, правда ругалось на неимплементированные функции системных библиотек/приложений.

                                                                        0
                                                                        Это как вообще — «подменить ядро»? Точнее, чем ReactOS с ядром WinXP отличается от просто WinXP? :-)
                                                                          +1
                                                                          Это как вообще — «подменить ядро»?

                                                                          Кинуть ntoskrnl.exe.
                                                                          Точнее, чем ReactOS с ядром WinXP отличается от просто WinXP? :-)

                                                                          Всем остальным.
                                                                          Вообще, это способ проверки корректности работы, но никак не постоянный.
                                                                      0

                                                                      А вот вопрос: оно у вас всё-еще древним mingw (с msys) собирается? Я собственно не про сам msys/mingw а про build-tools в нём и gcc в частности… Т.е. вот этим вот?


                                                                      $ gcc --version
                                                                      gcc (GCC) 3.4.4 (msys special)

                                                                      А то оно же и правда старое, и медлючее...


                                                                      Собирать с новыми build-tools не пробовали? Например:


                                                                      $ export PATH=/c/mingw-w64-32/bin:$PATH
                                                                      $ gcc --version
                                                                      gcc.exe (i686-win32-dwarf-rev0, Built by MinGW-W64 project) 7.3.0

                                                                      Да 7.x чуть капризнее (можно запросто UB словить где раньше не было), но зато рвёт все остальные компиляторы как тот Тузик ту грелку, особливо если O3, march=native и т.д…
                                                                      У меня в некоторых довольно больших проектах после перехода (и вычистки всех UB;) прирост скорости был 15%-30% (а местами до 50%) по performance-тестам.

                                                                        +1
                                                                        Сейчас в официальной среде сборки (RosBE) gcc версии 4.7.2. Периодически возникают разговоры об обновлении, но пока вроде не планируется в ближайшее время.
                                                                        Есть люди, которые компилят на других версиях, в том числе и на clang, но пока официально не поддерживается. Можете прислать фикс :)

                                                                        Вообще, сейчас речь про перфоманс особо не стоит, сделать бы чтобы оно просто стабильно работало.
                                                                          +2
                                                                          К сожалению, апгрейд компилятора несет с собой очень много головной боли и новых багов. У каждой версии компилятора есть свои «детские болезни». Для текущей версии мы вылечелили или обошли все нам известные. Для новой версии нужно будет проделать эту работу сначала. Прирост производительности это хорошо, но он пока не решающий для нас фактор.
                                                                            0
                                                                            O3 не имеет столь значимых преимуществ по сравнению с O2, в отличие от провала в стабильности сборки и работы
                                                                              0
                                                                              O3 не имеет столь значимых преимуществ по сравнению с O2

                                                                              Это не совсем так, например с O3 вы намного реже получите branch misprediction, просто потому, что компилятор создаст меньше условных переходов.


                                                                              Про стабильность, согласен (но только пока все-то не вычищено).

                                                                                –2
                                                                                Не думаю, что разработчикам ReactOS интересна борьба за чистоту кода с помощью борьбы с глюками вследствие избыточной оптимизации компилятора
                                                                            +3
                                                                            То, как должен выглядеть Windows здорового человека
                                                                              0
                                                                              Вау, неужели через год я смогу попробовать бету РеактОС 0.5… Мечта или реальность?
                                                                                –1
                                                                                А что там с защитой? так же как и в винде? Маленький exe файлик может засрать всю appdatу, зашифровать все документы с рабочего стола, подменить мне настройки прокси в браузере — и всё это не спрашивая разрешения… и наоборот всякие требования пороля по каждому чиху когда установленная в туже appdaty программа вдруг для удаления начинает требовать пароль админа, хотя устанавливалась без оного… или например обязательное требование в принципе установить программу с запросом пароля админа, хотя сама прога прекрасно может работать как портабельная без всяких хуков, но разработчик почему то выпускает версии только в форме install пакетов (причём люто бояться делать offline инсталяторы, но это уже другая история)
                                                                                Вы ведь всё равно хукаете все виндосовские вызовы по умолчанию, так почему бы не сделать и песочницу — по умолчанию?
                                                                                  +3
                                                                                  Делайте песочницу, вам никто не запрещает. Сейчас у них есть более важные задачи.
                                                                                    +1
                                                                                    Все можно сделать, при условии, что у проекта вдруг появятся на это деньги. Например, кто-то целенаправленно задонатит деньги на нужную ему функцию.

                                                                                    www.bountysource.com/teams/reactos
                                                                                    0
                                                                                    Вопрос знающим: возможно ли из-под ReactOS собирать экзешники для Win server 2008 и новее? Если конкретику: хочу собирать из исходников Zabbix Agent для Windows с поддержкой шифрования, а отдельная виртуалка с лицензионной виндой — слишком жирно для этой задачи.
                                                                                      +2
                                                                                      Теоретически это возможно, на деле же все зависит от используемого компилятора.

                                                                                    Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                                                                    Самое читаемое