The Essential Services of Operating Systems
Colorado State University Global
22SC-CSC300-1: Operating Systems and Architecture
Dr. Jonathan Vanover
When a computer boots, it is initialized by the firmware on the motherboard, which ensure the hardware is ready for use when control is passed over to the operating system (Frazelle, 2019, p. 34). The Operating System then starts a (usually large) number of “services”—in this context, programs that run and enable the operating system to complete a well-defined goal like “display an image” or “perform user login management”—before finishing its boot and handing control of the machine over to the user.
Various services are started at boot on the GNU/Linux Operating System1, as can be seen in Figure 1. Likewise, there are many services that Microsoft Windows provides, as can be seen in Figure 2. These services have wildly divergent names and implementations, but often will attempt to provide similar function to the end user of the operating system. These expectations from the user side might very well be the deciding factor in why someone chooses one operating system over another: Moss (2008) highlights the services an operating system might provide as being one of the three basic questions to ask when considering a new operating system (p. 92).
It may be helpful, then, to define what exactly the operating system is. Silberschatz et al. (2018) include the kernel, the middleware frameworks, and any system programs included in the distribution of an operating system as constituting the whole of the operating system itself (p. 7). This is an apt definition, as it includes three levels to examine services within: the kernel, the middleware, and the system application. For the purposes of this paper, one service from each area will be examined across two separate operating systems.
1 The verbiage here is still a bit of a misnomer, as what is really being discussed here are systemd services, not those inherent to a GNU/Linux distribution. Due to the recommended Ubuntu-based operating system being the “GNU/Linux” offering, SysVInit, GNU Shepherd, OpenRC, and others are not being discussed here.
This service type watches the hot-pluggable ports of a machine for changes, especially for new hardware to be attached to them. Once a change is detected, it loads the device driver into the kernel, so that it might communicate properly with the kernel.
In GNU/Linux, this subsystem is generally called “hotplug”(The Linux Kernel Development Community, 2022), though it is implemented as two separate services: uDev, which handles the consistent naming of devices regardless of port, and HAL, which handles maintaining a list of devices connected to the system at any one time (Berg et al., 2022). It is udevd.service, however, that actually handles the loading of the kernel modules upon detection of a new device, by calling the program /sbin/modprobe (Beekmans, 2020, s. 184.108.40.206).
In Windows, the similar service is called “Plug and Play”. It handles loading the device driver, allocating the resources for the device, and goes further by exposing a programming interface for programs to detect changes in hardware as well as for drivers to interact with the system itself (Hudek & Sherer, 2021). In this way, it actually might qualify as Middleware as well: It provides a framework that makes programming applications (or drivers) easier for the programmers (Silberschatz et al., 2018, p. 6).
This service monitors the power draw of the computer system, and any batteries that it may be drawing from. It updates programs that might display such readings to the user, and enacts any policies that the user may have set regarding idle time or low battery.
In GNU/Linux, this service is called “UPower”. As middleware, it provides a service on the system message bus that allows any application to gain access to the data it gathers, including statistics and device events (Hughes, 2010). There is another system called “PolicyKit” that may restrict suspension or hibernation operations, but this is out of the scope for this service.
In Windows, this functionality is provided by the “User-Mode Power Service”, or “UMPS”. According to Marshall (2021), the aim of this service is to provide a single interface for all aspects of power management to applications that might need it, including reporting, controlling, and responding to the current power used by the system.
With the computers of today, it is a foregone conclusion that almost all of them will want to connect to the internet at some point. It is therefore reasonable for a firewall to be included in the definition of an operating system.
The “Uncomplicated Firewall” (“ufw”) is actually a front end for a venerable piece of code called iptables. What ufw does is provide a host-focused command-line interface for manipulating this firewall. It was introduced in Ubuntu 8.04 LTS, and has since spread to use in many different (systemd-based) distributions of GNU/Linux (Contributors to the Ubuntu documentation wiki, 2021).
The “Windows Defender Firewall with Advanced Security” (“WFAS”) is a host-focused firewall that lets the user create rules for traffic that might enter the user’s computer (Athavale et al., 2021). WFAS also supports a subsystem called “IPSec”, which requires authentication from any system attempting to connect to a user’s computer.
Newell and Simon (1976) asserted in their Turing Award lecture that Computer Science is the study of the “programmed, living machine” that is a running computer (p. 113). If this is the case, then these kinds of services might well be the nervous system of that creature: Responding to stimuli, allowing the hardware to be useful, monitoring the status of the hardware… And of course, sending signals constantly back to the brain, the kernel, which controls and supervises everything.
These services have generally stabilized to a standard minimum across various operation systems. If an operating system released today were to omit a driver-loading service, a power service, or even a firewall, it would be noticed and decried as a great deficiency in that operating system. This is because these services are an accepted—and expected—part of any present-day OS.
Athavale, M., Habib, I., Cruz, M., jcaparas, Mabee, D., Gorzelany, A. M., Hall, J., Bichsel, A., Vangel, D., & Simpson, D. (2021, October 28). Windows defender firewall with advanced security. Microsoft Corporation. Retrieved May 22, 2022, from https://docs.microsoft.com/en-us/windows/security/threat-protection/windows-firewall/windows-firewall-with-advanced-security
Beekmans, G. (2020, March 1). Overview of device and module handling (B. Dubbs, Ed.). Linux from Scratch. Retrieved May 22, 2022, from https://www.linuxfromscratch.org/lfs/view/9.1/chapter07/udev.html
Berg, D., Vanwoerkom, H., Keeling, S., Torracca, B., skizzhg, & Giraud, J. P. (2022). Devicemanagement. Debian Wiki. Retrieved May 22, 2022, from https://wiki.debian.org/DeviceManagement
Contributors to the Ubuntu documentation wiki. (2021, October 17). Uncomplicatedfirewall. Canonical Ltd. Retrieved May 22, 2022, from https://wiki.ubuntu.com/UncomplicatedFirewall
Frazelle, J. (2019). Open source firmware. Communications of the ACM, 62(10), 34–38. https://doi.org/10.1145/3343042
Hudek, T., & Sherer, T. (2021, December 14). Introduction to plug and play: Windows drivers. Microsoft Corporation.
Hughes, R. (2010). Upower. Freedesktop.org. Retrieved May 22, 2022, from https://upower.freedesktop.org/
Marshall, D. (2021, December 14). User mode power service. Microsoft Corporation. Retrieved May 22, 2022, from https://docs.microsoft.com/en-us/windows-hardware/drivers/powermeter/user-mode-power-service
Moss, J. L. (2008). Does which operating system you choose matter? Security Distributing and Marketing, 38(6), 92–96.
Newell, A., & Simon, H. A. (1976). Computer science as empirical inquiry: Symbols and search. Communications of the ACM, 19(3), 113–126. https://doi.org/10.1145/360018.360022
Silberschatz, A., Galvin, P. B., & Gagne, G. (2018, May 4). Introduction. In D. Fowley, R. Dannelly, C. Nelson, K. Santor, & A. Pham (Eds.), Operating system concepts (10th ed., pp. 3–54). Wiley. https://isbnsearch.org/isbn/9781119320913
The Linux Kernel Development Community. (2022). Usb hotplugging. Retrieved May 22, 2022, from https://www.kernel.org/doc/html/latest/driver-api/usb/hotplug.html