What precisely constitutes an OperatingSystem is a widely and wildly debated topic. Usually it’s considered to mean a Kernel and a minimal set of UserSpace applications to get the machine to Boot into a state capable of running user programs. It is commonly executed immediately after the BootStrap part of a PersonalComputer’s (not sure about mainframes, but probably the case for them as well) startup sequence.

The most common variants of operating systems in general use are:

See Category:OperatingSystem for another list and help with all the acronyms.

Many others are undoubtly available to the persistent user, or someone may have been brave enough to have written their own (a lengthy and complicated process which will involve some form of AssemblyLanguage programming).

There once was a programmer who was attached to the court of the warlord of Wu. The warlord asked the programmer: “Which is easier to design: an accounting package or an operating system?”

“An operating system”, replied the programmer.

The warlord uttered an exclamation of disbelief. “Surely an accounting package is trivial next to the complexity of an operating system”, he said.

“Not so”, said the programmer, “when designing an accounting package, the programmer operates as a mediator between people having different ideas: How it must operate, how its reports must appear, and how it must conform to the tax laws. By contrast, an operating system is not limited by outside appearances. When designing an operating system the programmer seeks the simplest harmony between machine and ideas. This is why an operating system is easier to design.”

The warlord of Wu nodded and smiled. “That is all good and well, but which is easier to debug?”

The programmer made no reply.

– Geoffrey James, “The Tao of Programming”