Пьер Швейцер, один из основных разработчиков операционной системы ReactOS, сделал в своем твиттере резонансное сообщение. Теперь новые билды операционной системы можно собирать, пользуясь исключительно средствами этой ОС и ее официальной среды сборки RosBE. Сама среда сборки так же собирается из исходников при первом запуске сценария сборки.
Таким образом, ОС ReactOS достигла состояния, называемого Self-Hosted. Символично, что данное событие происходит в тот момент, когда проект, по некоторым расчетам, достигает своего полного совершеннолетия по человеческим меркам (21 год). На скриншоте ниже показан заключительный этап сборки и смонтированный средствами ОС, только что собранный, новый образ Live-дистрибутива ReactOS. Официальная инструкция по сборке обновлена в соотвествии с новым положением дел.
В целом, это эпохальное событие стало возможно благодаря совместной целенаправленой работе Томаса Фабера над контролером кеша и Пьера над драйвером файловых систем 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 еще около месяца — для предварительного тестирования уже доступен релиз-кандидат, впечатляющий своей стабильностью работы по сравнению с предыдущими выпусками ОС.
Комментарии (70)
boblenin
06.06.2018 21:32Интересно а получится ли запустить ReactOS внутри VirtualBox, который будет крутиться в docker контейнере, который запущен в wsl, на windows 10?
awesomer
06.06.2018 22:06+1Docker из под WSL не работает.
boblenin
06.06.2018 23:42-1Нативный виндовый типа «работает». Т.е. можно все комманды вызывать из него. Как раз сейчас смотрел статью на эту тему blog.jayway.com/2017/04/19/running-docker-on-bash-on-windows
PsyHaSTe
07.06.2018 12:31Ну, линуховые контейнеры запускаются (другими и пользоваться не стоит). Но не под WSL, а нативно под самой виндой.
AlexanderS
06.06.2018 22:13+1А если звук работать не будет, то обращаться куда надо будет?)
Merkat0r
06.06.2018 23:55оук… 21 год, а оно еще даже не в хоть каком-то стейбле.
Не, мне реально нравится идея реактося, но с таким подходом и темпами оно имеет огромные шансы морально устареть, что называется *в нулину* до выхода v1.0mwizard
07.06.2018 00:36+1Ну я так понимаю, ReactOS это moving target, они целятся на все более поздние и поздние винды, поэтому устареть, скорее всего, не устареет.
Areso
07.06.2018 07:20Ну я так понимаю, ReactOS это moving target, они целятся на все более поздние и поздние винды, поэтому
устареть, скорее всего, не устареетстать стабильным, скорее всего, не станет.
Fixed
Хотя лично я желаю проекту исключительно успехов. А то мне скоро не на чем будет игры запускать.
AllexIn
07.06.2018 09:43Как вы себе представляете моральное устаревание?
Вот есть РеактОС, которая появилось во времена Вин 9х.
Прошел 21 год. 9х устарел более чем полностью.
ReactOS выглядит вполне нормально в этом плане.
Что должно произойтие с ReactOS чтобы она устарела?impwx
07.06.2018 09:59Я бы сказал так — разница между последней версией ReactOS и последней версией Windows в каждый текущий момент времени растет или сокращается?
Crafter2012
07.06.2018 10:47Думаю есть неточность в вашем сравнении. Реакт ос, насколько понимаю целится в пк-сегмент, а «последняя» виндоус скоро и на табуретке пойдет. Поэтому реактос скорее всего никогда не догонит «последнюю» винду по всему спектру ее функционала. Более логичным был бы вопрос сокращается ли разрыв с функциональной нагрузкой последней винды под пк-сегмент. Сравнивать можно например с Windows Ltsb, без ентерпрайзного функционала. Но кто ж его знает кроме мейнтейнеров и пользователей)
sizziff
07.06.2018 11:22Я бы сказал — сокращается.
Windows 8..10 уже не становится лучше настолько, насколько это было во времена Windows 95,2000,XP,7.
До тех пор, пока ReactOS догоняет Windows — ей нет необходимости тратить огромные ресурсы на поддержание огромного парка оборудования, тех поддержки(обновлений безопасности), маркетинга, бюрократов, сэйлов.
Да и идти по проторенной дороге всегда легче (например нет необходимости тратить время на изобретение плиток и метро).
u007
07.06.2018 14:02Конечно, растёт разница. Винда раздувается просто неприлично, такое количество ненужной неотключаемой хрени больше нигде нет. Я буду разочарован, если РОС догонит в этом смысле.
Но у догоняющих всегда будет бонус — им не нужно реализовывать всё, что внедряют Майки. Те сами не знают, взлетит ли новая технология. Сколько уже примеров, когда они тратят силы и время, пиарят, продавливают, рекомендуют нам, а потом выбрасывают в корзину: «не взлетело» (sumanai
07.06.2018 14:10Но у догоняющих всегда будет бонус — им не нужно реализовывать всё, что внедряют Майки.
Нужно. Куча невзлетевшего хлама всё равно остаётся для обеспечения обратной совместимости, и команде ReactOS придётся и это повторять, иначе что-нибудь да отвалится.sizziff
07.06.2018 14:42Считаю что ВЕСЬ хлам поддерживать нет необходимости.
Ну не будет она 100% совместима. 100% не совместима винда относительна винды (32/64/ru/en, обновления, фреймворки, поколения и проч.)
Не взлетит одна программка, взлетит другая, от конкурентов.
На домашних ПК — сейчас большинство приложений — это WEB (кроме игр).
На офисных… Представим, что функционал реакт будет удовлетворять требованиям по софту для всего 50-70% раб мест, остальным таки придется ставить Windows — уже огромный выхлоп.GeekberryFinn
07.06.2018 17:58+1Категорически не согласен!
Потому что имеются старые любимые игры для запуска которых DosBox недостаточен, потому что они под Windows.
GeekberryFinn
07.06.2018 18:03Винда раздувается просто неприлично, такое количество ненужной неотключаемой хрени больше нигде нет
А что мешает сделать эту хрень отключаемой в ReactOS?
Совместимость с каким-нибудь старым софтом нужна не каждый день и не всем пользователям (но, тем не менее, время от времени возникает реальная нужда в совместимости).u007
07.06.2018 18:48Мне кажется, нужные штуки пробьются со временем. Если в РОС чего-то нет, найдутся люди и компании, которые напишут недостающее для себя, ну и с сообществом поделятся. А разработчиков софта это заставит задуматься: а так ли мне мне нужна в программе эта новая проприетарная фича от МС, или, может, есть что-то более универсальное?
Godless
08.06.2018 01:10вы меня простите великодушно за оффтоп, но Майки — это же с оранжевой повязкой и пиццей))
numitus2
07.06.2018 02:51+1Запускал недавно последнюю версию так как хотел поиграть в героев а образ винды слишком много весит. На удивление все работает достаточно стабильно. Смог запустить игру и посмотреть ютюб в фаерфоксе. Неплохой результат. По сравнению с состоянием 5 летней давности- небо и земля
vk2
07.06.2018 09:23А почему вы не выкладываете готового файла для vmware/virtualbox/parallels? Какой-нибудь OVA ведь несложно генерировать автоматически?
u007
07.06.2018 09:54Как там с USB движется? Или не движется? С live-флешки уже можно запускать?
x86corez
07.06.2018 17:35+2Можно, но пока нет. :)
На онлайн конференции разработчиков в марте этого года обсуждали состояние готовности нового USB стека: reactos.org/project-news/march-2018-meeting-minutes
defecator
07.06.2018 10:09-2Было бы клёво, если бы ReacOS смогли запустить на Raspberry!
mayorovp
07.06.2018 10:42А смысл? Под ARM не так много виндовых программ сделано…
defecator
07.06.2018 11:20ну так не только линуксы смогут работать на малинке.
Винда десятая, которая IoT, вполне себе работает на малинкеdefecator
07.06.2018 12:03-3кто тут такой нервный минусует? напишите, что не нравится, а не тихой сапой
DrAleck
08.06.2018 00:34+1Я не минусовал, но предположу, что толку для обычного пользователя от windows iot на малинке чуть меньше, чем никакого. Для разработчиков — да, но что там делать обычному пользователю? А вот linux на малинке вполне выполняет офисные функции
danfe
07.06.2018 10:57О, впервые вижу скриншот ReactOS, где правильно размещен индикатор раскладки (на что я жаловался в прошлый раз). Осталось теперь сами буквы (в данном случае, FR) сдвинуть на пиксел вправо, и проблему можно считать решенной.
qlkvg
07.06.2018 11:23Странно, пол дня с момента публикации и ни одного коммента в духе «это просто хобби. зачем оно? не нужно».
Спасибо за вашу работу, это очень круто.
hzs
07.06.2018 12:32А Космические Рейнджеры пойдут?
А то под wine за лет 10 так и не нашёл способа писать кириллицей в информационном центре.
Да и вообще, можно попробовать ребёнку на комп поставить, это же не винда, так что идеологически можно, тем более что по идее должна завестись куча развивающих игрушек для детей.
Под винду такого добра значительно больше, чем под никсы.Psionic
07.06.2018 13:54-1Решили лишить ребенка детства? Ставьте виндовс, нельзя давать ребенку в руки заведомо не доведенный продукт — завтра у него при игре с друзьями по сети откажет дискорд или тимспик или игра не стартует, и его засмеют в школе, и за что? Что родители линуксоиды поставили заведомо кривую ос которой до релиза которой, как до луны?
ksenobayt
07.06.2018 13:55Там всё очень просто решается, просто нужно зафорсить локаль: даже HD собиралась в Borland Delphi 7, и, как следствие, все строки и весь ввод был в ANSI.
Ларчик, собственно, открывается очень просто:
env WINEPREFIX="/home/<имя_пользователя>/.wine" LANG=ru_RU.utf8 wine C:\\windows\\command\\start.exe steam://rungameid/214730
Между прочим, я это даже в документации к «Революции» указывал прямым текстом :)
untilx
07.06.2018 13:18+2FreeBSD прям донор кода для всех: для Реакта — сортировку, для HaikuOS драйверы ethernet, ну, и так, по мелочи, там, четвертинку от макоси, TCP/IP для винды…
khdavid
07.06.2018 16:12А можно подробнее, что там было не то с сортировкой в msvcrt?
x86corez
07.06.2018 17:40Она была неправильно реализована, как утверждают разработчики.
Если что, вот ссылка на коммит: github.com/reactos/reactos/commit/2dfe5e3f463ca4d7eb920d25c2a33b29a70f3e27
Lsh
07.06.2018 18:16А насколько ядро ReactOS совместимо с ядром винды? Я это к чему…
Вот раньше был проект coLinux, такое специальное ядро, которое можно было запускать под виндой и оно эффективно использовало ресурсы (в отличии от виртуальной машины, например память только та, что реально занята). Было бы здорово иметь coWindows ядро. Чтобы для всего, что выше ядра, оно было неотличимо от настоящего, а работало поверх Linux. Ну, что-то вроде теперешнего WSL.
Можно было бы загружать рядом стоящую винду с подменой ядра и эффективным использованием ресурсов.
Я бы винду вообще не загружал и с удовольствием пользовался только Linux. Но некоторый софт заставляет поступать иначе. Под Wine работает не всё, в виртуалке часть ресурсов уходит в никуда.
(как-то я об этом уже писал в подобной теме. ЕМНИП, ничего конкретного не ответили)untilx
07.06.2018 19:16Было несколько проектов (сходу могу только Lindows/Linspire вспомнить), но все под вопросом. А под wine никто не мешает заменить часть библиотек на оригинальные виндовые через настройки.
Lsh
07.06.2018 19:39А получится ли таким способом получить «винду»? Если бы всё было так хорошо, то софт от той же Adobe работал бы без проблем.
Lindows/Linspire
Мне всегда казалось, что там только внешний закос под винду продвигался. Разве нет?
sumanai
07.06.2018 20:33и эффективным использованием ресурсов.
Откуда оно возьмётся? Ядро винды достаточно хорошее и оптимизированное. Весь жор идёт в юзерспейсе, и этого не избежать, если нужна совместимость.
А для запуска прог от Linux и Windows одновременно проще использовать упомянутый WSL, так как сделать совместимость с открытой ОС на закрытой проще, чем с закрытой для открытой.Lsh
07.06.2018 20:48Откуда оно возьмётся?
Я имел в виду отсутствие накладных расходов от виртуальной машины. Памяти потребялется столько, сколько надо приложениям, а не сколько выделено (да есть механизмы для решения проблемы). Нет тормозов из-за файловой системы в файле и т.п.
проще использовать упомянутый WSL
Это понятно. Но у меня основная причина, что винда не нравится. Чем меньше её будет, тем лучше.sumanai
07.06.2018 20:59+2Тогда Wine. Гибридное ядро тут никак не поможет и не даст никаких преимуществ перед вином, так как основная проблема в закрытой реализации.
Lsh
08.06.2018 01:01Ну, может быть и так… А насколько полно wine реализует API ядра и низкоуровневых компонентов? Можно всё, что выше перенести из винды и получить более высокую совместимость, чем через просто wine?
sumanai
08.06.2018 11:08Переносите, но это возможно нарушает лицензию Windows, но под свою ответственность вы можете делать что угодно.
Lsh
08.06.2018 13:30Не всё так просто:
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 откажутся работать.
sebres
07.06.2018 19:22А вот вопрос: оно у вас всё-еще древним 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-тестам.Extravert34
08.06.2018 00:33+1Сейчас в официальной среде сборки (RosBE) gcc версии 4.7.2. Периодически возникают разговоры об обновлении, но пока вроде не планируется в ближайшее время.
Есть люди, которые компилят на других версиях, в том числе и на clang, но пока официально не поддерживается. Можете прислать фикс :)
Вообще, сейчас речь про перфоманс особо не стоит, сделать бы чтобы оно просто стабильно работало.
sumanai
Поздравляю!
А как теперь? Было бы здорово, если теперь все билды, выкладываемые на сайте, будут self-hosted, чисто для морального удовлетворения. Да и сам сайт было бы неплохо хостить на ReactOS )
Nexon
Многие вещи, например PHP, уже давно не поддерживаются на WinXP.
mister_fog
Только вот ReactOS это не WinXP.
Nexon
Что особо не помогает, ограничения те же.
mister_fog
И что же помешает добавить в ReactOS то, что нужно, для совместимости с более поздними версиями Windows?