Введение
Принятие Apple открытых стандартов и поддержки стандартных периферийных семей приводит к возможностям и для аппаратных средств и для разработчиков драйвера устройства.
Разработчики аппаратных средств могут использовать в своих интересах стандартные высокоэффективные интерфейсы для разработки дополнительных или периферийных продуктов, расширяющих возможности Macintosh.
Разработчики драйвера могут использовать Набор I/O, объектно-ориентированную платформу разработки драйвера Apple, для создания в ядре или драйверы прикладного уровня для их собственного или устройства другого поставщика.
Кроме того, OS X предоставляет несколько услуг, позволяющих приложениям связываться с аппаратными средствами от плагинов, совместно использованных библиотек и другого выполнения кода вне ядра.
Запустите здесь
Для записи кода, управляющего устройством в OS X Вы должны:
Решите, должен ли Ваш код быть в ядре или в пространстве пользователя. В OS X много драйверов могут быть записаны в пространстве пользователя. Сетевые расширения ядра и файловые системы обычно должны быть в ядре.
Если Вы решаете, что можно записать код в пространстве пользователя, создать соответствие словарей, чтобы соответствовать надлежащее устройство, затем открыть устройство.
Если Вы решаете, что необходимо записать драйвер привилегированного режима, определить то, что класс Набора I/O должен разделить на подклассы драйвер и какие куски драйвер должен опубликовать (если применимо).
Также создайте ряд соответствия правил сказать
kextd
демон, когда загрузить Ваше расширение ядра и создать файл списка свойств, отражающий это.Начните писать код, связывающийся с аппаратными средствами.
Для разработки устройств для Mac считайте соответствующие примечания разработчика.
Для разработки сетевого расширения ядра считайте Сетевое Руководство по программированию Расширений ядра.
Для разработки файловой системы считайте пример кода MFSLives.
Выберите затем, как Вы хотите начать — путем чтения об основах, доставления некоторый код или подводного плавания в определенные технологии.
Хотите познакомиться с основными принципами?
Кодирование в Ядре объясняет за и против разработки кода в ядре.
Каков Набор I/O? в Основных принципах IOKit обеспечивает обзор среды разработки драйвера OS X.
Статья Дарвина и Core Technologies в Технологическом Обзоре Mac описывает Дарвина (основанная на UNIX основа OS X) и другие низкоуровневые технологии.
Поддержка Доступа к устройствам семьи Набора I/O в Доступе к Аппаратным средствам Из Приложений дает представление о том, какой доступ к устройствам доступен из приложений пространства пользователя.
Ссылка семьи Набора I/O в Основных принципах IOKit предоставляет дополнительную подробную информацию для некоторых типов устройства.
Сетевое Руководство по программированию Расширений ядра объясняет, как записать расширениям ядра ту работу с сетевыми пакетами.
Предпочесть учиться на примере?
USBPrivateDataSample: Обеспечивает пример управления USB-устройством от кода пространства пользователя.
Привет Ядро: Создание Расширения ядра С XCode: Обеспечивает обзор создания расширения ядра Кита non-I/O.
Привет Набор I/O: Создание Драйвера устройства С XCode: Обеспечивает обзор создания расширения ядра Набора I/O.
SimpleUserClient: Обеспечивает пример того, как обеспечить коммуникацию между драйвером привилегированного режима и приложениями пространства пользователя.
SampleFilterScheme: Показывает, как вмешаться драйвер между существующими уровнями драйвера.
Поставщик AppleFWAudio Определенный Драйвер Переопределения и SampleUSBAudioPlugin: Показывает, как расширить существующий USB Apple и драйверы аудио FireWire для добавления специфичной для устройства функциональности.
MFSLives: Дает пример того, как добавить поддержку локальной файловой системы.
enetlognke и tcplognke: Демонстрирует, как записать сетевые расширения ядра.
В дополнение к этим примерам и другим примерам в Аппаратных средствах и Примере кода Драйверов, Дарвинский проект открытого исходного кода обеспечивает десятки драйверов устройств, которые можно использовать в качестве начальной точки для понимания Набора I/O.
Хотите изучить, как эффективно использовать Ваш существующий код и знание?
Портирование Приложений UNIX/Linux к OS X обеспечивает обзор OS X, предназначенного для разработчиков UNIX. Как разработчик драйвера устройства, необходимо считать Файл Портирования, Устройство и Сеть глава I/O в частности.
Портирование Драйверов к OS X обеспечивает, объяснение части фундаментального драйвера создает тот OS X, обеспечивает и связывает их с архитектурой драйвера на других платформах.
Пойдите подробно
Иногда Вам нужны фокусируемая на задаче информация или ответы на конкретные вопросы для начала работы. Просмотрите популярные задачи, описанные ниже для более предназначенного способа начать разрабатывать Ваше веб-приложение или веб-контент.
Используя высокий уровень APIs для доступа к аппаратным средствам
Много приложений могут обработать все свои потребности аппаратного доступа с помощью высокоуровневого APIs, который доступен через Углерод и Какао. Если Вы не абсолютно уверены, что необходимо разработать драйвер устройства, считать следующий, чтобы узнать, существует ли более простое решение:
Изучите альтернативные подходы к доступу к аппаратным средствам. Считайте Опции Аппаратного доступа в Доступе к Аппаратным средствам Из Приложений, чтобы изучить, как получить доступ к устройствам от кода пространства пользователя.
Получите доступ к определенному устройству. Посмотрите надлежащую тему (такую как Bluetooth) в Аппаратных средствах и Руководствах по Драйверам для получения дополнительной информации.
Доступ к аппаратным средствам из приложения
Аппаратные средства доступа от пространства пользователя. Доступ к Аппаратным средствам Из Приложений объясняет, как использовать интерфейсы устройства для разработки основанного на приложении драйвера устройства.
Работа с устройствами интерфейса пользователя. Руководство по Интерфейсу Устройства Класса HID объясняет, как работать с устройствами интерфейса пользователя (игровые контроллеры, клавиатуры, поверхности управления, и т.д.) в пространстве пользователя applicatinos.
Управляйте USB-устройствами от пространства пользователя. Руководство по Интерфейсу USB-устройства объясняет, как управлять другими USB-устройствами из приложений пространства пользователя.
Управляйте устройствами FireWire от пространства пользователя. Руководство по Интерфейсу Устройства FireWire объясняет, как управлять устройствами FireWire из приложений пространства пользователя.
Подтемы в Аппаратных средствах и Руководствах по Драйверам предоставляют дополнительную информацию об определенных типах устройства.
Разработка драйвера устройства в ядре
Разработка резидентного ядром драйвера устройства является трудной в лучшем случае и должна быть сделана, только если нет никакой альтернативы. Если Вы решили, что Ваш драйвер устройства должен находиться в ядре, Вы хотите узнать больше о ядре и как программировать в нем.
Руководство по программированию ядра дает обзор высокого уровня среды ядра.
О Расширениях ядра обеспечивает обзор того, как создать расширения ядра.
Привет Ядро и Привет учебные руководства по Набору I/O обеспечивают поэтапные направления о создании драйвера устройства в ядре.
Руководство по проектированию Драйвера устройства IOKit предоставляет всестороннюю информацию обо всех аспектах разработки в драйвере ядра для OS X.
Если необходимо знать, как записать драйвер устройства для определенного устройства, посмотрите надлежащую тему (такую как Bluetooth) в Руководствах по Драйверам и Аппаратных средствах.
Разработка, поддерживая и обслуживая аппаратные средства
Разработайте совместимые дополнительные или периферийные устройства. Ссылочная Библиотека Аппаратных средств и Драйверов обеспечивает примечания разработчика аппаратных средств, объясняющие внутренний проект системы, ее аппаратных возможностей ввода - вывода и расширения и потенциальных проблем совместимости.
Добавьте поддержку принтера. Начало работы с Печатью перечисляет ресурсы, которые необходимо считать сначала. Добрый день Обзор объясняет Добрый день, сетевое решение нулевой конфигурации Apple.
Зарегистрируйтесь в системе для Обучения Технического специалиста AppleCare изучить установку периферийного устройства или аппаратный диагноз и восстановление. Эта программа также предоставляет Вам доступ к Исходным материалам Службы Apple, включая инструменты диагностики, и демонтируйте инструкции.
Готовый к больше?
Ссылочная Библиотека OS X содержит еще много ресурсов, делающих Ваше задание проще. Для сужения списка ресурсов можно установить фильтры для фокусирований на определенных типах ресурсов (таких как руководства или пример кода) или по определенным темам (таким как пользовательский опыт или управление данными).