Реестр 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 для иллюстрации этой структуры.
Существует шесть плоскостей, определенных в Реестре I/O:
Каждый плоские экспрессы различные связи с потребителями провайдера между объектами в Реестре I/O путем показа только тех соединений, существующих в том отношении. Самой общей является плоскость Службы, выводящая на экран объекты в той же иерархии, в которой они присоединяются во время конструкции Реестра. Каждый объект в Реестре является клиентом услуг, предоставленных его родителем, таким образом, соединение каждого объекта с его наследователем в дереве Реестра видимо на плоскости Службы.
Другие плоскости показывают более определенные отношения:
Аудио плоскость обеспечивает представление цепочки звукового сигнала, которую платформа Core Audio и ее использование плагинов для обнаружения информации о звуковом сигнале соединяют каналом между аудиоустройствами системы.
Плоскость Питания показывает взаимозависимости питания между объектами Реестра I/O, позволяя Вам проследить поток питания от провайдера до клиента и обнаружить, какие объекты могли бы быть затронуты, если выключается определенное устройство.
Плоскость Дерева устройств представляет Открыть иерархию устройства Firmware.
FireWire и плоскости USB каждый представляет внутренние иерархии, определенные теми стандартами.
Важно помнить следующие моменты о плоскостях в Реестре 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 и исследовать его содержание:
Словарь Реестра дампа для Вывода помещает содержание Реестра I/O в консольный журнал (просматриваемый через Консольное приложение в
/Applications/Utilities
) если Проводник Реестра I/O был открыт от Средства поиска.Инспектор выводит на экран список свойств в настоящее время выбранного объекта в форме ASCII. Выбор определенного свойства в главном окне заставляет свое значение быть выведенным на экран в окне Inspector.
Обновление Реестра силы обновляет изображение Проводника Реестра I/O Реестра I/O для отражения любых изменений, которые, возможно, произошли, так как Вы сначала открыли приложение.
Найдите выполняет поиск без учета регистра на Вашей входной строке и, в случае успеха, выводит на экран путь к возникновению строки с именами объектов, разделенными двоеточиями.