The most low-level program that runs on any computer. It is started the moment the computer is switched on, and only ends the moment the computer is shut down. Its main task is to execute ApplicationProgram
s, that perform the tasks that the user really wants to have done.
Note that not every computer runs an operating system. Many embedded systems have applications directly running over the hardware. Some desktop systems intentionally blur the distinction between operating system and application (e.g. the OberonLanguage
-- for languages that were designed to run without benefit of an independent OperatingSystem
See also PurelyFunctionalOperatingSystem
An operating system is a program that provides an interface between the hardware and the business logic.
I take issue with the "started the moment the computer is switched on" statement:
In the MS-DOS world, the ROM BIOS starts up when the computer is switched on, and it may invoke a bootstrap loader from the disk, which in turn loads the "full blown" OperatingSystem
. The ROM BIOS is OperatingSystem
independent - it could start many different OSes.
I take issue with the "Its main task is to execute ApplicationPrograms"
The primary purpose of the operating system is to regulate access to hardware devices, including RAM, CPU, disk drives, etc. -- DavidCorbin
Yes, but this only matters in so far as it lets application programs run!
Yes, like provide a protected memory space (NT uses a 4GB virtual address space with lower 2GB for users and upper 2 GB for the system, although this can be set to 3 GB for users with a special setting) with a Virtual Memory Manager, some abstract model of dealing with hardware (NT has Hardware Abstraction Layer - HAL), device driver model, kernel, services, etc.
There are OperatingSystem
s for embedded applications too...
s have rather special scheduling and synchronizing facilities. These ensure that the highest priority task that is ready to run will always get to the processor within a finite and deterministic amount of time (typically in the single-digit microseconds on mid-level Pentium hardware). Popular real time operating systems include:
- RtLinux, RtaiLinux?, and the rest of the hacked-up Linux kernels
- QNX4 and QnxNeutrino
- WinCE (finite and deterministic does not necessarily mean quick, though)
- Custom solutions; writing real-time operating systems is a traditional entertainment for all embedded systems programmers
An operating system is OnceAndOnlyOnce
for the things that application programmers found themselves doing over and over.
Is anyone doing real research on operating systems these days? We can all see the effects of what has evolved over the last twenty years - we have advanced so much that Linux is now quite popular, and Apple have developed a new OS "based on Unix", while MicroSoft
continues to produce new operating systems which try to do better, but usually don't.
EllFour? PlanB? Systems with OrthogonalPersistency?...
Unix is perhaps the best thing we have, but that doesn't mean that it's really good. However, there's not much incentive for anyone to develop a new system is there?
- Or the barrier to entry is too high: dealing with modern memory management, zillions of device drivers, schmancy graphics to attract users, etc. takes a lot of time and energy.
What do you think a new operating system should have - or even an older, but refurbished one? See NewOsFeatures
The most low-level program that runs on any computer
As long as you don't count the MonitorRom?
. In many older designs, and (as I understand it), some newer designs, a Monitor ROM got/gets control at PowerOn?
. This Monitor ROM could/can be used to examine memory, boot from specific devices, enter code by hand, and other stuff. Some OS implementations were/are aware of the Monitor ROM and would/will allow escaping to it while preserving all other state.
s support many concurrent users
- Pr1mos ran on a Pr1me computer with 3 MegaBytes? of RAM, servicing 48 users at a time, all the time.
- OpenVMS runs DigitalEquipment?s (now owned by HP) VAXes, and 64bit Alpha Servers.
- Multics stood for Multiuser Computing System, I first saw it on some Honeywell hardware at MIT.
- Q: What OS did Xerox's Sigma series run?
- In the 1990's Unix became mainstream, with many vendors having their own flavors: DEC, HP, DG, Sun, SGI, IBM, and a whole litany of other acronyms. At the same time, a variety of OpenSource UnixClones appeared: NetBsd FreeBsd OpenBsd and LinuxOs
s have grown over time
- CP/M booted on my Osborne from one 92kb floppy, with room to spare.
- Apple had a bunch of early OS, leading up to that on the Macintosh - which seemed to have remained nameless, but versioned. They are now on version 10 (X) of the MacOS.
- MSDOS from Microsoft booted from floppies in the early days.
- Unix was named as a pun on the OS named Multics, a single users programming environment.
- [Unix never was a single-user OS. Its very first incarnation supported exactly two users.]
- MenuetosOperatingSystem is a modern single-floppy OS written in AssemblyLanguage