BSD differs from linux in that BSD was derived from the original AT&T/bell labs unix. But was worked on so much at berkely that none of the original code exists within BSD today.
BSD is a microkernel, while linux is a monolithic kernel. microkernel = a lot of smaller programs, while monolithic kernel = one big program. Both have their advantages and disadvantages, but BSD is a lot more mature than Linux, and probably more stable, secure, etc.
All BSD variants are pretty similar ( so I hear ), but I've only used FreeBSD. FreeBSD strives to be the best BSD for i386 and Alpha processors. NetBSD strives to be the most portable BSD, works on pretty much any processor, ( again, so I hear ), and I'm not sure about OpenBSD, I haven't read much about it other than that it is really secure.
I hope that helps.
Mike