While an “operating system” is often described as an abstraction between applications and hardware. e.g., It provides drivers to abstract hardware, it provides a compiler to abstract CPU architecture, it provides a windowing system to abstract the number of displays/keyboards, etc. This ignores the word system.
Operating System
System: a set of things working together as parts of a mechanism or an interconnecting network; a complex whole.
An Operating System, provides a set of interconnected tools:
- File-system: directories, symbolic-links, mount-points, named-pipes, etc
- Interprocess communication: pipes; stdin/stdout/stderr, sockets, etc
- Process management: Processes, threads, etc
- Network access:
- Human interface: keyboard, mouse, Windowing-system, etc.
- Shell: a command language, and tools
- A set of operating principles: In Unix stdin, stdout, and stderr are just the numbers 0, 1, and 2 (in code), but convention makes them much more.
The word system means that these components work together to make the whole more than the sum of the parts.
Operating Platform
A Platform is a thing that holds something else up. Like a foundation. It may also provide services: supply water and electricity.
Many computing platforms provide many of the services of an operating system, but without the set of operating principles.
Conclution
The words are often used interchangeably.
The culture matters: if there are no operating principles, then it is not a system.
Therefore, Unix (UNIX, BSD, Gnu/Linux) is an operating system, Microsoft's Windows is a platform.
Operating System = Platform + tools + operating principles