]> gitweb.morketsmerke.org Git - mmdev.git/commitdiff
Zakończenie tworzenia 10 rozdziału. Do przeredagowania.
authorxf0r3m <jakubstasinski@protonmail.com>
Fri, 1 Sep 2023 11:06:52 +0000 (13:06 +0200)
committerxf0r3m <jakubstasinski@protonmail.com>
Fri, 1 Sep 2023 11:06:52 +0000 (13:06 +0200)
articles/terminallog/Linux.Podstawy.html

index b2bc1a8fb9c41ba339bbc6d97ef815c942727cb5..07677d2d54fa36b3cb9696e5ff4c262ea1e74ab4 100644 (file)
@@ -9346,7 +9346,54 @@ xf0r3m@vm-76925c3:~$ rpcinfo -p localhost
           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;