Why is software OS specific?

Stack Exchange

here asks:

I’m trying to determine the technical details of why software produced using programming languages for certain operating systems only work with them.

It is my understanding that binaries are specific to certain processors due to the processor specific machine language they understand and the differing instruction sets between different processors. But where does the operating system specificity come from? I used to assume it was APIs provided by the OS but then I saw this diagram in a book.

Read 18 remaining paragraphs | Comments

Ars Technica » Technology Lab