Сетевая архитектура
Расширения ядра OS X (KEXTs) обеспечивают механизмы, чтобы расширить и изменить сетевую инфраструктуру OS X динамично, не перекомпилировав или повторно соединяя ядро. Эффект непосредственен и не требует перезагрузки системы.
Сети KEXTs могут привыкнуть к
контролируйте сетевой трафик
измените сетевой трафик
получите уведомление об асинхронных событиях от уровня драйвера
В последнем случае такие события получены по условию канальные и сетевые уровни. Примеры этих событий включают события управления питанием и интерфейсные изменения состояния.
В частности KEXTs позволяют Вам
создайте стеки протоколов, которые могут быть загружены и разгружены динамично и сконфигурированы автоматически
создайте модули, которые могут быть загружены и разгружены динамично в определенных позициях в сетевой иерархии.
Менеджер по Расширению ядра динамично добавляет KEXTs к рабочему ядру OS X в адресном пространстве ядра. Установленный и включил связанный с сетью KEXT, вызывается автоматически, в зависимости от его позиции в последовательности компонентов протоколов, для обработки входящего или исходящего пакета.
Все KEXTs обеспечивают инициализацию и подпрограммы завершения, которые вызывает менеджер по Расширению ядра, когда она загружает или разгружает KEXT. Подпрограмма инициализации обрабатывает любые операции, которые необходимы для завершения объединения KEXT в ядро, такое как обновление protosw
и domain
структуры (через программируемые интерфейсы). Точно так же подпрограмма завершения должна удалить ссылки на NKE от этих структур для разгрузки себя успешно. NKEs должен обеспечить механизм, такой как подсчет ссылок, чтобы гарантировать, что NKE может завершиться, не оставляя висячие указатели.
Для получения дополнительной информации о сетевых частях ядра OS X необходимо считать Руководство по программированию Расширений ядра Сети документа.