Реестр I/O

Реестр I/O является базой динамических данных, описывающей набор «живых» объектов (куски или драйверы) и отслеживающей связи с потребителями провайдера между ними. Когда аппаратные средства добавлены или удалены из системы, Реестр сразу обновляется для отражения новой конфигурации устройств. Динамическая часть Набора I/O, Реестр не сохранен на диске или архивируется между начальными загрузками. Вместо этого это создается при каждой начальной загрузке системы и находится в памяти.

Реестр I/O сделан доступным из пространства пользователя APIs в платформе Набора I/O. Этот APIs включает мощные поисковые механизмы, позволяющие Вам искать Реестр объект с представляющими параметрами. Можно также просмотреть текущее состояние Реестра на приложениях использующих компьютеры, предоставленных версию разработчика OS X.

В этой главе описываются архитектуру Реестра I/O и плоскости использование Реестра для представления отношений между объектами. Это также обеспечивает обзор соответствия устройства и представляет приложения, позволяющие Вам просматривать Реестр.

Архитектура Реестра I/O и Конструкция

Является самым полезным думать о Реестре I/O как о дереве: Каждый объект является узлом, убывающим от родительского узла и имеющим нуль или больше дочерних узлов. Реестр следует определению дерева в почти всех отношениях, за исключением малочисленного меньшинства узлов, имеющих больше чем одного родителя. Основным примером этой ситуации является дисковый контроллер RAID, где несколько дисков используются вместе для появления как единственный объем. Исключительные случаи в стороне, однако, просматривая Реестр как дерево помогут Вам визуализировать, как он создается и обновляется.

Во время начальной загрузки Набор I/O регистрирует кусок для Эксперта по Платформе, объект драйвера для определенной системной платы, знающей тип платформы, на которой работает система. Этот кусок служит корнем дерева Реестра I/O. Кусок Эксперта по Платформе тогда загружает корректный драйвер для той платформы, становящейся дочерним узлом корня. Драйвер Платформы обнаруживает шины, которые находятся в системе, и это регистрирует кусок для каждого. Дерево продолжает расти, поскольку Набор I/O соответствует каждый кусок к своему надлежащему драйверу шины, и как каждый драйвер шины обнаруживает устройства, подключенные к нему, и соответствует драйверы им.

Когда устройство обнаружено, Набор I/O запрашивает список всех драйверов типа класса устройства от другой базы динамических данных, Каталога I/O. Принимая во внимание, что Реестр I/O поддерживает набор объектов, активных в в настоящее время рабочей системе, Каталог I/O поддерживает набор доступных драйверов. Это - первый шаг в трехступенчатом процессе, известном как драйвер, соответствующий, который описан в Соответствии Драйвера и Устройства

Информация, такая как тип класса хранится в водительском информационном списке свойств, файл, содержащий XML-структурированную информацию о свойстве. Список свойств описывает водительское содержание, настройки и требования в форме словаря пар ключ/значение. Когда считано в систему, эта информация преобразовывается в контейнеры OS, такие как словари, массивы и другие типы. Набор I/O использует этот список в драйвере, соответствующем; пользовательское приложение может искать Реестр I/O объекты с определенными свойствами в процессе, известном как соответствие устройства. Можно также просмотреть списки свойств в настоящее время загруженных драйверов компьютера с помощью Проводника Реестра I/O, приложение, выводящее на экран Реестр.

При хранении древовидной структуры Реестра I/O в памяти, теперь визуализируйте каждый узел, расширяющийся в третью размерность как столбец. Двумерное дерево Реестра, с куском Эксперта по Платформе в его корне, теперь видимо на плоскости, сокращающей перпендикулярно через эти столбцы. Набор I/O определяет много таких плоскостей (можно думать о них как о ряде параллельных плоскостей, прорубающих столбцы на разных уровнях). Посмотрите рисунок 3-1 для иллюстрации этой структуры.

Рисунок 3-1  Две плоскости в Реестре I/O
Two planes in the I/O Registry

Существует шесть плоскостей, определенных в Реестре I/O:

Каждый плоские экспрессы различные связи с потребителями провайдера между объектами в Реестре I/O путем показа только тех соединений, существующих в том отношении. Самой общей является плоскость Службы, выводящая на экран объекты в той же иерархии, в которой они присоединяются во время конструкции Реестра. Каждый объект в Реестре является клиентом услуг, предоставленных его родителем, таким образом, соединение каждого объекта с его наследователем в дереве Реестра видимо на плоскости Службы.

Другие плоскости показывают более определенные отношения:

Важно помнить следующие моменты о плоскостях в Реестре I/O:

Проводник Реестра I/O

Версия разработчика OS X обеспечивает, приложение вызвало Проводник Реестра I/O, который можно использовать для исследования конфигурации устройств на компьютере. Проводник Реестра I/O обеспечивает графическое представление дерева Реестра I/O. По умолчанию это выводит на экран плоскость Службы, но можно принять решение исследовать любую плоскость. Эквивалентная командная строка, ioreg, выводит на экран дерево в Окне терминала. Если, например, Вы хотите отправить ту информацию в электронном письме, этот инструмент имеет преимущество разрешения Вам вырезать и вставить разделы дерева. Можно получить полное описание использования ioreg путем ввода man ioreg при приглашении оболочки в Терминальном приложении.

При открытии I/O Registry Explorer разделенное окно появляется с объектами Реестра I/O в верхнем правом, этими шестью плоскостями в верхнем левом, и список свойств выбранного объекта в более низкой половине окна. Объект, сопровождаемый треугольником раскрытия, указывает, что это - родительский узел. Можно пересечь дерево Реестра I/O путем щелчка по родительскому узлу и перетаскивания скроллера к праву вывести на экран его дочерние элементы. Рисунок 3-2 показывает пример списка свойств в окне I/O Registry Explorer.

Команды в меню Tools помогают Вам искать Реестр I/O и исследовать его содержание:

Рисунок 3-2  демонстрационное окно I/O Registry Explorer
A sample I/O Registry Explorer window