3 ms·
Remember that since our general purpose computers are approximately Turing Machines, they can simulate anything, including better general purpose computers. An
by noblethrasher 10y ago
Remember that since our general purpose computers are approximately Turing Machines, they can simulate anything, including better general purpose computers.
An OS is just a simulation of a "nicer" computer than the one that is natively exposed by the "real" one (i.e. the hardware).
Normally, "nicer" is pretty subjective, but in the case of computing it almost always means only two things:
* We simulate many more computers than we actually have (i.e. timesharing and multitasking)
* We simulate computers that are much easier to program.
In other words, an OS is just a simulation of having access to a bunch of nicer-to-program computers.
But, this ends up implying a multitude of features:
* Simulating many computers requires having a scheduler and process isolation. If we decide that we want individual users to have privileged access to their simulated computers, then we end up adding security features related to authorization and authentication. If we decide that the simulated computers should be able to communicate with each other, then we end up with networking since there is little difference between two simulated computers running on the same box, and two simulated computers that are running on different boxes.
* Simulating easier-to-program computers requires having memory management, virtual memory, I/O abstraction, graphics, portability, etc.
Since we end up with most, if not all, of the features that most people think are requisite for an OS, I think that my definition is minimal.