3.5 Services

A service in the context of an OS is a provision to accept requests to perform certain functions. Most services are network based. This means that most services are on top of the TCP/IP protocol stack.

A common misunderstanding is that only server computer offer services. In reality, desktop computers also offer many services, by default. Visit http://www.speedyvista.com/services.php for a list of services.

Because a service is, essentially, an access portal, it is important to only enable the ones that are needed. Some services are required to make a computer secure, and some are accessed only by other parts of the OS on the same computer.

Most operating systems permit some form of access control to its services. This kind of access control is commonly referred to as a “firewall”. For example, a service can be listed as accessible only from the same computer (in which the service is provided). This protects the service from possible attacks initiated from the outside.

Besides security, services also affect the efficiency of an OS. Although each idle service does not require much processing resources, a large number of such services can consume a significant amount of memory. Depending on how each service is implemented, an idle service can potentially consume processing resources if it wakes up periodically to check certain things.

In Windows, a “service” does not need to be network accessible. A Windows service is a “background” program that runs continuously. Such a program does not require any user interaction (command line or GUI), and it often does not produce any output (command line or GUI). Some of these services do listen to network connections, such as the Telnet service. However, many are only for local access and do not accept network connections. In Unix-like operating systems, such programs are called “daemons”. A Windows service or a Unix daemon sits right at the boundary between what constitutes and OS and what constitutes an application program.

In a Unix-like operating system, a “service” is a network accessible interface. To be more exact, a “service” is a TCP or UDP (user datagram protocol) port number associated with certain attributes, such as how incoming requests should be handled.