Skip to content
Syscall BSD#510

svc · unix #510

__channel_open

Ouvre un canal Skywalk en espace utilisateur vers un nexus noyau pour des E/S de paquets sans copie.

Prototype

int __channel_open(struct ch_init *init, uint32_t init_len);

Retour: int

Arguments

NameTypeDirDescription
initstruct ch_init-
init_lenuint32_t-

Historique des versions

XNU tagmacOS#
xnu-8792.41.9macOS 13.0 Ventura510
xnu-10002.1.13macOS 14.0 Sonoma510
xnu-11215.1.10macOS 15.0 Sequoia510
xnu-11417.101.15macOS 15.4 Sequoia510
xnu-12377.1.9macOS 26.0 Tahoe510
xnu-10002.41.9510
xnu-10002.61.3510
xnu-10002.81.5510
xnu-10063.101.15510
xnu-10063.121.3510
xnu-10063.141.1510
xnu-11215.41.3510
xnu-11215.61.5510
xnu-11215.81.4510
xnu-11417.121.6510
xnu-11417.140.69510
xnu-12377.101.15510
xnu-12377.41.6510
xnu-12377.61.12510
xnu-12377.81.4510
xnu-8019.80.24510
xnu-8020.101.4510
xnu-8020.121.3510
xnu-8020.140.41510
xnu-8792.61.2510
xnu-8792.81.2510
xnu-8796.101.5510
xnu-8796.121.2510
xnu-8796.141.3510

Notes

Skywalk est le chemin de données réseau moderne d'xnu : les nexus (noyau) possèdent les pools de paquets et les anneaux par flux, les canaux (espace utilisateur) mappent ces anneaux en mémoire partagée afin que des processus comme Network.framework puissent faire du DMA de paquets sans appel système par envoi. __channel_open prend un uuid de nexus plus un blob d'attributs de canal et renvoie un fd dont la région mmap contient les anneaux tx/rx et un segment de métadonnées. Restreint aux processus entitlés — principalement nettrace, nehelper et le commutateur de flux côté noyau.

Détection

Surface très privilégiée ; les ouvertures par autre chose que les démons réseau Apple devraient déclencher des alertes. ES n'a pas de sonde ; l'audit repose sur le numéro d'appel système plus la signature de code de l'appelant.

API associées

__channel_get_info__channel_sync__channel_set_opt__nexus_openmmap