Кіріспе

Linux ядросының процестер арасындағы байланыс интерфейсі – Netlink, ядро мен пайдаланушы кеңістігіндегі процестердің, сондай-ақ әртүрлі пайдаланушы кеңістігіндегі процестердің арасындағы процестер аралық байланыс (IPC) үшін қолданылатын сокеттер отбасы. Бұл Unix-ке ұқсас операциялық жүйелерде қол жетімді Unix домендік сокеттеріне ұқсас, оның ішінде Linux ядросының бастапқы интерфейсі ретіндегі түрі және FreeBSD-дегі кейінгі іске асырылуы. Unix домендік сокеттері сияқты, Netlink байланысы INET сокеттерінен айырмашылығы, хост шекараларын кесіп өте алмайды. Бірақ Unix домендік сокеттері файлдық жүйе атау кеңістігін пайдаланса, Netlink сокеттері көбінесе процестердің идентификаторлары (PID) арқылы адрестеледі. Netlink ядролық кеңістік пен пайдаланушы кеңістігіндегі процестер арасында әртүрлі желілік ақпаратты беру үшін жасалған және қолданылады. Желілік құралдар, мысалы iproute2 отбасы және mac80211 негізіндегі сымсыз драйверлерді конфигурациялауға арналған құралдар, Linux ядросымен байланысу үшін Netlink-ті пайдаланады. Netlink пайдаланушы кеңістігіндегі процестер үшін стандартты сокетке негізделген интерфейс және ядро модульдерінің ішкі пайдалануы үшін ядро жағындағы API ұсынады. Алғашқыда Netlink сокеттер отбасын пайдаланды. Netlink, ioctl-дің икемді жаңаруы ретінде жобаланған; RFC 3549 протоколды толық сипаттайды.

Тарих

Netlink Алексей Кузнецовпен сыртқы сокет опцияларын орнату және алу үшін қолданылатын күрделі, бірақ қолайсыз байланыс әдісіне қарағанда, икемдірек балама ретінде жасалды. Linux ядросы кері үйлесімділікті сақтау үшін қолдауды жалғастыруда. Netlink алғаш рет Linux ядросының 2.0 сериясында мінездемелік құрылғы ретінде жүзеге асырылды. 2013 жылға қарай бұл интерфейс қолданыстан шықты, бірақ әлі де ioctl байланыс әдісі болып табылады; Netlink сокет интерфейсінің қолданылуын салыстырыңыз. Netlink сокет интерфейсі Linux ядросының 2.2 сериясында пайда болды. 2022 жылы FreeBSD-ге Netlink протоколына тәжірибелік қолдау қосылды. Бастапқыда NETLINK ROUTE отбасы және NETLINK GENERIC-тің бір бөлігі ғана қолдалады.

Пайдаланушы анықтаған Netlink протоколы

Пайдаланушылар өздерінің ядролық процедураларына Netlink өңдеушісін қоса алады. Бұл жаңа ядролық модульдерге арналған қосымша Netlink протоколдарын жасауға мүмкіндік береді.