Planuję używać netlink do komunikacjimiędzy dwoma procesami użytkownika. Jednym z powodów, dla których jest tak wybredny w stosunku do netlink, jest - Większość przetwarzania jednego z procesów w końcu trafi do przestrzeni jądra, a komunikacja oparta na netlinkach może być użyta w takim stanie (miejmy nadzieję).
Podejście, które podejmuję, to zdefiniowanie nowegoOgólna rodzina Netlink (będę musiał napisać moduł jądra tylko po to, aby obsługiwać tę rodzinę - jak to obecnie wygląda). To jest w porządku, przyglądałem się przykładowemu kodowi, w którym jądro zasadniczo przesyła wiadomości między różnymi procesami i nie wykonuje żadnej pracy - rzeczywista populacja tych komunikatów jest obsługiwana przez procesy.
Moje pytanie brzmi - czy ktoś używa netlink w podobny sposób w jakimkolwiek projekcie? Także - czy powyższe podejście ma sens?
Przeczytałem o propozycji dotyczącej DBUS opartego na netlink. Ale nie znalazłem żadnego wdrożenia tego, co jest najbliższe moim wymaganiom.
Dzięki.
Odpowiedzi:
5 dla odpowiedzi № 1To czego szukasz NETLINK_USERSOCK
jeśli chcesz komunikować się między procesami przestrzeni użytkownika.
Dokumentacja Netlink jest niestety bardzo rzadka. To może trochę pomóc: Kto może dać mi najnowsze próbki programowania netlink?
Po prostu upewnij się, że nl_pid jest niezerowe i pasuje do tego, który użytkownik jest powiązany z „ed” i że wysyłasz unicast.