Pseudo Engineer

ソフトウェアの話とか書いてくよ

Netlink

ifconfigよりipコマンドやssコマンドが推奨されているけど、単に置き換えるだけでなく、そもそもkernelとのやりとりがioctlからnetlink推奨に変わったという背景があるみたい。知らなかった。
d.hatena.ne.jp

とは言え、ツールの実装は全く枯れてなくてこんな話もある。
d.hatena.ne.jp

近年はsystemdやらipコマンド群やらLinuxディストリビューション付属のツール群が大きく変わってきてるわけで、古いけど安定みたいな利点が薄れてるのかなぁ。もちろん、より管理しやすくなってる面もある。

カーネル開発のコントリビュータも増えてることからOSS開発者の母数も増えてるんじゃなかろうか。それゆえOSS開発スピードやプロジェクト数も増えてるんだろうけど、質や安定性、違いのあまりない選択肢の増加などが、OSS界隈が混沌としてきてる要因だろうとも思える。
jp.linux.com



閑話休題

netlinkはsocketベースのインターフェースなので、unix domain socketを用いるのとあまり大差ない。netlink socketはnl_pidで区別する。netlink socketを利用するプロセスのプロセスIDと同値を用いることが推奨されるが、別に強制ではない。そもそもプロセスが複数のnetlink socketを持てば足りないし。
ユーザ空間のみでIPCとしてnetlinkを利用するなら、IPソケットと互換なunix domain socketでいいんじゃないかな。