If it looks like a Unix, smells like a Unix, it's probably a Unix.

A few simple (yet extremely powerful) features, are, IMHO, what makes an operating system 'Unix': Programmable shells. Redirection and piping. Everything is a file, including devices. Multitasking. Multiple users. Permissions and security, that work, and are reasonably easy to use and understand (contrast with: ACLs, Multics, VMS). Hierarchal file system. Networking, particularly TCP/IP. Modularization (small programs that do one thing very well), is a common theme. A subset of Unix APIs, as defined by POSIX, particularly POSIX.1 is also common, though this is not exclusive to Unix.

Some people like to think that it is Unix iff some of the code is derived from Version 7 Unix. I don't like this definition, since then things like Linux, QNX, and BeOS would be excluded, even though they are all pretty Unix-like, at least from some perspectives. BeOS has some pretty GUI interfaces, and most people don't use the Unix-like interface, but then again, the same can be said of MacOS X, and it is most certainly a Unix.

I like even less the definition "It's Unix if it is certified as such by X/Open or The Open Group or IEEE or whoever", as this definition excludes Version 7, not to mention 4.2 BSD, Linux, and many others - my personal opinion is that this makes the definition virtual useless for deciding what is or is not Unix. If fscking Version 7 isn't a Unix, what is?