- PVSM.RU - https://www.pvsm.ru -

ReactOS 0.4.11 — на сотню приложений больше

Привет!

Уверен, что вы уже успели соскучиться по новостям от нашего проекта! И мы не теряли времени даром. Прошлый релиз ReactOS вышел всего каких-то три с половиной месяца назад [1], а сегодня вы уже сможете скачать и протестировать следующую версию нашей операционной системы. В ней исправлено 135 бага, сделано 984 изменения в исходном коде и красивая анимация загрузочного экрана.

Скачать образы системы [2] | Пресс–релиз [3] | Список изменений [4] | TL;DR [5] | Тесты и список регрессий [6]

image

При работе над версией 0.4.11 мы сделали упор на исправление ошибок совместимости приложений, и в результате мы смогли увеличить количество совместимых программ на добрую сотню, если не больше. Одновременно с этим мы очередной раз значительно снизили число ситуаций, приводящих к BSOD'ам и зависаниям системы. Есть и множество других изменений, но обо всем по порядку.

— Стартуем! Я сказала — стартуем!

Первое, что стоит отметить — мы подшаманили лоадер. Лоадер (LDR) — это такой компонент, который помогает приложению запуститься. Он, в частности, читает манифест-файлы для исполняемых файлов и библиотек, вычисляет необходимые модули и зависимости для запускаемого приложения, находит их на диске в местах предполагаемого размещения и загружает в память в правильном порядке.

image

В прошлых версиях ReactOS библиотеки MSVC++ 2005/2008 слишком хорошо прятались в системе и лоадер их не всегда находил, особенно в ситуациях когда в последовательности загрузки попадалось несколько манифест-файлов подряд. На Хакфесте в Берлине [7] летом 2018 Марк Дженсен по моей просьбе решил с этим разобраться. И вот с релизом 0.4.11 безобразию окончательно пришел конец, и теперь ни одной необходимой библиотеке «не убежать» от лоадера. Улучшенная поддержка манифестов [8] позволила добиться в ReactOS работоспособности около сотни новых приложений, таких как Blender 2.57b, Bumptop, Evernote 5.8.3, Deluge torrent и Quicktime Player 7.7.9.

Грандиозным примером этого достижения служит картинка выше и данный скриншот:

image

На нем вы можете наблюдать работу популярного драйверпака Snappy Driver installer (SDI) в ReactOS. Раньше он падал с ошибкой, иногда вовсе вызывал BSOD, или просто отказывался работать по описанной выше причине, теперь же времена поменялись…

А положительным косвенным эффектом стало то, что смельчакам больше не придется рыскать в сети в поисках драйверов для ReactOS, а можно просто скачать их все разом на одном DVD.

Сразу оговорюсь, что далеко не все драйвера из SDI установятся штатно, в основном только сетевые карты, и некоторые видеокарты. Однако, мы продолжим работать над улучшением и этой ситуации.

— Так, стопэ! Тормоза нужны не только лишь трусам...

Ранее в нескольких прошлых релизах ReactOS тестеры сталкивались со значительными трудностями, когда дело касалось попыток использования .NET-приложений. Приложения, написанные на основе фреймворка .NET версии 2.0/4.0, работали только один раз, а при закрытии вызвали хаос и заставляли систему в состоянии берсерка причинять самой себе повреждения.

В версии ReactOS 0.4.11 мы наконец вычислили и побороли проблему, из–за которой это происходило. Суть в том, что с точки зрения стабильности системы правильная остановка приложения так же важна, как и правильная последовательность инициализации при запуске, ведь при остановке программы освобождаются ранее выделенные ей ресурсы.

Выяснилось, что механизм, ответственный за завершение приложений в ReactOS, зачастую не ожидал достаточно времени, пока приложения самостоятельно правильно завершат свою работу. Особенно это касалось приложений, построенных по клиент–сервисной архитектуре. Тривиальный баг–фикс [9] от Яниса Адамопулоса, разрешил эту конкретную проблему, мгновенно добавив в арсенал ReactOS поддержку десятков, если не сотен, популярных dotNET–приложений.

image

В качестве примера скриншот с nLite 1.4.9.3 — утилитой для «гаражной» переборки дистрибутивов Windows XP.

Столпотворение вавилонское

Наконец, следует напомнить, что не весь мир использует стандарт отображения текста слева направо как английский и другие языки, основанные на латинице. Многие, такие как иврит и арабский, используют ориентацию справа налево. Поддержка ReactOS для этого типа отображения текста была впервые официально продемонстрирована в релизе 0.4.10, но по-прежнему продолжает дорабатываться. Существенный прогресс был достигнут благодаря усилиям Баруха Рутмана, по адаптации библиотеки USP10 и код поддержки двунаправленного ввода из Wine в ReactOS. Конечно, еще предстоит проделать немалую работу, но характер разработки проекта с открытым исходным кодом заключается в применении итеративного подхода, с постепенными пошаговыми изменениями.

image

Шведский стол из улучшений

Если говорить о борьбе с BSODами, стоит вспомнить, что Марк Дженсен выявил проблему с инициализацией полосы прокрутки [10], исправление которой добавило еще целый спектр приложений в библиотеку совместимых c ReactOS программ. Речь к примеру идет об игре Civilization II Multiplayer Gold Edition (32bit) версии 1.3, показанной на скриншоте ниже, и других программах вроде IceChat 7.63.

image

Сетевой стек был вновь подвергнут модернизации, в процессе добавлен функционал мониторинга и перечисления сетевых соединений. Внесенные изменения в компоненты TCP/IP позволяют использовать netstat, PortExpert и другие необходимые приложения сети.

image

Драйвер RAM-диска получил значимые исправления, благодаря чему обеспечена возможность полноценной установки ОС по сети с использованием протокола PXE (ранее был возможен только вариант с запуском LiveCD [11]).

image

Сизифов труд «отдела качества»

По мере того, как стабильность функционирования ReactOS продолжает расти, широта и глубина необходимого тестирования также увеличиваются, хотя бы потому, что растет число доступных приложений для тестирования. С этой целью Йоахим Хенце со своей обычной методичностью и настойчивостью работал над тем, чтобы обеспечить правильный баланс для этого релиза с точки зрения стабильности и появления в нем новых/улучшенных функций. Несмотря на то, что всегда соблазнительно вносить в релиз все самые важные и значимые изменения и исправления, следует помнить, что каждое такое изменение влечет за собой определенную степень риска регрессий. Способность взвешивать этот риск с оценкой вероятных выгод — то, что делает таких специалистов по обеспечению качества, как Иоахим, неоценимыми для любого проекта со стремительно возрастающей сложностью.

В свете значительных улучшений в ReactOS и для того, чтобы помочь потенциальным пользователям лучше понять текущее состояние ОС и степень поддержки определенных приложений, Иоахим также реструктурировал страницу с результатами тестирования [6], чтобы лучше представить соответствующую информацию. Теперь можно увидеть не только общее заключение теста по каждому приложению, но и детали, указывающие на то, что привело к конкретному выводу, а также возможные «обходные пути», для решения проблемы здесь и сейчас.

Финальный аккорд

Вы вдруг захотели поставить ReactOS первый раз в своей жизни? Обязательно прочтите этот мануал [12] по установке системы.

Вам понравился этот релиз? Ждем ваших комментариев и мнений! Не забывайте, что вы можете помочь проекту не только пожертвованиями [13], но и просто поставив ему звездочку на гитхабе [14]!

Если вам просто нравится читать мои дайджесты о том, как продвигается разработка операционной системы ReactOS, можете угостить меня чашечкой кофе, нажав на кнопку в блоке «Поддержать автора» прямо сейчас под этой статьей.

Автор: Речицкий Александр

Источник [15]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/open-source/310806

Ссылки в тексте:

[1] три с половиной месяца назад: https://habr.com/ru/company/reactos/blog/430332/

[2] Скачать образы системы: https://reactos.org/download

[3] Пресс–релиз: http://www.reactos.org/project-news/reactos-0411-released

[4] Список изменений: https://reactos.org/wiki/ChangeLog-0.4.11

[5] TL;DR: https://reactos.org/wiki/Community_Changelog-0.4.11

[6] Тесты и список регрессий: https://reactos.org/wiki/Tests_for_0.4.11

[7] Хакфесте в Берлине: https://habr.com/ru/company/reactos/blog/414293/

[8] поддержка манифестов: https://github.com/reactos/reactos/pull/805

[9] баг–фикс: https://github.com/reactos/reactos/commit/225c5c4a20aa16b1e068eda6e426def38871687a

[10] полосы прокрутки: https://jira.reactos.org/browse/CORE-15576

[11] с запуском LiveCD: https://habr.com/ru/company/reactos/blog/247193/

[12] этот мануал: https://reactos.org/wiki/Installing_ReactOS

[13] пожертвованиями: https://www.reactos.org/donating

[14] звездочку на гитхабе: https://github.com/reactos/reactos

[15] Источник: https://habr.com/ru/post/442486/?utm_source=habrahabr&utm_medium=rss&utm_campaign=442486