User level programs (applications and tools) make use
of a repertoire of facilities: the system services. These
are sets of programs that
provide a service essential to the UNIX system, but which are
not intended to interact directly with users. For example,
the mmdf mail system is a system service; it comprises a set
of programs designed to deliver e-mail to users automatically. When
you use the SCO Shell e-mail application to create a mail message
and send it, mmdf takes over and determines where the mail
is going, then places it in the appropriate spool directory.
Most services are mediated by a daemon. A daemon is a
process that runs without human intervention in response to some
event. For example, cron responds to the system clock
and runs processes that are scheduled for a given time.
System services are not part of the kernel, and
can be removed or replaced, though doing so may damage or alter the
usability of the system. The common UNIX system services include:
Electronic mail. This is not just the mail or SCO Shell
email program used to read and send mail (the mail
delivery agents or MDAs), but the ``back end'': the
programs that spool outgoing mail, work out which host to send
it to, dial up the host and transmit the mail to the host's own
mail server, then route incoming mail to the correct user's
mailbox. (A spooler is a set of service programs that control a
queue of files, adding files to it at one end and removing them
at the other end for despatch to the destination.)
The back end is known as the mail transport agent
(or MTA) and is one of the main UNIX subsystems.
Security and auditing. The first UNIX systems were built on academic
research computers; security was not a major concern at first.
Later, as the system became a standard for open systems and commercial
use, steps were taken to provide tools that allow systems to be secured
against accidental damage or deliberate misuse. These
subsystems are actually a component of the System Administration
tools described below.
Print services. On a multiuser system, which may be connected to
several printers directly or over a network, it is necessary to
maintain a queue of print jobs (documents waiting
to be printed), which are assigned to printers as they
become available. This service is controlled by a print spooler,
a set of service programs that maintain the print queue and
send files from it to the selected printers.
Terminal services. The UNIX system can be used with almost any
serial terminal, and a wide range of other types of terminal.
However, before you can use a text editor like vi on a
terminal, the UNIX system needs to take control over various
aspects of the terminal; cursor positioning, highlighting, and
the input and output of characters must all be handled directly.
Two services are used by the UNIX system to communicate with
character terminals (the ``termcap'' and ``terminfo''
databases), and one service (the X protocol) is used to communicate with
bitmapped (graphics) terminals.
Timed execution services. A number of facilities exist that allow
the UNIX system to carry out tasks automatically, at a given
time. The cron daemon keeps a list of jobs to be
started at various times and dispatches them when they are due to
run. These jobs include not only user programs (like long print
jobs) but system tasks (such as flushing the buffer cache,
calling another computer to exchange mail files, and backing up
filesystems across a network).
The UNIX system kernel
The system utilities
© 2003 Caldera International, Inc. All rights reserved.
SCO OpenServer Release 5.0.7 -- 11 February 2003