What is the correct way to specify the operating system you are targeting or using?
Is a program running on or under an operating system (OS)?
Is a machine running an OS or under an OS?
Machines run operating system software; or run operating systems. My laptop here runs Windows 7.
At least in British English, software can run on or under the OS.
The first sentence might use under because it could be under conditions which include Windows 7, but using under here is normal usage [at least in Britain].
The second sentence could be taken to mean on a machine running Windows Phone 7, but since reference to the machine is understood, "on an OS" is fine.
A machine is running a certain operating system.
A program is running on a certain operating system.
References and examples:
From the Wikipedia article "Computer compatibility":
From the article about Linux:
And thus, depending on who your audience is, you can say:
*the bracketed part is optional, but not necessary
It actually just means what on and under mean. The software program either runs under the OS at a lower-level or on the OS at a higher-level.
For example; Microsoft Office runs on Windows 7, because it is a high-level software program that requires the services of the OS to function. Where as, the device drivers for a video graphics card run under the OS, since the driver provides functionality to the OS at a lower-level.
When you say software is running under an OS it implies that software is connecting to services under the top layer used by the user. Where as, when you say software is running on an OS it implies the software is executing above the top-layer.
I don't think on or under really make much difference anymore, since operating systems today are so automated, plug-in play and consumer friendly. People no longer need to manage device drivers or services manually. So the differences have been lost over time.