Що таке netlink в Linux?

0 Comments

Нетлінк є сімейство сокетів, що використовується для міжпроцесного зв’язку (IPC) між ядром і простір користувача

простір користувача

Простір ядра суворо зарезервовано для запуску привілейованого ядра операційної системи, розширень ядра та більшості драйверів пристроїв. Навпаки, простір користувача – це область пам’яті, де виконується прикладне програмне забезпечення та деякі драйвери, як правило, один адресний простір на процес.

https://en.wikipedia.org › wiki › User_space_and_kernel_space

процесами та між різними процесами простору користувача, у певний спосіб подібний до сокетів домену Unix, доступних у певних Unix-подібних операційних системах, включаючи його оригінальне втілення як інтерфейс ядра Linux, …

NETLINKS складається з команда розробників програмного забезпечення та ІТ-фахівців, які прагнуть використовувати потужність інноваційних технологій, щоб допомогти спільноті процвітати завдяки позитивним змінам.

Домен сокета (сімейство адрес) – AF_NETLINK, а тип сокета – або SOCK_RAW або SOCK_DGRAM , тому що netlink є послугою, орієнтованою на дейтаграми. Протокол (тип протоколу) визначає, для якої функції мережевого зв’язку використовується сокет.

Синхронний або офлайн: Мережевий зв’язок є досить асинхронним, коли кожна сторона отримує повідомлення в певний момент після того, як інша сторона їх надсилає. ioctl є суто синхронними: «Привіт, ядро, ПРОКИНИСЬ і зроби це зараз»

У класичному Netlink nlmsghdr. nlmsg_type використовується для визначення операції в підсистемі, на яку посилається повідомлення (наприклад, отримати інформацію про netdev). Generic Netlink потребує мультиплексування кількох підсистем в одному протоколі, тому воно використовує це поле для ідентифікації підсистеми та genlmsghdr.

Netlink розроблено та використовується для передача різної мережевої інформації між процесами простору ядра та простору користувача.