I want to know, if I can use the binary of a program without modification on the three systems? After all they are all Unices. I talk about the same architecture.
No, you cannot, as the ABIs differ. Some BSDs do have binary compability with Linux binaries, with some caveats (enabling virtual 8086 mode is a common issue). Often you may need to patch the source, however, as many binaries will make assumptions about their environment based on the fact that the source is developed for Linux. As far as I am aware there is no BSD-binary compatibility in the Linux kernel at this time.
Andrey Sokolov is working on providing Linux binary support on Illumos without zones, but as far as I am aware there is no BSD-binary compability on Illumos that is planned at this time.