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
| Name | Type | Dir | Description |
|---|---|---|---|
| init | struct ch_init | - | |
| init_len | uint32_t | - |
Historique des versions
| XNU tag | macOS | # |
|---|---|---|
| xnu-8792.41.9 | macOS 13.0 Ventura | 510 |
| xnu-10002.1.13 | macOS 14.0 Sonoma | 510 |
| xnu-11215.1.10 | macOS 15.0 Sequoia | 510 |
| xnu-11417.101.15 | macOS 15.4 Sequoia | 510 |
| xnu-12377.1.9 | macOS 26.0 Tahoe | 510 |
| xnu-10002.41.9 | — | 510 |
| xnu-10002.61.3 | — | 510 |
| xnu-10002.81.5 | — | 510 |
| xnu-10063.101.15 | — | 510 |
| xnu-10063.121.3 | — | 510 |
| xnu-10063.141.1 | — | 510 |
| xnu-11215.41.3 | — | 510 |
| xnu-11215.61.5 | — | 510 |
| xnu-11215.81.4 | — | 510 |
| xnu-11417.121.6 | — | 510 |
| xnu-11417.140.69 | — | 510 |
| xnu-12377.101.15 | — | 510 |
| xnu-12377.41.6 | — | 510 |
| xnu-12377.61.12 | — | 510 |
| xnu-12377.81.4 | — | 510 |
| xnu-8019.80.24 | — | 510 |
| xnu-8020.101.4 | — | 510 |
| xnu-8020.121.3 | — | 510 |
| xnu-8020.140.41 | — | 510 |
| xnu-8792.61.2 | — | 510 |
| xnu-8792.81.2 | — | 510 |
| xnu-8796.101.5 | — | 510 |
| xnu-8796.121.2 | — | 510 |
| xnu-8796.141.3 | — | 510 |
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.