Главная | Информация | Сообщество | Разработка | myReactOS | Связаться с нами

  1. Главная
  2. Сообщество
  3. Разработка
  4. myReactOS

  1. Обзор
  2. Как принять участие
  3. Описание системы
  4. Компиляция ReactOS
  5. ЧаВО разработчика
  6. Правовой обзор
  7. SVN-сервер
  8. Багзилла
  9. Doxygen
  10. RosCMS
  11. Статус сайта
  12. Перевод сайта
  13. ReactOS CIA

Разработка ReactOS > Описание системы

Описание системы

Введение

Архитектура ReactOS основана на архитектуре Microsoft Windows 2003 Server. Архитектура ReactOS, подобно архитектуре NT, монолитна, однако позволяет подгружать дополнительные модули. На самом нижнем уровне находится исполнительная подсистема, включающая в себя компоненты, функционирующие в режиме ядра. Выше неё находятся защищённые подсистемы, обеспечивающие функционирование различных компонентов операционной системы.

Исполнительная подсистема

Исполнительная подсистема - это весь код, работающий в режиме ядра. Исполнительную систему условно можно поделить на следующие компоненты: уровень аппаратной абстракции (HAL), драйверы устройств, ядро, системные службы (включая подсистему Win32). Все эти компоненты работают в режиме ядра. HAL, ядро, системные службы и драйверы устройств все вместе составляют исполнительную подсистему.

Уровень аппаратной абстракции

Именно HAL делает возможным запуск ядра ReactOS x86 и HAL на различных материнских платах архитектуры x86. HAL абстрагирует специфичный для материнской платы код от ядра, поэтому поддержка различных плат не требуют внесения изменений в ядро. Примерами различных аппаратных платформ являются стандартный PC, японский NEC PC98 и рабочие станции SGI архитектуры x86.

Драйверы устройств

Драйверы устройств - это расширения исполнительной подсистемы ReactOS, специфичные для каждого установленного в компьютер устройства. Они позволяют операционной системе взаимодействовать с определённым аппаратным обеспечением. В настоящее время целью ReactOS является реализация поддержки режима драйверов NT, частью которого является Windows Driver Model (WDM). WDM - это набор правил для написания переносимых драйверов Windows. Разработка Windows Driver Foundation (WDF), впервые представленного в Windows Vista, также является задачей на будущее.

Взаимодействие

Драйверы устройств используют пакеты для взаимодействия с ядром и другими драйверами. Пакеты пересылаются через диспетчер ввода-вывода (являющийся системной службой) посредством IRP (IO Request Packets - пакеты запроса ввода-вывода).

Ядро

Архитектура ядра ReactOS основана на архитектуре ядра Microsoft Windows 2003 Server. В ядре реализован асинхронный вызов процедур (Asynchronous Procedure Call - APC), отложенный вызов процедур (Deferred Procedure Call - DPC), процессы, потоки, мьютексы, семафоры, спин-блокировки, таймеры и многое другое.

Системные службы

Системные службы включают в себя: диспетчер ввода-вывода, диспетчер конфигурации, диспетчер Plug and Play, диспетчер управления электропитанием, диспетчер памяти, исполнительную подсистему, диспетчер объектов, монитор безопасности, структуру процессов, локальный вызов процедур, подсистему Win32.

Защищённые подсистемы

Защищённые подсистемы делают возможным функционирование различных профилей операционной системы поверх исполнительной подсистемы ReactOS. Изначально, целью ReactOS была подсистема Win32k, однако она запускается в режиме ядра как часть исполнительной подсистемы, и, соответственно, не может функционировать поверх неё. Для других графических подсистем, в подсистеме Win32 имеется интерфейс для подсистем. Драйвера видеоплаты в Windows NT жёстко архитектурно интегрированы с подсистемой Win32, поэтому непосредственное взаимодействие подсистемы пользовательского режима с графическими драйверами является крайне непрактичным. По этой причине, для графического интерфейса подсистема должна использовать подсистему Win32 режима ядра. Такая подсистема не должна зависеть от диспетчера окон Win32, а вместо того лишь использовать графические примитивы, предоставляемые подсистемой Win32k.

Архитектура Native API

Native API обычно используется для вызова кодом, работающим в пользовательском режиме, служб, работающих в режиме ядра. Это эквивалентно тому, как работает интерфейс системных вызовов (System Call Interface) в большинстве UNIX-подобных операционных систем. Документация к Microsoft Windows NT/2000/XP не включает в себя описание архитектуры Native API, вместо этого программисты должны использовать Win32 API. Поскольку ReactOS является проектом с открытым исходным кодом, наша реализация архитектуры Native API открыта для всех разработчиков программного обеспечения. Архитектура Native API реализована в NTDLL.dll. Помимо того, что в NTDLL.dll содержатся точки входа функций Native API пользовательского режима, в этой же библиотеке находится процесс инициализации и программный код, предназначенный для загрузки модулей. Эти точки входа в режиме ядра вызывают функцию KiSystemService (диспетчер системных сервисов), которая осуществляет поиск сервиса режима ядра в системной таблице - KiSystemServiceTable.

Цели совместимости

Изначальной целью ReactOS в отношении совместимости с драйверами и приложениями являлась Microsoft Windows NT 4.0. С тех пор были выпущены Microsoft Windows 2000, XP, 2003 Server и Vista. Все эти операционные системы являются потомками Windows NT. Поэтому мы можем понемногу изменять нашу цель ничуть не беспокоясь о том, что архитектура изменилась слишком сильно. Фактически, внутри себя, Windows 2000 сообщает информацию о версии как Windows 5.0, а Windows XP как Windows 5.1. Команда ReactOS выбрала в качестве официальной цели для обеспечения совместимости операционную систему Windows 2003 Server, которая доказала свою надёжность. Тем не менее, это не означает, что возможности, присутствующие в поздних версиях операционных систем, основанных на Windows NT, не будут реализованы в ReactOS, и работа по внедрению более новых API постоянно продолжается.


ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.