Введение в сетевое руководство по программированию расширений ядра

Технологический обзор

Сетевые расширения ядра (NKEs) обеспечивают способ расширить и изменить сетевую инфраструктуру OS X, в то время как ядро работает, не требуя, чтобы ядро было перекомпилировано, повторно соединено или перезагружено.

NKEs позволяют Вам создавать модули, которые могут быть загружены и разгружены динамично в определенных позициях в сетевой иерархии. Эти модули могут контролировать и изменить сетевой трафик и могут получить уведомление об асинхронных событиях от уровня драйвера, таких как интерфейсное состояние изменяется.

Этот документ имеет прежде всего интерес для разработчиков, которые должны расширить или изменить сетевую инфраструктуру OS X. Это включает:

Этот документ принимает значительное понимание сетевых понятий, включая основное знакомство с сокетами, пакетной фильтрацией, и т.д. Это также предполагает, что Вы уже знакомы с основами программирования операционных систем уровня ядра.

Поскольку даже незначительные ошибки в коде уровня ядра могут вызвать серьезные последствия, включая нестабильность приложения, повреждение данных, и даже панику ядра, методы, описанные в этом документе, должны использоваться, только если уже не существует никакой другой механизм. Например, если это возможно, фильтрация IP должна обычно делаться с помощью ipfw. Точно так же пакетное журналирование должно обычно делаться с помощью bpf.

Этот документ предназначается для обеспечения дополнительного концептуального материала, определенного для сетевых расширений ядра. Это не предназначается как справочный документ и принимает предварительные знания расширений ядра OS X (KEXTs). Для ссылочного материала, определенного для сетей KEXTs, см. документ Ссылка KPI. Для получения дополнительной информации о OS X KEXTs в целом, посмотрите, что Расширение ядра документа Программирует Темы.

См. также

Следующие источники предоставляют дополнительную информацию, которая может представлять интерес для разработчиков сетевых расширений ядра:

Следующие веб-сайты предоставляют информацию о Berkeley Software Distribution (BSD):