Po skonfigurowaniu gniazda proces może prowadzić z nim interakcje
zgodnie z rodzajem użytego gniazda.
</p>
-
+ <h2 id="10.9.unixsockets">10.9. Gniazda uniksowe</h2>
+ <p>
+ Gniazda uniksowe rodzaje gniazd szczególnie wykorzystywanym w
+ komunikacji międzyprocesowej (IPC), wiele aplikacji bowiem jest
+ projektowanych w architekturze klient-serwer, a tego typu gniazda
+ mogą się zachowywać jak gniazda sieciowe, mimo że nimi nie są i nie
+ jest powiązana z nim żadana sieć. Możliwe jest również takie
+ skonfigurowanie gniazd zachowywały się podobnie do protokołów
+ TCP/UDP. Przykładem wykorzystania tego typu gniazd jest komunikacja
+ z systemem D-Bus (odpowiedzialnym za monitorowanie i reagowania na
+ zdarzenia w systemie).
+ </p>
+ <p>
+ Powodem popularności gniazd uniksowych jest możliwość utworzenia
+ specjalnego pliku gniazda, które jak każdy plik w systemie będzie
+ podlegać kontroli dostępu na podstawie klasycznych uniksowych
+ uprawnień przez co inne procesy nie będą mieć dostępu do niego.
+ Przykładem takiego pliku może być na przykład:
+ </p>
+<pre class="code-block">
+xf0r3m@vm-eba25a2:~$ ls -al /run/rpcbind.sock
+srw-rw-rw- 1 root root 0 09-01 07:04 /run/rpcbind.sock
+</pre>
+ <p>
+ Inną sprawą jest wydajność, korzystając z gniazd uniksowych jądro
+ nie musi używać podsystemu sieciowego. Sam proces programowania
+ nie różni się zbytnio od gniazd sieciowych, dlatego też wiele
+ aplikacji sieciowych również umożliwia połączenia za pomocą gniazd
+ uniksowych. Przykładem takiej aplikacji może być przedstawiony
+ na przykładzie <em>rpcbind</em>.
+ </p>
+ <p>
+ Za pomocą polecenia <em>lsof</em> z opcją <em>-U</em> możemy
+ wyświetlić wszystkie uniksowe gniazda dostępne w systemie.
+ </p>
+<pre class="code-block">
+xf0r3m@vm-eba25a2:/media/xf0r3m/immudex_crypt0$ sudo lsof -U
+COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
+systemd 1 root 10u unix 0x00000000c0eae923 0t0 15927 /run/systemd/journal/stdout type=STREAM (CONNECTED)
+systemd 1 root 17u unix 0x00000000a1f6a748 0t0 11408 /run/systemd/notify type=DGRAM (CONNECTED)
+systemd 1 root 18u unix 0x0000000062a0c5b9 0t0 11409 type=DGRAM (CONNECTED)
+systemd 1 root 19u unix 0x00000000962057e3 0t0 11410 type=DGRAM (CONNECTED)
+systemd 1 root 20u unix 0x000000001183727b 0t0 11411 /run/systemd/private type=STREAM (LISTEN)
+systemd 1 root 21u unix 0x000000007042f6df 0t0 11413 /run/systemd/userdb/io.systemd.DynamicUser type=STREAM (LISTEN)
+systemd 1 root 22u unix 0x000000008bad806c 0t0 11414 /run/systemd/io.system.ManagedOOM type=STREAM (LISTEN)
+systemd 1 root 23u unix 0x0000000096526742 0t0 20935 /run/systemd/journal/stdout type=STREAM (CONNECTED)
+systemd 1 root 24u unix 0x00000000f0a1522b 0t0 182291 /run/systemd/journal/stdout type=STREAM (CONNECTED)
+</pre>
</div>
<p style="margin: 15px; padding: 0; outline: 0;">
2022; COPYLEFT; ALL RIGHTS REVERSED;