to be honest, i never quite understood all that BSD/Mach stuff. what exactly is a kernel vs a linux or operating system?
In most operating systems, there's a component that runs in a more privileged processor mode; that code is "the kernel" plus, if the kernel supports them, any loadable kernel modules that have been loaded.
"Linux" is sometimes used to refer to the Linux kernel, which is used as the kernel in various "Linux distributions", and it's sometimes used to refer to a distribution as a whole.
An operating system generally includes components other than the kernel; some people consider the kernel (and perhaps the loadable kernel modules) to be the operating system, others don't.
how can something be both bsd and mach, but not unix?
"Unix" is used for a whole bunch of different purposes. Sometimes it refers to the operating systems that AT&T made available in the 1970's, 1980's, and early 1990's, sometimes it refers also to operating systems that were based on AT&T's code (BSD, SunOS/Solaris, HP-UX, AIX, IRIX, etc.) even if the developers replaced a lot of the AT&T code with their own code, and sometimes it refers to those operating systems, regardless of how much AT&T code is in them, that have passed the Single UNIX Specification test suite and thus can have the trademarked name "Unix" associated with them.
OS X is in the second of those two categories (with only a small amount of AT&T code left, just as do the current BSDs) and, as of OS X Leopard, is also in the third of those categories, so it's based on BSD and Mach, and is Unix in one of those senses. Prior to Leopard, it was only "Unix" in the second sense, so somebody could use that to say it wasn't "Unix", even though it was "Unix-like" in the strong sense (see below).
all I know is there's a command prompt and it's not dos, so... case in point.
Lots of OSes have non-DOS-style command prompts, and not all of them are Unix or even "Unix-like", either in the weak sense of "sort of looks like Unix, but is sufficiently different that nobody'd mistake it for Unix" or the stronger sense of "compatible with Unix, even if it's not based on AT&T code and hasn't been tested with the Single UNIX Specification test suite (most if not all Linux distributions are "Unix-like" in that strong sense).
(And not all OSes with a DOS-style command prompt are DOS - OSes in the Windows NT family have a kernel and userland that's not at all DOS-derived, but the cmd.exe application provides a command prompt that's DOS-like.)