I read the SO question and I am still in doubt - Why an executable program for a specific CPU does not work on Linux and Windows?
One of the replies says that "Every OS requires the binaries to conform to a specific binary format."
Is that correct ? If yes, then can we add this to the above statement - Executable files contain binary code (???). Lets say 100011 means 5 in windows binary format. But these same code means something else or even nothing in another OS. So, an executable made for win will not work in linux.