The low-level software which schedules tasks, allocates
storage, handles the interface to peripheral hardware and presents a
default interface when no application program is running.
The OS may be split into a kernel which is always present and
various system programs which use facilities
provided by the kernel to perform higher-level house-keeping tasks,
often acting as servers in a client-server
relationship.
Some would include a graphical user interface and window
system as part of the OS, others would not.
The facilities an operating system provides and its
general design philosophy exert an extremely strong influence
on programming style and on the technical cultures that grow up
around the machines on which it runs.