Operating System

Alan Kay says that an operating system is a system that manages Time and Space. It means that an operating system in traditional sense manages CPU time and memory; we stretch the notion just a little bit to say that Croquet OS manages time with explicit time and space the bit-identical results in memory. discord

~

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 Application Programs, 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 Oberon Language).

The Language Is An Os -- for languages that were designed to run without benefit of an independent Operating System.


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" Operating System. The ROM BIOS is Operating System independent - it could start many different OSes.


I take issue with the "Its main task is to execute Application Programs"

The primary purpose of the operating system is to regulate access to hardware devices, including RAM, CPU, disk drives, etc. -- David Corbin

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.

-- sg


There are Operating Systems for embedded applications too...

Windows CE (See Win Ce)

...others...

Real Time Operating Systems 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:

Rt Linux, Rtai Linux, and the rest of the hacked-up Linux kernels

QNX4 and Qnx Neutrino

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 Once And Only Once 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 Micro Soft continues to produce new operating systems which try to do better, but usually don't.

Ell Four? PlanB? Systems with Orthogonal Persistency...

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 New Os Features.


The most low-level program that runs on any computer

As long as you don't count the Monitor Rom. In many older designs, and (as I understand it), some newer designs, a Monitor ROM got/gets control at Power On. 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.


Multi User Operating Systems support many concurrent users

Pr1mos ran on a Pr1me computer with 3 Mega Bytes of RAM, servicing 48 users at a time, all the time.

OpenVMS runs Digital Equipments (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 Open Source Unix Clones appeared: Net Bsd Free Bsd Open Bsd and Linux Os

Single User Operating Systems 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.]

Menuetos Operating System is a modern single-floppy OS written in Assembly Language



See original on c2.com