Operating System Basics

Learning outcomes:

  • Explain what an operating system is, and how system software differs from application software
  • Describe the goals of an operating system from the user and system points of view
  • Compare the main families of operating systems, including Windows, Linux, and other Unix-like systems
  • Summarize how operating systems have changed from the 1940s to today, including mobile, embedded, and cloud systems

Would you like to download my PowerPoint to follow along?

  • What is an Operating System?
    • A huge resource manager (IBM: What is an operating system?)
    • It sits between the hardware (processor, memory, storage, network) and the programs you run, and decides who gets what and when
    • Without one, every app would have to know how to talk to every piece of hardware on its own
  • The Early Years (1940s to 1960s)
    • 1940s
      • Early computers did not include operating systems
      • People set up each job by hand, using switches and plugboards
    • 1950s
      • Executed one job at a time
        • Included technologies to smooth job-to-job transitions
        • Single-stream batch-processing systems
        • Programs and data submitted one after another on punched cards or tape
    • 1960s
      • Still batch-processing systems
      • Process multiple jobs at once
        • Multiprogramming (covered in Week 4)
      • One job could use the processor while other jobs used peripheral devices, such as printers or tape drives
      • Advanced operating systems developed to serve multiple interactive users at the same time (timesharing)
      • 1969: Ken Thompson and Dennis Ritchie start Unix at Bell Labs. Linux, macOS, Android, and iOS all trace ideas back to it (Dennis Ritchie: The Evolution of the Unix Time-sharing System, the history written by one of its creators)
  • Personal Computers and Networks (1970s to 1990s)
    • 1970s
      • Supported batch processing, timesharing, and real-time applications
      • 1973: Unix is rewritten in the C language, which makes it much easier to move to new hardware
      • DARPA, part of the US Department of Defense, funds the development of TCP/IP, which became the base of the Internet
    • 1980s
      • Decade of personal computers and workstations
      • Computing moved out of the computer room to the places it was needed, such as offices and homes
      • Graphical user interfaces (GUIs) go mainstream with the Apple Macintosh (1984) and Microsoft Windows (1985)
      • 1983: Richard Stallman starts the GNU Project to build a free Unix-like system
    • 1990s
      • Operating system support for networking and the Internet became standard
      • Microsoft became dominant on desktop computers, especially after Windows 95
      • 1991: Linus Torvalds releases the Linux kernel. Combined with GNU tools, it becomes a complete free operating system (GNU Project: Linux and GNU, why some people call it GNU/Linux)
      • Building software out of reusable pieces (object-oriented design) became popular
      • Most commercial software was sold as ready-to-run programs without the source code (closed source)
      • Free and open-source software, where anyone can read and change the code, became increasingly common
  • Mobile, Cloud, and Everywhere Computing (2000s to Today)
    • 2000s
      • Apple's Mac OS X (2001) moves the Mac onto a Unix-based system
      • Linux becomes the most common operating system for web servers
      • Virtualization lets one physical server run many virtual machines (covered in Week 14)
      • Smartphones arrive: iPhone (2007) and Android (2008). Android is built on the Linux kernel
    • 2010s
      • Cloud computing: companies rent servers by the hour instead of buying them
      • Containers (such as Docker) package an app with everything it needs to run
      • Since 2017, every one of the world's 500 fastest supercomputers runs Linux (TOP500 List Statistics, choose "Operating System Family")
    • 2020s
      • ARM processors, long used in phones, move into laptops and servers, such as Apple Silicon Macs and Windows on ARM
      • Security moves into the hardware: Windows 11 requires TPM 2.0 and Secure Boot (covered in Week 12)
      • Parts of the Linux kernel can now be written in Rust, a language designed to prevent many common security bugs
      • AI assistants are being built into operating systems, such as Copilot in Windows and Apple Intelligence on Apple devices
  • Software
    • Low-level language
      • Close to what the hardware understands, such as machine code (1s and 0s) and assembly language
      • Fast, but hard for people to read and write
    • High-level language
      • Reads more like English, such as Python, C, or Rust
      • A program called a compiler or interpreter translates it into something the hardware understands
    • Application software vs System software
    • These programs perform computations, control, manage, and carry out other important tasks.
  • System Software
    • The system software is the set of programs that control the activities and functions of the various hardware components, programming tools and abstractions, and other utilities to monitor the state of the computer system.
    • In short: the software that keeps the computer running, so that your apps can run
    • Three types of users can be identified: system programmers, application programmers, and end-users.
    • Examples:
      • The operating system itself
      • Device Drivers, the translators that let the OS talk to a specific printer, graphics card, or Wi-Fi chip
      • Firmware, the software built into hardware, such as UEFI, which starts the computer before the OS loads
      • Historical note: BIOS was the startup firmware on PCs for about 40 years. UEFI has replaced it on new computers (UEFI Forum: UEFI FAQs). Still worth knowing because many people (and settings menus) still call UEFI "the BIOS", and older machines you support on the job may still use it
      • Utilities, such as backup tools, disk checkers, and package managers like apt and dnf on Linux
  • Application Software
    • Application software is the programs people use to get things done
    • Application programs are developed by individuals and organizations for solving specific problems
    • Installed apps, which run directly on your operating system:
      • Web browsers, such as Chrome, Firefox, Safari, or Edge
      • Games, such as those installed through Steam or a console store
      • Media and creative apps, such as VLC, GIMP, or a video editor
      • Phone apps, such as Spotify, Discord, or your bank's app
    • Web apps, which run inside the browser instead of being installed (MDN: How the web works)
      • Email, such as Gmail or Outlook on the web
      • Office tools, such as Google Docs or Microsoft 365 online
      • Your school's learning system, such as Brightspace
      • The browser is the installed app. The operating system manages the browser, and the browser runs the web app
  • Kernel
    • Software that contains the core components of the operating system (Red Hat: What is the Linux kernel?)
    • It's the first part of the OS to load, and it stays in memory the whole time the computer is on
    • Main parts:
      • Processor scheduler, which decides which program runs next
      • Memory manager, which hands out memory and keeps programs out of each other's space
      • I/O manager, which handles input and output devices
      • Interprocess communication (IPC) manager, which lets programs send messages to each other
      • File system manager, which keeps track of files and folders
    • Kernel designs
      • Monolithic kernel: everything runs together in one big program. Linux is monolithic, but it can load extra pieces (modules), such as a new driver, while it's running
      • Microkernel: only the bare minimum runs in the kernel, and everything else runs as separate programs. More reliable if one piece crashes, but often slower
      • Hybrid kernel: a mix of both. Windows and macOS use hybrid designs
  • Operating System Goals in General
    • Efficiency, getting the most work out of the hardware
    • Robustness, not crashing when something goes wrong
    • Scalability, still working well when you add more processors, memory, or users
    • Extensibility, being able to add new features later
    • Portability, being able to run on different kinds of hardware
    • Security, keeping attackers out
    • Protection, keeping users and programs from damaging each other
    • Interactivity, responding quickly to the user
    • Usability, being easy for people to use
  • User Goals
    • Convenient to use
    • Easy to learn
    • Reliable
    • Safe
    • Fast
  • System Goals
    • Easy to design
    • Easy to implement and maintain
    • Flexible
    • Reliable
    • Error-free
    • Efficient
  • User Interfaces
    • Three levels of interface:
      • Graphical user interface (GUI)
        • Windows, icons, menus, and a pointer
        • Today this also includes touch screens and voice assistants
        • On Linux, the GUI is a separate program you can swap out, such as GNOME or KDE Plasma
      • Command level (also known as the shell)
        • Shell
          • Command-line interpreter: you type a command, and it runs it
          • Common Linux shells are bash and zsh. Windows has PowerShell
          • Most servers have no GUI at all, so IT jobs still use the shell every day
      • System calls invoked from user programs
        • This is how a program asks the kernel to do something for it, such as open a file or send data over the network
        • Think of a restaurant: you (the program) can't walk into the kitchen (the hardware), so you give your order to the server (a system call)
        • System calls are part of the Application Programming Interface (API)
  • Structure of an OS
    • Basic Structure of an OS
    • Abstract View of an OS
      • Layers from the bottom up: hardware, kernel, system software, applications, and you
  • Services Provided by the OS
    • Process Control, execution, scheduling, etc.
    • Communication between processes
    • File Manipulation
    • Device Manipulation
    • Information Maintenance, such as keeping the time, date, and system logs
    • Memory Management
    • Security and protection, such as user accounts and permissions
  • Categories of Operating Systems
    • Batch systems, in which a set of jobs are submitted in sequence for processing.
      • Still used today for big jobs with no one waiting on them, such as running payroll overnight or scheduled tasks (cron jobs) on Linux
    • Interactive systems, which support computing for online users. The most common type of operating systems that support interactive computing is time-sharing, which are multi-user systems.
      • Your laptop and phone are interactive systems
    • Real-time systems, which support application programs with very tight timing constraints (FreeRTOS: RTOS fundamentals)
      • Hard real-time: missing a deadline is a failure, such as a car's airbag or anti-lock brakes
      • Soft real-time: missing a deadline is annoying but not dangerous, such as a video call stuttering
    • Hybrid systems, which support batch and interactive computing.
  • Operating System Families
    • Windows
    • Unix and Unix-like
      • Linux, including Android and ChromeOS, which are built on the Linux kernel
      • BSD, such as FreeBSD, found in some network equipment and game consoles
      • macOS and iOS, built on Apple's Darwin, which has BSD roots. macOS is officially certified as Unix
    • Mainframe systems, such as IBM z/OS, still run many banks, airlines, and government systems
  • Windows
  • Unix and Unix-Like
  • An example of a sub-tree: Linux distributions
    • A distribution (distro) is the Linux kernel bundled with tools, a GUI, and apps
    • Many distros are built on other distros. For example, Linux Mint is built on Ubuntu, which is built on Debian
    • Linux Distributions Timeline
  • Operating Systems Today
    • Desktop and laptop
      • Windows 11 (Microsoft)
      • macOS (Apple)
      • Linux distributions, such as Ubuntu, Fedora, and Linux Mint
      • ChromeOS (Google), common on school laptops
    • Servers and cloud
      • Linux distributions, such as Red Hat Enterprise Linux (RHEL), Ubuntu Server, and Debian
      • Windows Server
      • FreeBSD
      • IBM z/OS on mainframes (this is the modern version of OS/390)
    • Mobile
    • TVs, cars, and smart devices
      • Full operating systems: Google TV and Android TV, Samsung Tizen, LG webOS, Android Automotive, and Automotive Grade Linux
      • Small real-time operating systems: FreeRTOS and Zephyr, found in sensors, smart plugs, and fitness trackers
    • Every operating system version eventually stops getting security updates (end of life). For example, Microsoft ended support for Windows 10 in October 2025. You can look up any version on endoflife.date
  • Historical and Legacy Operating Systems
    • Historical note: These were major operating systems, but few or no new systems use them today:
      • Older Windows versions: 98, Me, CE, 2000, XP, Vista, 7, and 8
      • Solaris (Sun Microsystems, now Oracle)
      • OSF/1 (OSF, DEC)
      • IRIX (Silicon Graphics)
      • OS/2 (IBM)
      • VMS (DEC/Compaq/HP), still sold today as OpenVMS by VMS Software
    • Still important because replacing old systems is expensive or risky, so companies often keep them running for years, such as a factory machine or medical device that only works with Windows XP. IT workers need to recognize these systems, and know why running an OS that no longer gets security updates is a risk
  • Current Trends
    • Middleware
      • Software that connects other programs, often over a network and between different kinds of machines
    • Web services and cloud services
      • Ready-to-use pieces of software on the Internet, such as maps, payments, or logins, that other apps can use
    • Cloud computing, where the OS runs on rented servers in someone else's data center
    • Virtual machines (VMs) and containers
      • A VM is a software version of a whole computer (covered in Week 14)
      • A container shares the host's kernel but keeps each app in its own box
    • Embedded operating systems and the Internet of Things (IoT)
    • Mobile
    • Distributed Systems (covered in Week 14)
    • Security built into hardware, and memory-safe languages such as Rust
    • AI features built into the operating system
  • Mobile Operating Systems
    • A mobile operating system controls a mobile device, such as a smartphone, tablet, or smartwatch (Android Open Source Project: AOSP overview)
    • Historical note: Early mobile operating systems were much smaller and simpler than desktop ones. Today Android and iOS are full operating systems, built on the same foundations as Linux and macOS. Still worth knowing because it explains why phones now need the same security updates as laptops
    • Mobile operating systems focus on:
      • Battery life
      • Wireless connections, such as cellular, Wi-Fi, and Bluetooth
      • Touch screens
      • Keeping apps separated from each other for security (sandboxing)
  • Embedded Operating Systems
    • An embedded system is a computer built inside another device to do a specific job (The Yocto Project, a Linux Foundation project for building Linux for embedded devices)
    • Embedded systems range from tiny to very powerful
      • Small controllers (microcontrollers): run no operating system, or a small real-time operating system such as FreeRTOS or Zephyr
        • Examples: a microwave, a car's airbag or anti-lock brake controller, a fitness tracker, a smart light bulb
        • Very compact, very efficient, and very specialized
        • Many have hard timing deadlines, so they use a real-time operating system
      • Powerful devices: run a full operating system, usually based on Linux
        • Smart TVs and streaming sticks run full operating systems such as Google TV, Tizen, or webOS, and install apps like a phone does (see the Android TV and LG webOS TV developer sites)
        • Car dashboards and infotainment screens run full operating systems such as Android Automotive, Automotive Grade Linux, or QNX
        • Routers, smart speakers, and game consoles
    • Connected cars can be hacked remotely: in 2015, researchers took control of a Jeep through its entertainment system over the internet (Week 13, Networking)
    • A modern car has both: a full operating system for the screen and maps, and dozens of small real-time controllers for things like brakes, airbags, and the engine
  • Internet of Things (IoT)
    • Everyday devices that connect to the Internet, such as smart doorbells, thermostats, speakers, plugs, cameras, and appliances (IBM: What is the Internet of Things?)
    • Most IoT devices are embedded systems, so they run anything from a tiny real-time operating system to full Linux
    • Challenges
      • Hacking: once a device is on the internet, it can be attacked from anywhere. In 2016, the Mirai malware took over home routers and cameras that still had their default passwords, more in Week 13, Networking
      • Security: many devices ship with weak default passwords, and some never get security updates (NIST Cybersecurity for IoT Program)
      • Short support life: a company can stop updating a device, or shut down the app it needs, while it still works
      • Brands that don't work together. Matter is a standard, released in 2022, so devices from different companies can work together
    • Want to see IoT in action? Check out my Smart Home Project
  • System Implementation
    • Traditionally written in assembly language, operating systems can now be written in higher-level languages.
    • Unix was one of the first, rewritten in C in 1973. Linux, Windows, and macOS are still mostly written in C and C++
    • Code written in a high-level language:
      • can be written faster.
      • is more compact.
      • is easier to understand and debug.
    • An operating system is far easier to port (move to some other hardware) if it is written in a high-level language. This is why Linux runs on everything from a Raspberry Pi to a supercomputer
    • New trend: memory-safe languages such as Rust, which stop many security bugs before they happen. Since 2022, parts of the Linux kernel can be written in Rust (Linux kernel documentation: Rust)

Suggested Activities and Discussion Topics:

  • Discussion: how many operating systems did you use today? Think about phones, cars, TVs, and appliances.
  • Activity: Find out which operating system and version your phone and your computer run. Look them up on endoflife.date. Are they still getting security updates? When will they stop?
  • Activity: Pick a Linux distribution you've heard of, such as Ubuntu, Linux Mint, or Fedora. Find it on the Linux Distributions Timeline. Which distro is it built on?
  • Discussion: Linux runs on every one of the 500 fastest supercomputers, most web servers, and most phones (through Android), but only a small share of desktop computers. Why do you think that is?
  • Discussion: A local business still uses a Windows 7 computer to run an expensive machine, and the machine's software won't run on anything newer. What are the risks, and what could they do about it?

Would you like to see some more classes? Click here