Resources System V vs BSD

bsdhistorysystem-v

I'm searching for some detailed resources about the differences of System V and BSD concepts.

For example:

  • Interprocess Communication
  • Sockets vs TLI

Some sort of pro/cons discussion with historical background would be really nice.

Any ideas?

Best Answer

This is mostly a historic matter, for a number of reasons:

  • Over the years, the System V based Unices have gotten a lot of BSD in them, and the BSDs have — to a lesser extent — adopted some System V features.

  • A lot of the differences simply don't matter any more, like XTI/TLI, having been beaten out in the market of ideas by BSD sockets.

  • The Unix market is consolidating. There are fewer weird nonstandard differences to deal with these days, and better tools for dealing with the ones that remain. One big area of difference is in how dynamic linkage works, for instance, but we have GNU libtool to deal with it now.

The best single resource I know of for learning about these sorts of differences is Advanced Programming in the Unix Environment by Stevens and Rago. If you have a special interest in networking and IPC, add in Stevens' Unix Network Programming, volume 1 and volume 2.

If you already have an earlier edition of APUE, it's still useful. The main thing the second edition added was explicit coverage of Linux and OS X, but since these are based on Unix, you could still puzzle out how to apply the information. The third edition updates this classic again for recent OS versions and adds some new material.