title: If two computers have the same CPU ( same machine instructions ) then what prevents a program from being compatible for both computers?
body: <p>I'm studying computer architecture and I don't understand what really makes a software for one machine &quot;compatible&quot; with another machine. Let's take for example two machine like Mac Os and Windows that use the  same intel cpu. Now, if the opcodes are the same how is it possible that their software are incompatible with each other ?</p>
  <p>1 ) Can someone give an outline of what the compatibility word involves ?</p>
  <p>2 ) What are the elements that make two machines compatible with each other other than the opcodes of the cpu ?</p>