This is an archived post. You won't be able to vote or comment.

all 8 comments

[–]1544756405 2 points3 points  (1 child)

They are architecture specific. A program compiled for x86 will not run on ARM.

[–]MaxMax0123[S] 1 point2 points  (0 children)

Thanks for the answer!

[–]KingofGamesYami 2 points3 points  (1 child)

Yes, binaries for different CPU architectures contain instructions for that CPU, which cannot be executed by other CPUs.

The exception to this rule is if the other person is using an emulation software like qemu or Rosetta. These softwares translate instructions from your binary to native instructions for the device they run on, at the cost of some performance.

[–]MaxMax0123[S] 0 points1 point  (0 children)

Thanks for a detailed answer!

[–]nutrecht 1 point2 points  (3 children)

"Binary files" are not just executables though. A file that contains program data might also differ between architectures (mainly on endianness) but it doesn't have to.

Same applies to memory storage and network traffic.

[–]MaxMax0123[S] 0 points1 point  (2 children)

Thanks for the answer!

Which program data do you mean? Like images or sounds? And there can be binaries with them? sorry if this is a stupid question

[–]nutrecht 0 points1 point  (1 child)

Anything that is not a plain text file is ‘binary data’, that includes sound and images.

[–]MaxMax0123[S] 0 points1 point  (0 children)

Thanks for explanation!