Relationship between Software and computer compatibility.
This could be better put as Hardware, the stuff you can touch and feel.
The software required to make a computer work is an Operating System. Windows, unix, linux and mac OS are all TYPES of operating systems.
An operating system is just very big list of functions/instructions in the form of a Programming code.
The reason for incompatibility is that the hardware and program code are diffident or can be for each OS so the instructions/functions are diffident.Example
These are things that the computer knows to make Tea
MAC system Hardware cup, teabag, kettle, stove, water
Windows System Hardware cup, teabag, billy can, stove, water
The program for the MAC would say "Place Kettle on stove", this program wouldn't run on the on Windows System because it doesn't know about the kettle as it's looking for a billy can so running the mac program would cause it to crash ie stop operating. The program would need to rewritten for the windows system.
One of main reason for upgrades from win 95 to XP, vista and Windows 7 the changes to the hardware which needed to be supported and the way it used by the end users so the security needs increased so the program code is rewritten.
Hope this helps, there is a bit more to it but the idea is the same
further information below