A "Universal Binary" is the exact same thing as a "Fat Binary," the only difference is that marketing gave it a new name.
If you look at the mach-o header of a binary that contains multiple architectures (initially, ppc/68k or now, i386/x86_64/ppc), the first 8 bytes will be either 0xcafebabe or 0xbebafeca, depending on your endianness. These values are also #define'd as FAT_MAGIC or FAT_CIGAM in <arch/fat.h>.
If you're on a Mac, you can check this by typing `open -h fat.h` into a Terminal and opening up the binary of a universal app in a hex editor.
If you look at the mach-o header of a binary that contains multiple architectures (initially, ppc/68k or now, i386/x86_64/ppc), the first 8 bytes will be either 0xcafebabe or 0xbebafeca, depending on your endianness. These values are also #define'd as FAT_MAGIC or FAT_CIGAM in <arch/fat.h>.
If you're on a Mac, you can check this by typing `open -h fat.h` into a Terminal and opening up the binary of a universal app in a hex editor.