Entre Windows y Linux hay cosas que cambian porque si vos querés crear un proceso, usar pipes, etc. vas necesitar usar las syscalls del sistema y éso ya sería específico del kernel.
Ahora, si vos programás en ANSI C debería ser lo mismo, lo que pasa que si uno mira las syscalls de linux se confunde un poco porque pensás que son parte del lenguaje C ya que te devuelven datos que son propios de C y los nombres también se prestan para la confusión. En Windows ves que devuelve cosas raras como un handler, etc y lo diferenciás ahí nomás jeje (leé alguna edición de "Windows Internals" si te interesa).
Te recomiendo Advanced Linux Programming, el capítulo 5 sobre IPC:
http://www.advancedlinuxprogramming.com/alp-folder/ que habla sobre sockets en una parte.
Bajate NetCat u otra cosa que sea media cortita y léela... Y capaz que "El lenguaje de programación C" de Kernighan y Ritchie también te pueda servir (vas a ver que tiene ejercicios pavos... pero es un libro que no tiene desperdicio, fíjate el capítulo 8 que habla algo sobre sistemas unix).