Operating System Varieties and Platforms
Understand the various operating system types and their purposes, the challenges and solutions for portability across platforms, and the core design and features of Linux and Windows.
Summary
Read Summary
Flashcards
Save Flashcards
Quiz
Take Quiz
Quick Practice
What are the primary components of a multicomputer system?
1 of 17
Summary
Understanding Operating Systems
Operating systems are fundamental software that manages computer hardware and enables applications to run. The landscape of operating systems is diverse, with different types designed for different purposes and environments. Let's explore the major categories and characteristics that distinguish them.
Types of Operating Systems
Multicomputer Operating Systems
A multicomputer system consists of multiple independent central processing units (CPUs), each with its own private memory, connected together through a network. This is distinct from a single computer with multiple cores—in a multicomputer, the memory is physically separate for each processor.
One key challenge in multicomputer systems is making it easy for one CPU to use code or data on another CPU. To address this, multicomputer operating systems often support remote procedure calls (RPCs). An RPC allows a CPU to invoke a function or procedure on another CPU across the network, almost as if that function were local. This makes programming on distributed systems more intuitive.
Another important abstraction is distributed shared memory, which creates the illusion of a single, unified memory space even though the memory is physically scattered across different machines. From a programmer's perspective, they can access memory as if it all belonged to one computer, though the operating system handles the complexity of coordinating access across the network behind the scenes.
Distributed Operating Systems
A distributed operating system manages a group of distinct, networked computers where each machine may be running its own independent operating system and file system. This is different from a multicomputer system in that there's no pretense of a unified hardware platform—these are genuinely separate computers that must coordinate.
To help applications work smoothly across these independent systems, distributed operating systems often use middleware. Middleware is an additional software layer positioned between the operating system and applications. It provides a common interface and helps maintain consistency and coordination across the diverse systems in the network. Think of it as a translator that helps different operating systems "speak the same language."
Embedded Operating Systems
Embedded operating systems are specialized systems designed to run on embedded computers—devices where the computer is built into the device itself rather than being a general-purpose machine. Examples include Internet of Things (IoT) devices, smart home devices, household appliances, and medical devices. These operating systems are typically optimized for small size, low power consumption, and reliability rather than flexibility or user interface features.
Real-Time Operating Systems
A real-time operating system guarantees that events or data are processed at a specific moment in time or within a specific time window. Unlike general-purpose operating systems that aim for overall efficiency, real-time systems prioritize predictability and timing guarantees.
There are two important categories:
Hard real-time systems require exact timing and cannot miss deadlines. These are used in applications where timing failures could be catastrophic, such as manufacturing control systems, aircraft flight control systems (avionics), military weapons systems, and automotive safety systems. If a hard real-time deadline is missed, the system is considered to have failed.
Soft real-time systems allow occasional missed deadlines and degrade gracefully when they occur. These are common in audio and multimedia applications, where missing a deadline occasionally might cause a skipped frame or audio glitch, but the system can recover. Many smartphone applications also use soft real-time systems.
Hypervisor Operating Systems
A hypervisor (sometimes called a virtual machine monitor) is an operating system that runs virtual machines, which are software emulations of computers. A hypervisor creates a virtual environment that looks like physical hardware to another operating system running inside it. The operating system running inside believes it has its own CPU, memory, and disk, but these are actually managed and emulated by the hypervisor.
Virtual machines have several advantages:
Pause and resume: You can freeze a virtual machine's entire state, save it to disk, and restore it later exactly as it was. This is invaluable for research and debugging.
Portability: An application that requires a specific operating system can run in a virtual machine on any computer, regardless of what operating system the physical hardware is actually running. This allows you to run incompatible software on modern computers.
Testing and isolation: Virtual machines allow you to test software in isolated environments without affecting the host system.
Portability and Standards
Since there are many different operating systems with different architectures and interfaces, writing applications that work across multiple systems is challenging.
The Porting Problem
When an application is written for one operating system and moved to another, several obstacles emerge. Function names may be different, the meanings or signatures of function arguments may vary, and the actual system calls needed to accomplish the same task may differ substantially. For example, the way you open a file, allocate memory, or create a process might be completely different between Windows and Linux. This requires significant modification or complete rewriting of the application.
Solutions: Abstractions and Standards
Platform abstractions reduce the porting problem by providing a layer between applications and the operating system. If you write an application for a software platform like Java or Qt, your application doesn't directly call operating system functions. Instead, it calls functions in the platform library, which the platform provides on each operating system. The platform handles the differences, so you only need to recompile for each operating system rather than rewrite code.
POSIX (Portable Operating System Interface) is an important standard that defines a set of common operating system interfaces. POSIX specifies standard function names, argument formats, and behavior for common operations like file I/O, process management, and signal handling. Operating systems that comply with POSIX make it much easier to port applications between them, since the application can rely on these standardized interfaces.
Similarly, operating system abstraction layers provide common interfaces and abstractions across different systems, reducing the porting effort needed.
Overview of Major Operating Systems
Different operating systems dominate different device categories. Android, iOS, and iPadOS are the primary mobile operating systems, collectively running on the vast majority of smartphones and tablets. Microsoft Windows, macOS, and Linux are the dominant desktop operating systems for personal computers. Each has distinct characteristics we'll explore next.
Linux Operating System
Linux is one of the most important and widely-used operating systems in modern computing, despite being less visible to casual users than Windows or macOS.
Philosophy and Design
Linux was created by programmers for use by programmers. Its design philosophy emphasizes simplicity, consistency, and composability. Rather than providing many specialized tools, Linux provides a small set of basic, powerful building blocks that can be combined in many different ways to accomplish complex tasks. This philosophy traces back to the original Unix philosophy and remains central to Linux's design.
Linux is free software distributed under the GNU General Public License (GPL). This means not only that Linux is free to use, but that anyone who modifies Linux and distributes their modified version must also release the source code. This open-source model has been crucial to Linux's development and adoption.
Technical Foundations
Linux is written in the C programming language, which makes it relatively portable across different CPU architectures. When using system calls and command syntax, Linux uses UNIX System V syntax while also supporting BSD syntax, providing compatibility with existing Unix applications and knowledge.
Core Features and Capabilities
Linux provides the standard networking capabilities you'd expect from a Unix system and includes a full suite of command-line tools inherited from Unix traditions. The key capabilities include:
Multi-user support: Multiple users can be logged in simultaneously without interfering with each other
Preemptive multitasking: The operating system can interrupt running processes to share CPU time fairly among many processes
Extreme scalability: Linux can run on embedded systems with as little as 16 MB of RAM, yet also scales to massive multiprocessor machines in data centers
Linux Distribution Components
A complete Linux distribution consists of three main components:
The kernel — the core of the operating system that manages hardware and processes
System libraries — libraries that provide standard functions applications depend on
System utilities — command-line tools and utilities for system administration and user tasks
This layered architecture shows how user applications sit above system utilities and libraries, which in turn interface with the Linux kernel, which manages the underlying hardware.
User Interface
While Linux has a strong command-line tradition, modern Linux distributions include a graphical user interface with a desktop environment featuring windows, folder icons, file icons, and a visual file manager, making Linux accessible to non-technical users.
Android: Linux-Based Mobile Operating System
Android is a partially open-source operating system that is closely based on Linux. While Android uses the Linux kernel, most of Android itself is written in Java and follows an object-oriented design, quite different from Linux's C-based architecture.
Android has become extraordinarily widespread, running on far more devices than the Linux desktop. You'll find Android on:
Smartphones and tablets
Smart watches
Automotive dashboards and infotainment systems
Airplane seatback entertainment systems
Medical devices and hospital equipment
Smart home appliances and IoT devices
This ubiquity makes understanding Android's relationship to Linux important for understanding modern operating systems.
Microsoft Windows Operating System
Windows is proprietary software sold under commercial licenses by Microsoft. Unlike Linux, you cannot freely modify and redistribute Windows.
Design Goals and Scope
Microsoft designed Windows with seven main goals: security, reliability, compatibility, high performance, extensibility (ability to add features), portability (running on different hardware), and international support. Windows runs on an extremely diverse range of devices:
Desktop computers and laptops
Tablets and phones
High-performance workstations
Enterprise servers managing business networks
Xbox gaming consoles
This diversity of platforms is remarkable for a single operating system.
Kernel and Executive Architecture
The heart of Windows is the Windows Executive, which uses kernel-mode objects to manage essential data structures. These kernel objects represent important system resources like:
Processes (running programs)
Threads (individual execution contexts within a process)
Memory sections (including files stored on disk)
By representing these as kernel objects, Windows can apply consistent security policies and access controls to all resources.
Memory Management
Windows uses demand paging, a virtual memory technique where the operating system initially loads only the most immediately needed parts of a program into RAM. As the program runs and accesses different parts of its code or data that aren't currently in RAM, the operating system fetches those pages from disk. This approach improves input/output performance for many applications by reducing how much memory each application needs to occupy at any given time.
This diagram shows how a single process's virtual memory space (left) can be scattered across physical RAM and disk. The operating system maintains the mapping between virtual and physical addresses.
File System: NTFS
Windows uses the NTFS file system (New Technology File System). NTFS stores each file as a record in a master file table, with associated metadata. This structured approach provides several advantages over older file systems, including better reliability, support for large files, and richer metadata about files.
Scheduling and Multitasking
Windows employs preemptive multitasking, where the operating system can interrupt a running process and give CPU time to another process. This is different from cooperative multitasking, where a program must voluntarily yield control. Preemptive multitasking ensures that no single process can monopolize the CPU and prevents one misbehaving application from freezing the entire system.
Security Architecture
Security is deeply integrated into Windows at every level. Two core security mechanisms are:
Access-control lists (ACLs) specify which users or groups can perform which operations on which resources. Every file, directory, registry key, and other resource has an ACL that determines who can read it, modify it, or delete it.
Integrity levels are an additional security concept where different processes or users are assigned integrity levels, and the operating system prevents lower-integrity processes from modifying resources belonging to higher-integrity processes.
Authentication tokens are another key component: every process carries an authentication token that identifies the user who launched the process and specifies what permissions that user has. When a process tries to access a resource, Windows checks the process's token against the resource's security descriptor (which contains the ACL and other security information).
This diagram shows how security descriptors associated with files contain multiple ACEs (Access Control Entries) that specify which users are allowed which actions.
This multilayered security model—authentication tokens, security descriptors, ACLs, and integrity levels—makes Windows one of the more security-conscious mainstream operating systems.
The diversity of operating systems reflects the diversity of computing tasks. Each type of operating system—from real-time systems controlling manufacturing equipment to mobile operating systems running on billions of phones—represents different tradeoffs between performance, security, ease of use, and specialized requirements. Understanding these different systems and their design goals is essential for working with modern computing technology.
Flashcards
What are the primary components of a multicomputer system?
Multiple CPUs, each with its own memory, connected by a network.
What mechanism allows a CPU in a multicomputer system to invoke a procedure on a different CPU?
Remote procedure calls.
What is the purpose of distributed shared memory?
To create the illusion of a common memory space that does not physically exist.
What defines a distributed system?
A group of distinct, networked computers, each potentially running its own OS and file system.
What is the core guarantee provided by a real‑time operating system?
That events or data are processed at a specific moment in time.
In what fields are hard real‑time systems typically used?
Manufacturing, avionics, and military fields.
How do soft real‑time systems differ from hard real‑time systems regarding deadlines?
They allow for occasional missed deadlines.
What is the primary function of a hypervisor?
To run virtual machines that emulate hardware for other operating systems.
How do hypervisors contribute to software portability?
By allowing applications to run on computers with otherwise incompatible native operating systems.
What standard defines common operating‑system interfaces to assist in porting applications?
POSIX.
Under which license is Linux distributed, and what is its main requirement?
GNU General Public License; it requires derivative works to release their source code.
What multitasking model does Linux employ?
Preemptive multitasking.
What are the three main components of a Linux distribution?
Kernel
System libraries
System utilities
On which operating system is Android closely based?
Linux.
What does the Windows Executive use to manage data structures like processes and threads?
Kernel‑mode objects.
What memory management technique does Windows use to improve I/O performance?
Demand paging of virtual memory.
How does the NTFS file system organize file records and metadata?
In a master file table.
Quiz
Operating System Varieties and Platforms Quiz Question 1: Which of the following groups are classified as mobile operating systems?
- Android, iOS, and iPadOS (correct)
- Microsoft Windows, macOS, and Linux
- Android, Windows, and Linux
- iOS, macOS, and Windows
Operating System Varieties and Platforms Quiz Question 2: What licensing model does Microsoft Windows use?
- Proprietary, sold under commercial licenses (correct)
- Free and open‑source under the GPL
- Copyleft license that obliges source release
- Public domain with no usage restrictions
Operating System Varieties and Platforms Quiz Question 3: What are the three main components of a Linux distribution?
- Kernel, system libraries, and system utilities (correct)
- Kernel, user applications, and hardware drivers
- Kernel, graphical user interface, and network stack
- Kernel, file system, and firmware
Operating System Varieties and Platforms Quiz Question 4: What design philosophy characterizes Linux?
- Simplicity and modularity for programmers (correct)
- Heavy graphical interface focus
- Emphasis on proprietary extensions
- Strict adherence to object‑oriented design
Operating System Varieties and Platforms Quiz Question 5: In which programming language is the Linux kernel primarily written?
- C (correct)
- C++
- Java
- Python
Operating System Varieties and Platforms Quiz Question 6: Which mechanisms are central to Windows security for controlling access to resources?
- Access‑control lists and integrity levels (correct)
- User passwords and firewalls
- Encryption keys and digital signatures
- Antivirus scans and sandboxing
Operating System Varieties and Platforms Quiz Question 7: How does the Windows Executive manage essential data structures such as processes and memory sections?
- By using kernel‑mode objects (correct)
- Through user‑mode threads
- Via device drivers
- With system services
Operating System Varieties and Platforms Quiz Question 8: In a multicomputer system, each CPU has its own memory and communicates with other CPUs through what mechanism?
- A network connecting the CPUs (correct)
- A shared memory bus
- A single common memory module
- A direct cable link between two CPUs
Operating System Varieties and Platforms Quiz Question 9: What multitasking strategy does Windows use to allocate CPU time among processes?
- Preemptive multitasking (correct)
- Cooperative multitasking
- Round‑robin scheduling without preemption
- Single‑threaded execution
Operating System Varieties and Platforms Quiz Question 10: Which of the following is an example of a cross‑platform development framework used to avoid reliance on OS‑specific interfaces?
- Java (correct)
- Microsoft Visual Basic
- Windows Forms
- DirectX
Operating System Varieties and Platforms Quiz Question 11: What guarantee does a real‑time operating system provide?
- Events are processed at a specific moment in time (correct)
- Resources are allocated based on priority only
- Processes are scheduled using round‑robin
- The system runs any application without timing constraints
Operating System Varieties and Platforms Quiz Question 12: Linux supports multiple users and which multitasking method?
- Preemptive multitasking (correct)
- Cooperative multitasking
- Hybrid scheduling
- No multitasking
Operating System Varieties and Platforms Quiz Question 13: Which of the following is an example of a POSIX‑defined interface?
- The <code>open()</code> system call for file handling (correct)
- The DirectX graphics API
- Windows Registry editing functions
- The Java Virtual Machine bytecode interpreter
Operating System Varieties and Platforms Quiz Question 14: Android is closely based on which operating system?
- Linux (correct)
- Windows
- macOS
- FreeBSD
Operating System Varieties and Platforms Quiz Question 15: Which of the following is generally NOT a concern when porting an application from one operating system to another?
- Screen resolution settings (correct)
- Function name differences
- Argument meaning changes
- System call variations
Operating System Varieties and Platforms Quiz Question 16: Which of the following was listed as a design goal for Microsoft Windows?
- International support (correct)
- Real‑time deterministic timing
- Embedded device optimization
- Minimal power consumption
Which of the following groups are classified as mobile operating systems?
1 of 16
Key Concepts
Operating System Types
Multicomputer operating system
Distributed operating system
Embedded operating system
Real-time operating system
Operating System Software
Hypervisor
POSIX
Linux
Microsoft Windows
Android (operating system)
NTFS
Definitions
Multicomputer operating system
An OS that coordinates multiple CPUs, each with its own memory, connected via a network.
Distributed operating system
An OS that presents a unified system image across a group of networked computers.
Embedded operating system
An OS tailored for dedicated hardware such as IoT devices and household appliances.
Real-time operating system
An OS that guarantees that tasks are completed within strict timing deadlines.
Hypervisor
Software that creates and runs virtual machines by emulating underlying hardware.
POSIX
A set of standards defining a common API for Unix-like operating systems to improve portability.
Linux
A free, open‑source Unix‑like operating system kernel distributed under the GNU GPL.
Microsoft Windows
A proprietary family of operating systems developed by Microsoft for personal computers and servers.
Android (operating system)
A mobile OS built on the Linux kernel, primarily using Java for application development.
NTFS
The New Technology File System used by Windows to store files with rich metadata and security attributes.