Purpose of Operating Systems | CompTIA IT Fundamentals FC0-U61 | 3.1

In this video you will learn about the purpose of operating systems to where concepts such as interface between applications and hardware, disk management, process management/scheduling, application management, memory management, device management, access control/protection, & types of operating systems will be discussed.

Interface Between Applications & Hardware

An operating system (OS) is the most important software that runs on a computer. It manages the computer’s memory and processes, as well as all of its software and hardware. It also allows you to communicate with the computer without knowing how to speak the computer’s language. Without an operating system, a computer is essentially useless. Hardware is unable to function without device drivers that are loaded into the operating system, and applications (software) cannot perform tasks without instructing the operating system to control devices (open files, load files into RAM, perform computations, etc).  A device’s operating system is loaded right after the device is powered on and provides not only the connection between applications and hardware but also the user interface, which enables you to use both applications and hardware by typing or using a mouse, touchscreen, or touchpad.

Side Note:  A device driver is a file that contains information that enables a device (printer, scanner, drive, video card, network interface, etc) to connect to an operating system.

Disk Management

Disk management is a Microsoft Windows utility first introduced in Windows XP as a replacement for the fdisk command.  Disk management involves the process of setting up an internal or external hard drive. It enables users to view and manage the disk drives installed in their computer and the partitions associated with those drives.

Windows Disk Management

You can access Disk Management using the following methods:  Use Windows key+R to open Run, type diskmgmt.msc in the empty box and click OK.  Alternatively, open Disk Management in Computer Management or right-click Start and select Disk Management.

In macOS, initial hard drive setup is performed using Disk Utility.

Side Note:  You can access Disk Utility by searching for “disk utility” with macOS Spotlight or by clicking Finder, Applications, Utilities, Disk Utility.

macOS Disk Utility

In Linux, the console (command-line) tool fdisk is used for initial hard drive setup and to create and delete partitions.

Process Management/Scheduling

Process management involves various tasks like creation, scheduling, termination of processes, and a dead lock. Process is a program that is under execution, which is an important part of modern-day operating systems. The OS must allocate resources that enable processes to share and exchange information. It also protects the resources of each process from other methods and allows synchronization among processes. In Windows, use Task Manager to see currently running processes in a GUI (graphical user interface) display.  From the command line, use tasklist.  To schedule tasks, use Task Scheduler.  In macOS, use Activity Monitor to see currently running processes.  Use Automator to schedule tasks.  In Linux, use the console command ps to see a snapshot of all currently running processes.  To see the most active processes in real time, use top.  To schedule tasks, use the console command cron.

Kill Process/End Task

To kill a process (also known as ending a task), use the appropriate tool(s) for the operating system.  In Windows, Task Manager can be used to kill a process. From the command line, use taskkill.  In macOS, Activity Monitor can be used to kill a process.  From the Terminal, use ps -ax to view the PIDs of running processes, then use kill PID.  In Linux, you can kill a process while running top with the K (kill) option.  You can kill a process by its PID (use ps or top to see it) with kill (same syntax as with macOS) or by process name with killall.

Application Management

Application management is the process of managing the operation, maintenance, versioning and upgrading of an application throughout its lifecycle.

Microsoft Windows

In Windows, apps include their own installation routines.  Windows can provide compatibility settings for installers and for running apps designed for older versions that do not perform properly in the current version of Windows.  Compatibility changes can be made interactively from the app’s properties sheet by opening the Compatibility tab or by running the Program Compatibility Wizard or Program Compatibility Troubleshooter.

Windows Application Compatibility Tab

In Windows 10, the primary location for programming listing, repair, and removal is the Apps & features section of Settings.  However, Control Panel’s Programs section can also be used, as in earlier versions of Windows.

Windows Apps & Features Section

Windows application settings are stored in the Windows Registry.  Registry settings are normally made by the program installer/uninstaller and by user options when a program is run, but the Registry can be manually edited with Regedit if necessary.  Registry editing is sometimes necessary if a program cannot be uninstalled completely by normal means. Always back up the Registry before making any changes, and be very careful when making changes with Regedit.

Windows Registry Editor

Windows 8 and later supports the Microsoft (previously Windows) Store as an approved location for apps.  To manually update an app from the Microsoft Store, open the store and click or tap the three-dot menu bottom.  Click or tap Downloads and updates, then click or tap Get updates.  In all versions of Windows except Windows 10 in S mode, users can also download apps or install apps from media (Windows 10 in S mode can only install apps from the Microsoft Store).  To limit app availability to the Microsoft Store only with other Windows 10 versions, use the Installing apps menu in Apps & features.

User Account Control (UAC) prevents standard users from installing apps unless the user provides an administrator name and password.

Windows User Account Control

macOS

In macOS, applications can be installed from the App Store or from a DMG archive file.  After opening the file, drag the app’s icon file to the Applications folder to install it. By default, macOS blocks apps that are not from the App Store or from an identical developer.  To bypass the block, hold down the Control key and click the app, then select Open.  If a warning message such as “ThisApp” is from an unidentified developer.  Are you sure you want to open it? appears, click Open to open it anyway.  To update an app obtained from the App Store, click System Preferences, App Store or open the App Store itself.  If the Show Updates button is available, click it.  Select the operating system upgrade and app updates desired.  To uninstall an app, drag the app’s icon to the Trash. Enter your password on the Finder dialog box to confirm the deletion.

macOS’s App Store Update Dialog

Linux

Linux apps are usually installed from a package manager.  In Debian-based distributions such as Ubuntu, you can update the apps list in the package manager with this command:

  • sudo apt-get update

To install an app from the package manager, use the following command (replace packagename with the actual app):

  • sudo apt-get install packagename

To remove an app installed with sudo apt-get, use sudo apt-get-purge remove packagename; when prompted to confirm the deletion, type y and press the Enter key.

Android

Android apps are installed through the Google Play store.  To update an app, open the Google Play store, open the menu, and tap My apps & games.  To update a specific app, tap its Update button.  To update all apps, tap Update All.  To uninstall an app, press and hold the icon and then tap Uninstall on the pop-up menu that appears.  Click OK to confirm.

iOS

Apps for iOS are installed through the App Store.  To update an app, open the App Store and tap Update.  To update a specific app, tap its Update button.  To update all apps, tap Update All.  To uninstall an app, press and hold the icon.  The app icons onscreen begins to shake, and a pop out menu will appear with an option to delete the app.

Memory Management

Memory management is a form of resource management applied to computer memory.  The essential requirement of memory management is to provide ways to dramatically allocate portions of memory to programs at their request, and free it for reuse when no longer needed.  This is critical to any advanced computer system where more than a single process might be underway at any time. Operating systems assign the memory needed by each process, making sure that each process uses only the memory addresses allocated to it and, when necessary, uses virtual memory (disk space) as a substitute for memory.  These processes are normally automatic, but some adjustments are possible.

Windows

Virtual memory is a memory management technique that provides an “idealized abstraction of the storage resources that are actually available on a given machine” which “creates the illusion to users of a very large (main) memory”. Virtual memory swaps data in memory to and from disk space when there is not enough RAM for all operations.  To adjust how virtual memory is allocated in Windows, search for System and choose System (Control Panel).  Click Advanced system settings.  The System Properties Advanced tab opens.  Click the Settings button in the Performance section.  Click the Advanced tab and then click Change.

macOS

A swapfile is when your computer is running low on memory and it starts storing things on Disk (part of virtual memory). macOS does not support changing the swapfile size manually.  Freeing up space on the system drive or upgrading to a larger drive will enable macOS to create a larger swapfile when needed.

Linux

To see how memory is being allocated in Linux, open a console (Terminal) session and use the command free.  To see the location and size of your swap space, use the command swapon -show.

Linux Swapfile

For a system being used for production purposes, the swap space should be twice the memory size on the system.  For example, a system with 2GB of RAM, the swap size should be 4GB.

Device Management

Device management is the process of managing the implementation, operation and maintenance of a physical and/or virtual device connecting via a USB, SATA, Thunderbolt, and other input/out (I/O) ports.  It is a broad term that includes various administrative tools and processes for the maintenance and upkeep of a computing network, mobile and/or virtual device.

Windows

The primary method for managing devices in Windows 10 is by selecting Settings, Devices.  However, the Device Manager (available from the Control Panel or the System properties sheet) can also be used.  With Devices, the user can add hardware, view connected devices, pair Bluetooth devices, and configure mice, pens, Windows Ink, keyboards, and AutoPlay settings for USB devices.  With Device Manager, the user can view normally functioning and malfunctioning devices, update or roll back device drivers, and diagnose malfunctioning devices.

macOS

In macOS, click the Apple icon (upper-left corner) and then click About This Mac, System Report to display System Information.  All of the possible hardware categories are listed in the Hardware section; click a category to expand it.  If you click an item category that is not installed, a message informs you that no devices of that type are installed.  If you click an item category, that is installed, you will see device details.

Linux

If you are using a Linux installation with a GUI, you can use the Settings menu to manage hardware.  However, you will need to use command-line utilities:

  • lspci (list PCI devices) -nn for additional detail
  • lsusb (list USB devices)
  • lscup (list CPU features, speed, etc)

For a comprehensive look at all hardware devices, buses, etc, use sudo lshw.  To temporarily remove a device until you restart the system, you can use the /sys command.

Access Control/Protection

Access control is a way of limiting access to a system or to physical or virtual resources.  In computing, access control is a process by which users are granted access and certain privileges to systems, resources or information.  Some of these include passwords (no password, no access), user/group permissions controlled by a network server (member of group A can only access network resources assigned to group A, etc) or by the administrator of a computer (administrators can access all resources; standard users only their own files and resources), and accounts for remote services (only a bank customer can access the electronic banking function).  Windows, macOS, & Linux all support user/group permissions.

Types of Operating Systems (OS)

There are a plethora of operating systems in the computing environment, here’s a list of some of the most popular.

Mobile Device OS

Here are the most common mobile device operating systems:

  • Android:  Used on almost all non-Apple smartphones and tablets running ARM processors.  Many different versions of Android are used by different vendors. Some vendors use unmodified Android, whereas others, notably Samsung, customize Android for their devices.  Updates to Android for a particular device are provided by the device vendor.
  • iOS:  Used on all Apple smartphones and tablets.  iOS devices use ARM processors. Apple provides iOS updates for its iPhone, iPad, and other touch-based products.
  • Windows Mobile:  Used on a small number of smartphones.  Windows Mobile, like Android, is available from third-party mobile phone vendors.  The current version of Windows Mobile, Windows 10 Mobile, has features similar to those in Windows 10.  Windows tablets run standard Windows 10.

Workstation OS

Major workstation and desktop operating systems include Windows, macOS, and Linux.  These operating systems support common office productivity suites such as Microsoft Office and OpenOffice.  They can connect to a local area network and join a domain or workgroup network. They can connect to the internet and support file sharing.

Windows

Windows runs on Microsoft and third-party tablets and laptops and on third-party desktop computers and technical workstations.  Currently, it supports 32-bit and 64-bit processors made by Intel & AMD. The current version, Windows 10, is GUI based and distributed as a service that is updated frequently.  It is optimized for keyboard/mouse/touchpad and for touchscreens, switching modes according to installed hardware or user preference. Windows 10, like previous versions of Windows, also has a command-line mode used primarily for system management and diagnostics.

Windows 10 is available in various editions made for various types of computers and uses:

  • WIndows 10 in S mode (formerly Windows 10 S) is made for PCs, tablets, and 2-in-1 (tablet/laptop) PCs.  It is preinstalled on systems that are used in enterprise and education markets where system management and security are paramount.
  • Windows 10 Home is made for PCs, tablets, and 2-in-1 (tablet/laptop) PCs.
  • Windows 10 Pro has all Windows 10 Home features and adds additional features such as domain networking and BitLocker full-disk encryption.
  • Windows 10 Pro for Workstations is designed to support up to four high-performance CPUs and up to 6TB of RAM, along with a new file system (ReFS) and persistent memory.
  • Windows 10 Enterprise adds application threat protection, device health, application and user environment virtualization, and other features to Windows 10 Pro.  Enterprise is designed for large corporations.

macOS

macOS runs only on laptops and desktops sold by Apple.  macOS is a 64-bit operating system. The current version, macOS 10.15, Catalina, is GUI based.  Like its predecessors, Catalina also has a command-line mode (Terminal), which uses many commands similar to Linux and is used primarily for system management and diagnostics.

Linux

Linux is available for a wide variety of computers and can be run on 32-bit or 64-bit processors.  Unlike Windows and macOS, Linux is open source. Linux is based on Unix, and there are many distributions (distros) available from many different vendors.  The most common Linux distributions are those based on Debian (including Mint & Ubuntu) and Red Hat (including Fedora, RHEL, and CentOS). Linux is natively run from the command line, but most distributions contain some type of GUI desktop. Linux can run on less powerful processors with lower RAM requirements than Windows, making it a useful choice for extending the life of older, slower systems.

Server OS

A server operating system, also called a server OS, is an operating system specifically designed to run on servers, which are specialized computers that operate within a client/server architecture to serve the requests of client computers on the network.

Windows Server

Windows Server 2019 is the latest version.  Windows Server 2019 supports physical and virtual servers with more RAM and processors than its predecessor and supports more types of networks and server loads than its predecessor. Windows Server supports domain networking, which enables workstation users to log in to any workstation on the domain with the same credentials.  A domain can contain multiple physical networks and is easier to scale to accommodate larger networks than a workgroup.

macOS Server

At one time, Apple offered a separate version of its OS for servers.  Currently, macOS Server is available for Apple at a low-cost add-on for standard macOS.  macOS Server includes support for network and user management, connections to high-speed storage networks, and macOS and iOS clients.

Linux Server

Linux server distributions are usually based on the same code as Linux desktop distributions.  The difference include the following:

  • Server versions don’t include a GUI.
  • Server versions don’t include desktop productivity apps.
  • Server versions include email server, file server, web server, clustering, container support, and other server-specific features.

Clustering is a technology that enables multiple physical servers to work together for better reliability or better performance. Clustering support is available in Windows Server 2008 and later versions by installing the Failover Cluster feature.  macOS Server does not support clustering.

Containers are collections of apps that can be easily moved from one server to another as long as the servers use the same operating system.  Containers are faster and easier to set up than virtual machines. Containers are supported by Windows Server 2016 and most Linux Server distributions.

Common Linux server distributions include:

  • Ubuntu server
  • Red Hat Enterprise Linux Server
  • SUSE Linux Enterprise Server

Embedded Operating System

An embedded operating system is a type of operating system that is embedded and specifically configured for a certain hardware configuration.  Hardware that uses embedded operating systems are designed to be lightweight and compact, forsaking many other functions found in non-embedded computer systems in exchange for efficiency at resource usage.  This means that they are made to do specific tasks and do them efficiently. Some examples of embedded OS and computer combinations include ATM machines, CNC (computer numeric control) machines for machining precision tooling, network routers, etc.  Microsoft Windows IoT (Internet of Things) is the new name for its Embedded Windows operating systems. Embedded versions of Linux are widely used in small, single-board computers such as the Raspberry Pi, internet routers, set-top boxes for streaming TV, network attached storage, mobile media players, etc.

Firmware

Firmware is a software program or set of instructions programmed on a hardware device.  It provides the necessary instructions for how the device communicates with the other computer hardware.  Firmware is typically stored in the flash ROM (read-only memory) chip of a hardware device. On desktop, laptop, workstation, and server computers, a firmware chip called a UEFI chip is used to store essential low-level startup and configuration options.  However, on many embedded devices, the firmware chip on the circuit board is used to store the operating system. Because firmware is often stored on a flashable (reprogrammable) chip, it is possible to upgrade the embedded operating system on many devices.

Hypervisor

A hypervisor (or virtual machine monitor, VMM) is a computer software, firmware or hardware that creates and runs virtual machines.  A computer on which a hypervisor runs one or more virtual machines is called a host machine, and each virtual machine is called a guest machine.  A virtual machine is a software emulation of the hardware in a working computer. The VMM sets up emulated motherboard chipsets, USB controllers, hard disk host adapters, video cards, and other components of an actual computer as part of the virtual machine (VM), along with setting aside either an expandable or fixed amount of hard disk space. After a hypervisor creates and configures a VM, you install the operating system and apps desired into the VM to have a working emulated computer or virtual machine.  The hypervisor is used to start the virtual machine and, depending on the RAM, processor speed, and features, and available hard disk space in the physical computer, the hypervisor can run several virtual machines at the same time.

There are two types of hypervisors:

  • Type 1 Hypervisor:  a VMM that works directly with the host computer hardware, rather being installed inside an existing operating system.  Type 1 hypervisors are often referred to as “bare-metal” hypervisors.
  • Type 2 Hypervisor:  is a VMM that runs inside an operating system and carves out RAM and disk space from an already-running system.
Type 1 & Type 2 Hypervisor Conceptual Diagrams