caveman_uk said:
IIRC Mac OS uses a completely different kernel to FreeBSD - it's a heavily modified Mach microkernel derivative and FreeBSD's is a traditional Unix monolithic kernel. Mac OS does use the 'user-land' from BSD that runs on top of the kernel. The user-land layer is the Unix-y bit i.e. shells etc that run in a less-priviledged mode on the CPU than the kernel. Mac OS X also uses BSD's virtual file system and networking stack code.
On a traditional BSD system the BSD kernel runs on top of the bare hardware.
In OS X, the Mach microkernel runs on top of the bare hardware and provides basic services such as process management, interprocess communication and memory management. On top of this Mach layer is a heavily modified BSD kernel - modified so that this kernel calls the Mach layer to to basic operations. The main thing is that the BSD kernel layer presents the standard BSD APIs up to user space.
If the original poster only needs to perform system calls and rely on some BSD kernel services (such as IPC) then they should have no problems doing this work on OS X. (Remembering that they should at least do some testing on a BSD machine before submitting any assignment code.)