<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">2015-03-20 11:58 GMT+01:00 Roberto De Ioris <span dir="ltr"><<a href="mailto:roberto@unbit.it" target="_blank">roberto@unbit.it</a>></span>:<br><div><br></div><div>> [...] </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5">
>><br>
> Ho trovato il thread su golang-nuts.<br>
><br>
> Cosa intendi che senza fork non funziona mmap?<br>
><br>
><br>
<br>
<br>
</div></div>mi riferisco a mmap(..., MAP_SHARED, ...) che e' la base di tantissime<br>
tecnologie (tra cui postgresql). Il succo e' che se mi vendi un linguaggio<br>
come 'di sistema' e poi non ci posso riscrivere il mio postgres ci rimango<br>
un po' male :)<br>
<div class="HOEnZb"><div class="h5"><br></div></div></blockquote><div><br></div><div>L'idea è che postgresql usa un processo per ogni connessione, mentre in Go useresti una goroutine.</div><div><br></div><div></div></div></div><div class="gmail_extra">Un uso di fork molto utile/comodo, IMHO, è quello che ne fa redis quando effettua il dump del database su file.</div><div class="gmail_extra">Usando fork non ha bisogno di sincronizzare l'accesso al database, potenzialmente rallendando o bloccando eventuali lettori/scrittori.</div><div class="gmail_extra"><br></div><div class="gmail_extra">Anche la demonizzazione, non la vedo come una mancanza grave.</div><div class="gmail_extra">Con systemd, ad esempio, sembra non sia più necessaria.</div><div class="gmail_extra"><br></div><div class="gmail_extra">Sarebbe comodo se fosse possibile con clone di Linux, dire al kernel di non mappare nel processo figlio una certa regione di memoria,<br></div><div class="gmail_extra">ed usare questa regione per memorizzare tutte le variabili usate per la sincronizzazione.  Ma anche se fosse possibile, probabilmente gli sviluppatori di Go non la userebbero perchè aumenta la complessità.</div><div class="gmail_extra"><br></div><div class="gmail_extra">Alla fine, comunque, credo che a Go manchi un nuovo tipo di "sistema" operativo, oppure per gli sviluppatori "sistema" significa Plan9</div><div class="gmail_extra">(su questo punto ho letto di molte critiche).</div><div class="gmail_extra"><br></div><div class="gmail_extra"><br></div><div class="gmail_extra">Ciao  Manlio</div><div class="gmail_extra"><br></div><div class="gmail_extra"><br></div></div>