Shell & GUI
The program that users interact with, usually called the shell when it is text based and the GUI (Graphical User Interface), when it uses icons, is actually not part of the operating system, although it uses the operating system to get its work done.
Kernel & User mode
Most computers have two modes of operation: kernel mode and user mode. The operating system, the most fundamental piece of software, runs in kernel mode (also called supervisor mode).
Operating systems are huge, complex, and long-lived.
The source code of the heart of an operating system like Linux or Windows is on the order of five million lines of code or more.
UNIX and its variants and clones:
System V, Solaris, and FreeBSD.
Linux is a fresh code base, although very closely modeled on UNIX and highly compatible with it.
Operating systems perform two essentially unrelated functions:
- providing application programmers (and application programs, naturally) a clean abstract set of resources instead of the messy hardware ones
- managing these hardware resources.
Resource management includes multiplexing (sharing) resources in two different ways: in time and in space. When a resource is time multiplexed, different programs or users take turns using it.
Space multiplexing. Each one gets part of the resource. For example, main memory is normally divided up among several running programs, so each one can be resident at the same time.