"Programmazione Unix" si riferisce alla programmazione esplicita per un ambiente unix. Ciò include la programmazione di shell conformi a uno standard pertinente (come POSIX ). Tuttavia, includerebbe anche la programmazione in qualsiasi linguaggio, mentre si fa esplicito uso di interfacce di sistema e risorse che sono similmente standardizzate, presumendo che siano specifiche per il mondo * nix.
Ad esempio, la programmazione di rete senza una libreria di terze parti in C o C ++ non è portatile, poiché nessuno degli standard dice nulla al riguardo. Il networking in C / C ++ è implementato usando un'interfaccia dettata dal sistema operativo, e mentre su sistemi * nix-ish questo è più o meno universale, non è possibile eseguire il porting di quel codice invariato a (es.) Windows, e viceversa. Quindi, fare cose di rete in C o C ++ significa usare una libreria portatile o prendere di mira una piattaforma, e Unix è una possibilità nel caso successivo, quindi quella è "programmazione unix" (e programmazione C o C ++ e programmazione di rete). 1
Tuttavia, la programmazione in rete in molti linguaggi di livello superiore come perl o python o java è portatile; questi linguaggi sono generalmente implementati in C, ma mentre i dettagli dell'implementazione differiscono da piattaforma a piattaforma, l'interfaccia no. Pertanto è possibile scrivere codice di rete in perl che dovrebbe essere eseguito su qualsiasi sistema su cui viene eseguito perl; su un sistema Unix, questo viene tradotto dall'implementazione dell'interprete nelle chiamate native appropriate e su un sistema Windows, verrà tradotto in modo diverso. Poiché il tuo vero codice perl non è specifico di nulla ma perl, non è una programmazione unix. È la programmazione di rete e la programmazione perl, ma non la programmazione unix.
1. A causa dell'intima relazione storica tra C e Unix, il fatto che C sia stato il linguaggio più utilizzato per scrivere i sistemi operativi in generale e la natura di cosa sia un "sistema operativo", ci sono molte cose nella categoria " Programmazione C specifica del sistema operativo "- un altro esempio quotidiano oltre alla rete è roba orientata al filesystem, come la formattazione di file e la lettura di directory. Quindi, ci sono vari libri di tipo "Programmazione Unix in C" in giro, perché la programmazione di base in C comporta inevitabilmente molti elementi specifici del sistema operativo. Questo non è il caso di linguaggi più portatili come perl o java; in questo caso, l'oggetto del libro sarà probabilmente " Programmazione di sistemi in Perl", o più probabilmente, semplicemente "Programmazione con Perl".