Operating Systems
An operating system (OS) is the first program that begins running when the computer first “boots up”. Among other things, it will launch a “file explorer” program which displays available programs and menus etc. that show the user what is available. Although a computer can technically run without an operating system, most modern systems, like laptops and smartphones, use an OS. Behind the scenes, the OS manages hardware like the CPU, memory and storage. When you open a program, the OS loads it into memory and tells the CPU to start running it.
Sections
Common OSes:
There are many different operating systems. Some of the more popular are:
- Mac OS X (renamed to macOS)
- Windows
- Ubuntu
- Android (Linux-based mobile OS)
- Red Hat Enterprise Linux (used at NC State)
- Linux (technically a kernel used by other OS)
Learning Outcomes
Identify general features in networking, hardware and operating systems
Chapter Learning Outcomes
- List and describe major operating systems, including Windows, macOS, and Linux.
- Differentiate between graphical, text, command-line user interfaces.
- Explain key components of an operating system, such as the kernel, user interface, and device drivers.
- Describe the importance of regular operating system and software updates for maintaining device security.
- Describe how users interact with operating systems via shells (e.g., PowerShell, Bash).
User Interface
The OS gives the user a way to navigate and run programs. The user interface is itself a program (it is software running on a computer, after all) we interact with to execute other programs.
Computer users are used to interacting with a Graphical User Interface (GUI). This interface displays elements like the desktop, taskbar, icons, and file previews, taking input via mouse movements, keystrokes, and sometimes voice commands. Touch screens on a tablet or phone are also examples of GUI interface.
Since the early days of computing, users have been able to interact via a Command Line Interface (CLI). You’ll encounter CLIs when connecting to remote machines via SSH or using Terminal applications on Linux and macOS. A command prompt appears, signaling the system is ready for your input. After you type commands and hit Enter, the shell executes them and presents text-based results1. The CLI generally does not display graphics or use the mouse.
While GUIs and CLIs are the primary focus for this class, we also acknowledge Text-based User Interfaces (TUIs). TUI/TLI displays using text only (usually with different colors). Unlike CLIs, TUIs allow for mouse input and add visual structure through elements like menus. They were common in the 1980s and are still found in environments like “safe mode” or embedded systems.
Historically, the evolution of user interfaces progressed from CLIs, to TUIs, and finally to GUIs.
Command Line Interface (CLI)

MS-DOS (a classic example of a CLI)
Text-based User Interface (TUI)

MS-DOS running Norton Commander (a classic example of a TUI/TLI)
Graphical User Interface (GUI)


Minesweeper and Solitaire were added to Windows 3.1 to train mouse usage via games. Solitaire was added to teach users how to Drag and Drop, Minesweeper taught using the right/left mouse buttons. You had to use the right click to put flags on the board!

Hybrid
Systems can allow for use of both GUI and CLI, which many modern systems do nowadays. For example:
- Windows: GUI with access to CLI via PowerShell or Command Prompt
- macOS: GUI with built-in Terminal (bash/zsh)
- Linux: GUI environments (GNOME, KDE) plus terminal shells
There are some systems that have use of only one of GUI or CLI.
- GUI-only (e.g. iPadOS)
- CLI-only (e.g. embedded systems, headless servers)
- GUI + CLI-enabled systems (Windows/macOS/Linux)
Kernel
In a nut or seed, the kernel is the innermost part, surrounded by a shell. In an operating system, the kernel is the core, surrounded by an interface called a “shell.”2 The kernel sits between the user interface and the hardware and manages many tasks that happen within the computer.
You use the terminal to wake up the shell, which then allows you to communicate with the kernel. On Windows, you might use PowerShell; on Mac/Linux, you’ll commonly use bash or zsh (where “sh” stands for shell).

Image reference:
6.033 Computer System Engineering, MIT OCW, Spring 2018
Kernel Panic and BSOD
When the kernel hits a low-level error it can’t recover from, your system crashes. This is called:
- BSOD on Windows (Blue Screen of Death)
- Kernel panic on macOS or Linux
These crashes often point to a hardware problem, buggy driver, or corrupted system file. If a system is slow, crashes, or won’t boot, sometimes the issue is kernel-related (e.g. a bad update, incompatible driver, etc.). Updates to your computer often include kernel patches. The kernel controls things like memory and hardware access, which is critical for security. If something compromises the kernel, it can potentially control the whole system.
Kernel Services
Your OS (Windows, macOS, Linux, etc.) uses the kernel to provide essential services that allow your computer to function:
- File System Management: The kernel handles how your computer stores and retrieves files on drives. The kernel provides a set of system calls for opening, closing, reading, writing, and deleting files.
- Process Management: When you run a program, the kernel manages that “process”: loading it into memory, making sure it has the resources it needs, and allowing it to start, run, or quit.
- Resource Scheduling: Since your computer has many programs competing for limited resources (like CPU time), the kernel acts as a scheduler. It quickly switches between tasks, giving the illusion of multitasking and ensuring all your open applications get a share of the processor’s attention.
- Memory Management: The kernel assigns and protects specific regions of memory for each running program. This prevents programs from interfering with each other’s data, enhancing system security and stability. It also manages virtual memory, using hard drive space as temporary extra RAM when needed.
Device Drivers
A device driver is software that tells the kernel how to make the pieces of hardware (known as devices) perform their functions. Printers, keyboards, mice, microphones, headphones, speakers, sound cards, graphics cards, network adapters, cameras, etc., are examples of devices.
Application developers use an API (Application Programming Interface) to interact with the kernel. The API provides the lowest-level way for programs to explicitly request services from the OS, such as accessing hardware or managing files, without needing to handle the hardware directly. Because each operating system’s kernel has its own unique API, software built for one OS (like macOS) typically won’t run directly on another (like Windows).
To ensure a device works correctly and optimally, users should get the most up-to-date device drivers. The most reliable place to find these is usually on the device manufacturer’s official website. See how to Update Device Drivers through Device Manager in Windows.

Example: You want to play sound. You need a sound card to do so (a device!). There is a sound card device driver that interfaces between the card and the OS Kernel to let you play the sound from your computer.

Swift, Michael M., et al. “Recovering device drivers.” ACM Transactions on Computer Systems (TOCS) 24.4 (2006): 333-360.
Exercises
- What are the primary functions of an operating system?
- We mentioned OSes for general purpose computers. What are the mobile OSes (for your smartphone)?
- Which of the following are operating systems and which are applications: Microsoft Excel, Google Chrome, iTunes, Windows, Android, Angry Birds.
- What is your favorite software application? What tasks does it help you accomplish?
- Does League of Legends need to access the kernel? Why? (Read this article).
- Users should check for driver support when purchasing hardware. If you buy a USB Wi-Fi card, are you sure there’s a driver for your particular computer? How do you check?
References
- A Primer for Computational Biology Copyright © 2019 by Shawn T. O’Neil is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License, except where otherwise noted.
- Allen Downey, Think OS