There's a standard called POSIX which defines just what the core of UNIX is, including the C library, file handling, the sockets interface, that sort of thing. Most programs are portable - and autoconf smooths over the differences where they matter. Just ask the GNU people how they make all the GNU tools portable (they aren't just for Linux!)
On a different note, UNIX has a "philosophy": everything is a file, programs are small components connected with pipes, configuration information is stored in readable editable text files, the shell is programmable, etc.
There's a standard called POSIX which defines just what the core of UNIX is, including the C library, file handling, the sockets interface, that sort of thing. Most programs are portable - and autoconf smooths over the differences where they matter. Just ask the GNU people how they make all the GNU tools portable (they aren't just for Linux!)
On a different note, UNIX has a "philosophy": everything is a file, programs are small components connected with pipes, configuration information is stored in readable editable text files, the shell is programmable, etc.