I have already read Difference between programs compiled for different OS. Now, I would like to know, why some apps run only on win 8 and others only on win 7 and others on both,...?
closed as too broad by Xavierjazz, Kevin Panko, Tog, Dave, Dave M Dec 17 '13 at 13:44
There are either too many possible answers, or good answers would be too long for this format. Please add details to narrow the answer set or to isolate an issue that can be answered in a few paragraphs. If this question can be reworded to fit the rules in the help center, please edit the question.
It has to do with the subset of features that are available on the specified OS (Windows 7 or 8 for instance).
For example, if (as a programmer) I use the cool 'taskbar preview' functionality and add buttons to the taskbar preview of my icon, I'm using a specific set of programming instructions (known as an API). This API is only available for the system it was designed for. It really is not unlike the difference between programs compiled for different OS's.
That's one reason programs will only work for certain OS's (regardless if the OS is newer than the program or not).
Another reason is the programmer specifically compiled the program to only target one OS (this happens more than you might think). In this case, when the program is run, a certain flag would kick off and say 'not compatible with this version of Windows' or whatever the case may be.
There can be other reasons but the most common are the use of a very specific API or building the program specifically for an OS.
edit: forgot to mention that the OS itself can be programmed to 'not work' with certain other programs. There are a lot of games built for Windows XP that will work with earlier versions of Windows (2000 down) but simply will NOT work with Windows 7+. This can be because of various reasons (API/driver incompatibility for example) that Windows itself might 'block' for security/stability reasons.