Topic 3a – Operating System Fundamentals

The software that makes all other software possible — and has been reinventing itself for seventy years.

Learning Objectives

By the end of this topic, you should be able to:

Learning Activities

To help you meet the learning objectives, we have prepared a combination of readings, activities, and videos.

Course Readings

These reading were designed to introduce the course topics to an audience of educators. They should be considered "required" and read in order.

Supplemental Readings

Some participants find it helpful to read about a topic from a source written for a slightly more technical audience. These supplemental readings cover similar material as the course readings but may not fully align with the course learning objectives. Use them as an optional complement to your study, not a substitute for the course readings.

Lesson Videos

These videos support the readings above and may present the material with some deeper connections and worked examples.

Checking for Understanding, Questions

History and Processing Models

  1. Describe how a batch processing system works. What problem did it solve, and what problem did it create?
  2. What is the difference between time-sharing and multitasking? What do they have in common?
  3. A student asks: "My computer says it is running 80 processes at once. Does it have 80 CPUs?" How would you answer, and which vocabulary terms from this topic are at the heart of your explanation?
  4. In what ways does modern cloud computing resemble the time-sharing model of the 1960s? What is genuinely different?

OS Components

  1. What is the difference between the kernel and the user interface? Why does this separation matter?
  2. What is the difference between a shell and a GUI? Could the same kernel support both? How do you know?
  3. For each of the following scenarios, identify which OS component would be primarily responsible:
    • You save a document and the OS writes it to the hard drive.
    • You plug in a new wireless keyboard and the computer recognizes it.
    • You open six applications at once and the computer slows down.
    • You click on a folder icon and its contents appear in a window.
    • You open a large video file and the OS needs more memory than is physically available.

Booting

  1. Why can't the operating system simply be loaded into RAM when the computer is manufactured and left there permanently?
  2. In your own words, trace the sequence of events from pressing the power button to the moment the OS is running. What role does each of the following play: ROM, the boot loader, mass storage, RAM?
  3. What is firmware, and how does it differ from both the OS and the hardware itself?

Checking for Understanding, Answers

You can compare your answers to the following answer key.

Show Answer Key

History and Processing Models

  1. A batch processing system collected jobs from multiple users, organized them into a queue, and ran them one after another without human interaction. It solved the problem of idle CPU time caused by slow human operators manually loading each job. The problem it created was that jobs still had to wait for every other job ahead of them in the queue — if your job was last, you might wait hours to find out it had a small error.
  2. Time-sharing is the technique of rapidly switching a single CPU among many users or processes, giving each a small time slice, so that each user perceives the system as dedicated to them. Multitasking is the same basic mechanism applied to processes on a personal computer — the OS switches the CPU among multiple programs so they all appear to run simultaneously. Both rely on the same underlying idea: switching fast enough that the pauses are imperceptible.
  3. No — it almost certainly does not have 80 CPUs (though modern machines may have multiple cores). The OS uses multiprogramming and multitasking: the scheduler and dispatcher rapidly switch the CPU among many processes using short time slices, creating the illusion of simultaneous execution. At any given moment only one (or a few, on multi-core machines) processes are actually running.
  4. Both models involve many users sharing a central resource over a network — in the 1960s, a mainframe; today, a data center. Users do not own the hardware; they rent access to it. What is genuinely different: modern cloud computing is globally distributed, virtualized (running many virtual machines on shared physical hardware), and operates at vastly larger scale. The billing model (pay per use) and the programming interfaces are also fundamentally different.

OS Components

  1. The kernel is the core of the OS: it manages hardware, runs in privileged mode, and handles memory, processes, devices, and the file system. The user interface (shell or GUI) is the layer users interact with directly; it runs in nonprivileged mode and translates user actions into kernel requests. The separation matters because it isolates the most security-critical code (the kernel) from potentially buggy or malicious application-level code.
  2. A shell is a text-based user interface that accepts commands typed by the user and passes them to the kernel. A GUI presents windows, icons, and menus and accepts input through a mouse or touchscreen. Yes, the same kernel can support both — and does. Linux, for example, can run with a command-line shell only (common on servers) or with any of several GUI environments (GNOME, KDE, etc.) sitting on top of the same kernel. The user interface and the kernel are separate layers by design.
    • Saving a document: file manager (organizes file storage) and device driver (communicates with the storage device)
    • Recognizing a new keyboard: device driver (handles communication with the new peripheral)
    • Computer slows with six open apps: scheduler/dispatcher (more processes competing for CPU time) and memory manager (more programs competing for RAM)
    • Clicking a folder icon: window manager (displays the window) and file manager (reads the directory contents)
    • Large video needing more memory than available: memory manager (handles virtual memory, swapping to disk if needed)

Booting

  1. RAM is volatile — it loses all its contents when power is off. There is no way to pre-load the OS into RAM at the factory and have it survive unplugging. Secondary storage (SSD/HDD) is persistent, so the OS lives there permanently; the booting process copies it into RAM each time the machine is powered on.
  2. When the power button is pressed, the CPU begins executing instructions from ROM . ROM contains the boot loader , which performs basic hardware checks and locates the OS on mass storage. The boot loader then copies the OS kernel into RAM and transfers control to it. The OS initializes its components, loads drivers, and presents the login screen.
  3. Firmware is software that is stored in ROM and is tightly coupled to specific hardware — it exists to initialize and test the hardware before the OS takes over. It is not the OS (it does not manage processes or files) and it is not the hardware itself (it is a program, not a circuit). It occupies a layer between the two: it is software that the hardware always has available, regardless of what OS (or no OS) is installed.

Extend Your Learning

The following resources go a little deeper on topics we touched on but did not fully explore in the readings. These are entirely optional — none of this material appears on the Competency Demo — but each one is a natural "next question" from something covered this week.

  • BIOS vs. UEFI: what changed and why
    Most modern computers use UEFI rather than the older BIOS firmware. UEFI supports larger drives, faster boot times, a graphical setup interface, and Secure Boot (which verifies the boot loader hasn't been tampered with). This article from HowToGeek covers the practical differences and why the industry moved on.
    UEFI vs. BIOS — HowToGeek
  • Linux and open-source operating systems
    Linux is a freely available OS whose source code anyone can examine, modify, and redistribute. It powers most of the world's servers, Android phones, and many Chromebooks. This brief history from the Linux Foundation explains how a hobbyist project started in 1991 became the dominant platform for internet infrastructure.
    The Linux Kernel: A Brief History — Wikipedia
  • Embedded operating systems
    Your microwave, your car's navigation system, and the Mars rovers all run operating systems — just not ones designed for general-purpose use. This overview from Embedded.com explains what makes an embedded OS different from Windows or macOS and what constraints shape its design.
    Introduction to Real-Time Operating Systems — Embedded.com
  • Virtual machines and how they connect to multiprogramming
    It is possible to run one operating system inside another using a virtual machine. This technology is foundational to cloud computing (AWS runs millions of virtual machines). This IBM article covers how virtualization works and why it is essentially the time-sharing idea applied at the OS level.
    What is a Virtual Machine? — IBM