linux user group brescia

immagine del castello

Archivio della mailing list

Socket per Database

Luca Giuzzi giuzzi a dmf.bs.unicatt.it
Ven 8 Dic 2000 22:04:29 UTC
> 	Domandina:
> C'è qualche relazione tra i socket UNIX e il sysV IPC? Visto che questi possono
> funzionare solo in locale (l'avete detto voi), sul mio sistema ce ne sono un
> sacco in uso da qualcosa in cui compare "X", so che X in locale cerca per
> default connessioni mediante IPC e io l'ho complilato nel kernel (era
> consigliato...) sembra una deduzione logica? Se è così questo è un grande passo
> da parte mia per capire come far funzionare la comunicazione interprocesso
> senza disturbare il TCP (che mi sta antipatico: non lascia spazio al suo
> fratellino UDP!)
>
Le IPC (Inter Process Communication) sono delle funzionalita' per sincronizzare
 programmi diversi sulla stessa macchina [e per il passaggio di messaggi e
 dati, non ultimo tramite l'uso di memoria condivisa (SHM.. attenzione
 pero', questa e' anche POSIX, sebbene con una semantica un poco diversa) ]
 Si tratta di un sistema alternativo (e diverso) per condividere dati fra
 tasks differenti... per alcune cose e' equivalente usare socket AF_UNIX
 o message queues IPC, per altre sicuramente IPC e' la decisione migliore
 (memoria condivisa), infine in determinate situazioni (ad es. se si vuole
 che il codice possa funzionare sia in locale che via rete, nel caso di
 streams[*] di dati, oppure  qualora
 le applicazioni non siano state disegnate con QUEL tipo di condivisione
 dati in mente originariamente) AF_UNIX e' sicuramente la decisione
 migliore!

Una nota: lo stack IP non viene usato nel caso di sockets in locale...
 quello si applica solamente ai casi AF_INET e AF_INET6. Se li' sopra
 si fa girare TCP, UDP, IGMP o qualchecosa d'altro, questo dipende dalle
 opzioni con cui il socket e' stato creato...

Nota 2:
 lo so: linux non supporta (per decisione di Linus) gli STREAMS stile
 SVR4... questo sarebbe un altro meccanismo di comunicazione, non 
 l'opzione SOCK_STREAM di socket()

Ciao,
 lg



Maggiori informazioni sulla lista Lug