Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

The hobbyist OSes pop up a lot on Hackernews. Some are more full featured than others. What would say is the minimum feature set to be called a real OS?


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.


At least for my operating systems class, the requirement was to be able to boot and run a text editor, usually Vi. Didn't stop some people from building one that could run Doom though.


Ah. I was thinking something more like process isolation and device drivers.


It's probably highly subjective to make a description of what needs an OS to be an OS. For me, it would be to be able to boot on hardware, to be able to execute applications and to give these applications an abstract layer to the hardware.


If process isolation were a requirement then it would exclude many things people call an operating system.

For example, CP/M is an operating system with no support for multiple processes.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: