ReactOS 0.3.12
Команда REACTOS с гордостью представляет выпуск REACTOS версии 0.3.12.
🕛 23.10.2010, 12:15
Этот выпуск стоил команде массы усилий, не только лишь поэтому, что в него вошло большое множество улучшений и изменений, но еще и благодаря значительному прогрессу в архитектуре системы, стабильности и привнесении более современных черт ядра NT в REACTOS.Прошёл практически г. с даты последнего выпуска. И, впрочем это, конечно же, существенный срок, потраченное время было требуется для стабилизации ОС в связи с природой проделанной работы. Которая, сначала, была сосредоточена на одной единственной области - механизме обработчика ловушек - что в конечном счете вылилось в его полное переписывание. Этот шаг сделал необходимыми еще огромные перемены, развившиеся в переработку прочих областей, разработку новых технологий и реализацию их в ядре. Что в сумме дало возможность получить намного более современное ядро, содержащее существенно менее кода, чем предыдущее. В собственную очередь, это потребовало длительную фазу тестирования, чтоб достичь ур. стабильности и совместимости выше, чем в предыдущей реализации.
В ходе подготовки этого выпуска было исправлено 259 ошибок, включая 61 регрессию, кое-какие из которых появились ещё в REACTOS 0.3.7. 10 из исправленных ошибок были зарегистрированы более 3-х лет тому назад; наиболее старая из исправленных ошибок - №969, которая была обнаружена 5 лет тому назад.
Перечень максимально значимых изменений:
Диспетчер памяти - Над диспетчером памяти продолжает усердно работать команда ARM, заменившая любой компонент, кирпичик за кирпичиком, сохраняя при этом функциональность старого диспетчера. И, впрочем версия 0.3.12 не перешла на применение нового диспетчера целиком, является явным повышение скорости, стабильности и совместимости новой модели.Помощь немаскируемых прерываний (NMI) - Сейчас REACTOS способна обрабатывать немаскируемые прерывания и выводить Red Screen of Death, что крайне полезно для отслеживания аппаратных ошибок, обнаруживаемых процессором или чипсетом. Также, была введена помощь нестандартных вызовов немаскируемых прерываний, что актуально для некоторых серверных систем. И в довершение, отчасти добавлена помощь создания аварийных дампов при возникновении немаскируемых прерываний: функция может оказаться полезна при зависании машины и использовании кнопки сброса аварийного дампа памяти.Переписан обработчик ловушек - Практически весь код обработки ошибок процессора, ловушек, исключений и системных вызовов сейчас написан на C, а не на ассемблере. Большая часть устаревших и/или более не используемых блоков кода было деактивировано, и код, используемый для отладки и существенно снижающий производительность системы, сейчас отключен изначально. К тому же, порты системы для архитектуры x64 и ARM включают намного более подобного кода. И, наконец, сам код стал более читаем и лучше структурирован, что дает возможность применять оптимизацию в ходе компиляции для приобретения исполняемого кода, в максимальной степени оптимизированного под процессор, вместо эксплуатации руками написанных ассемблерных блоков, специфичных для определенных моделей центральных процессоров. В данный момент ведется работа по удалению последних оставшихся ассемблерных блоков.EMS - Была отчасти реализована помощь системы аварийного управления (Emergency Management System). Поддерживаются флаги загрузки, документированные Майкрософт, отладочные данные отправляются в последовательный порт. Идёт работа по добавлению возможностей протоколирования EMS и замене имеющегося устаревшего отладчика KDBG на EMS. Тоже ведётся работа над драйвером SAC (специализированной консоли администрирования) для облегчения работы с EMS.Совместимость с PNP - В код были внесены разные перемены, позволяющие усовершенствовать работу с оборудованием и поддержку загрузки сторонних драйверов.Усовершенствования в ACPI - Команда ARM разработала базовые драйвера, нужные для помощи батарей и драйверов UPS/батарей сторонних изготовителей, включая поддержку спецификации ACPI Composite Battery (композитные батареи). В данном релизе помощь ACPI отключена, так как модуль ACPI всё ещё располагается в создании.Новый драйвер PCI-X - Команда ARM неспешно работала над новым драйвером шины PCI. Раньше, REACTOS использовала весьма простой, и, по большей части, усеянный "заглушками" драйвер шины PCI с отсутствующей поддержкой большей части функций настоящих шин PCI, мостов PCI-to-PCI, и т.д. С новым драйвером обязана существенно возрасти как совместимость с реальным оборудованием (а не только лишь с виртуальными машинами), так и производительность системы.Помощь SXS - Был добавлен совместный (side-by-side) код, и функции загрузки и поиска манифест-файлов. Это огромной шаг вперёд для обеспечения совместимости с современными приложениями, использующими эту технологию.Исправления повреждений пула - Пожалуй, максимально солидная из этих предполагаемых утечек была исправлена благодаря совместным усилиям ключевых девелоперов REACTOS, применивших комплексный подход, включающий в себя применение модифицированной сборки виртуальной машины QEMU.Таймер и помощь обработки сообщений были переписаны. Неправильная обработка внеочередных системных сообщений приводила к зависаниям некоторых приложений, по этой причине код обработки сообщений был переписан. Тоже, этот выпуск содержит переписанный код реализации таймера, решающий большое число проблем, максимально небезызвестная из которых - "потребность перемещать мышь для загрузки страниц в FIREFOX".Сборка для архитектуры x64 - Впрочем порт для платформы x64 по-прежнему на ранней стадии из-за ограниченных возможностей ядра, больше всего главных проблем со сборкой решены и весь нужный функционал уже добавлен в ядро. Всё это, в собственную очередь, добавлено в транк, и сейчас его возможно скомпилировать для целевой платформы x64. Благодаря автосборкам стало вероятно быстрое исправление и обнаружение вероятных поломок кода. Правда, не ожидайте что система при загрузке доберётся до стадии запуска GUI!Перечень изменений для версии 0.3.12 в корне отличается от списков изменений прошлых выпусков тем, что основной акцент был сделан на сжатое и понятное изложение главных изменений в выпуске. Т.о., вместо того, чтоб дублировать этот перечень тут, мы приглашаем вас ознакомиться с ним и выяснить о том, что было достигнуто.
Невзирая на то, что команда REACTOS посещала большое число массовых конференций и мероприятий в разнообразных уголках планеты, мы почти не публиковали вестей, что могло показаться периодом затишья, или даже застоя. Мы надеемся, что этот выпуск покажет вам, что всё это время мы трудились как никогда раньше.