Введение в сетевое руководство по программированию расширений ядра
Технологический обзор
Сетевые расширения ядра (NKEs) обеспечивают способ расширить и изменить сетевую инфраструктуру OS X, в то время как ядро работает, не требуя, чтобы ядро было перекомпилировано, повторно соединено или перезагружено.
NKEs позволяют Вам создавать модули, которые могут быть загружены и разгружены динамично в определенных позициях в сетевой иерархии. Эти модули могут контролировать и изменить сетевой трафик и могут получить уведомление об асинхронных событиях от уровня драйвера, таких как интерфейсное состояние изменяется.
Этот документ имеет прежде всего интерес для разработчиков, которые должны расширить или изменить сетевую инфраструктуру OS X. Это включает:
Добавляя поддержку новых, нетипов интерфейсов Ethernet.
Разработка пользовательских технологий маршрутизации.
Создание технологий шифрования канального уровня.
Этот документ принимает значительное понимание сетевых понятий, включая основное знакомство с сокетами, пакетной фильтрацией, и т.д. Это также предполагает, что Вы уже знакомы с основами программирования операционных систем уровня ядра.
Поскольку даже незначительные ошибки в коде уровня ядра могут вызвать серьезные последствия, включая нестабильность приложения, повреждение данных, и даже панику ядра, методы, описанные в этом документе, должны использоваться, только если уже не существует никакой другой механизм. Например, если это возможно, фильтрация IP должна обычно делаться с помощью ipfw
. Точно так же пакетное журналирование должно обычно делаться с помощью bpf
.
Этот документ предназначается для обеспечения дополнительного концептуального материала, определенного для сетевых расширений ядра. Это не предназначается как справочный документ и принимает предварительные знания расширений ядра OS X (KEXTs). Для ссылочного материала, определенного для сетей KEXTs, см. документ Ссылка KPI. Для получения дополнительной информации о OS X KEXTs в целом, посмотрите, что Расширение ядра документа Программирует Темы.
См. также
Следующие источники предоставляют дополнительную информацию, которая может представлять интерес для разработчиков сетевых расширений ядра:
Темы Программирования Расширения ядра — концептуальная информация о расширениях ядра в OS X.
Ссылка KPI — справочная документация, определенная для сетевых расширений ядра и другого Кита non-I/O (драйвер устройства) KEXTs.
Ссылка Платформы ядра — справочная документация для драйверов устройств Набора I/O, включая драйверы сетевого устройства.
Разработка и реализация 4,4 Операционных систем BSD. M. K. Маккузик и др., Аддисон-Уэсли, Чтение, 1996.
Сетевое программирование Unix, Второй Выпуск, объем 1. Ричард W. Стивенс, Прентис Холл, Нью-Йорк, 1998.
Проиллюстрированный TCP/IP, объем 1: Протоколы. Ричард W. Стивенс, Аддисон-Уэсли, Чтение, 1994.
Проиллюстрированный TCP/IP, объем 2: Реализация. Ричард W. Стивенс и Гэри R. Мастер, Аддисон-Уэсли, Чтение, 1995.
Проиллюстрированный TCP/IP, объем 3: Другие Протоколы. Ричард W. Стивенс, Аддисон-Уэсли, Чтение, 1996.
Следующие веб-сайты предоставляют информацию о Berkeley Software Distribution (BSD):