Module 1 · Unit 1 of 2
Introduction to Operating Systems
What an operating system is, why it exists, how it evolved from batch monitors to distributed and cloud systems, what services it provides, and how its major architectural forms differ. The unit opens with a hands-on orientation lesson that sets up the Linux virtual machine used throughout the course.
Module 1 · Unit 1
Introduction to Operating Systems
A six-lesson unit: a practical orientation session that sets up the Linux virtual machine for the course, followed by five lessons establishing what an operating system is and does — the vocabulary of services, system calls, and architecture that the rest of the course depends on.
00 Before you begin
Start with Lesson 1.0
Every laboratory, programming assignment, and exercise in this course runs on a Linux virtual machine. Before you begin the conceptual material of Lesson 1.1, complete Lesson 1.0 — Setting Up Your Course VM. It walks you through installing Ubuntu in a virtual machine, configuring the development toolchain, verifying the setup, and taking a baseline snapshot. The rest of the course assumes you have completed it.
01 Unit learning outcomes
Upon completion of this unit you will be able to
- U1.1 — Explain the purpose and functions of operating systems.
- U1.2 — Describe the historical evolution of operating systems.
- U1.3 — Analyse operating-system services and system-call mechanisms.
- U1.4 — Compare major operating-system architectures.
- U1.5 — Evaluate architectural design trade-offs.
This unit addresses course learning outcome CLO1 — explain operating-system concepts, services, and architectures. The preliminary orientation lesson (1.0) prepares the ground for CLO6 — apply Linux systems-programming techniques and operating-system tools.
02 Lessons in this unit
Lesson 1.0 is a hands-on setup session that produces a working Linux virtual machine. Lessons 1.1 through 1.5 are the conceptual core of the unit and follow the standard eleven-part lesson structure — introduction, objectives, reading, content, worked examples, activity, knowledge check, discussion, practice, summary, and references.
Setting Up Your Course VM
Install and configure the Linux virtual machine, verify the toolchain, and take a baseline snapshot. Complete this before Lesson 1.1.
Lesson 1.1What Is an Operating System?
The OS as resource manager and as extended machine; key functions; why operating systems are essential.
Lesson 1.2Evolution of Operating Systems
Batch to time-sharing to distributed and cloud; technological drivers and future trends.
Lesson 1.3Operating-System Services
Program execution, I/O and file services, protection, security, and support for applications.
Lesson 1.4System Calls
APIs versus system calls, user mode versus kernel mode, traps and interrupts, and Linux tracing tools.
Lesson 1.5Operating-System Structures
Monolithic kernels, microkernels, hybrid kernels, and the trade-offs between them.
03 What you will learn, lesson by lesson
1.0 Setting Up Your Course VM
- Choose a virtualization platform.
- Download and verify a Linux image.
- Create and configure a VM.
- Install and verify the toolchain.
- Take a baseline snapshot.
1.1 What Is an Operating System?
- Define an operating system.
- Describe the OS as resource manager.
- Describe the OS as extended machine.
- Explain key OS functions.
- Explain why operating systems are essential.
1.2 Evolution of Operating Systems
- Describe major stages in OS evolution.
- Compare batch and time-sharing systems.
- Explain technological drivers.
- Analyse the move to distributed and cloud systems.
- Identify future trends.
1.3 Operating-System Services
- Identify major OS services.
- Explain program-execution services.
- Explain I/O and file services.
- Describe protection and security services.
- Analyse service support for applications.
1.4 System Calls
- Explain system calls.
- Distinguish APIs from system calls.
- Explain user mode and kernel mode.
- Explain traps and interrupts.
- Use Linux tools to observe system calls.
1.5 Operating-System Structures
- Compare monolithic kernels.
- Compare microkernels.
- Compare hybrid kernels.
- Analyse architectural trade-offs.
- Evaluate OS designs.
04 Worked example
A taste of what the lessons will ask you to do. This example combines the setup work of Lesson 1.0 with the concepts from Lesson 1.4 (system calls) — the compile workflow that every laboratory in the course will use.
Task · build and inspect a small program in your VM
-
Complete the VM setup. Work through
Lesson 1.0 if you have not
already. Your VM should be running Ubuntu with the
toolchain installed, and you should have a baseline
snapshot named
clean-install. -
Open a terminal and create a working directory.
mkdir -p ~/comp3150/exercises/unit1 cd ~/comp3150/exercises/unit1 -
Write a small C program.
Note thatcat > hello.c << 'EOF' #include <stdio.h> #include <unistd.h> int main(void) { printf("hello from pid %d\n", getpid()); return 0; } EOFgetpidis a system call — the program asks the kernel for its own process ID. -
Compile with the course-standard flags.
gcc -Wall -Wextra -g -o hello hello.c-Wallenables warnings,-Wextraenables more, and-gincludes debug symbols for GDB. -
Run the program.
It prints its PID. That number was obtained by asking the kernel through a system call../hello -
Observe the system calls.
The trace shows every system call the program makes — a direct view of the interface between user space and kernel space, which Lesson 1.4 examines in detail.strace -e trace=write,getpid,exit_group ./hello
What this example shows
The setup work of Lesson 1.0 and the conceptual material of the rest of the unit are not separate topics — they form a single workflow. Every laboratory in this course begins from exactly this pattern: a small program, compiled with standard flags, run under observation.
05 Required reading
Reading assignments are listed in each lesson. As a preview:
- Lesson 1.0 — no textbook reading; consult the documentation for your virtualization platform and the Ubuntu installation guide.
- OSTEP — Chapter 1, A Dialogue on the Book, and Chapter 2, Introduction to Operating Systems. Assigned in Lesson 1.1.
- Operating System Concepts — Chapter 1 (introduction, services, system calls, and structures). Assigned across Lessons 1.2–1.5.
Read the manual for your VM platform
Every virtualization platform has documentation for installing and configuring a virtual machine. Skim the "creating a VM" and "installing a guest OS" sections before you start Lesson 1.0 — the walkthrough in that lesson assumes a basic familiarity with the concepts.
06 Unit discussion
Discussion prompt
Modern operating systems are often described as both a resource manager and an extended machine. Choose a system you use daily — a laptop, a phone, a cloud instance, or the VM you just set up — and identify one concrete decision its operating system makes that clearly serves each of those two roles. In at least one case, explain a trade-off where serving one role makes the other harder.
Post your response to the Unit 1 discussion forum and reply to at least two classmates. This activity contributes to your participation grade and supports CLO1.
07 Laboratory connection
The setup performed in Lesson 1.0 is what makes Lab 1 — Linux Fundamentals possible. Lab 1 is completed at the end of Unit 2, and it assumes the VM, toolchain, and workspace are all in place.
| Setup step | Used in |
|---|---|
| Linux VM running | Every laboratory in the course |
| Toolchain installed | Every programming exercise, from Lab 2 onward |
| Baseline snapshot | Recovery point for any lab that goes wrong |
| Workspace repository | Version control for all labs and assignments |
Do not skip Lesson 1.0
Students sometimes try to proceed directly to Lesson 1.1 without setting up the VM, planning to do it later. The conceptual material of Lessons 1.1–1.5 uses commands that run inside the VM, and the interactive activities assume a working environment. Setting it up first is faster overall than trying to catch up later.
08 Knowledge check & quiz
Quick check before you begin
Question 1
In one sentence, distinguish the operating system's role as a resource manager from its role as an extended machine.
Show a model answer
Question 2
Why does the course use a virtual machine rather than installing Linux directly on your computer?
Show answer
After completing all six lessons, take the Unit 1 quiz in the LMS. It covers the purpose, evolution, services, system calls, and structures of operating systems.