RemNote Community
Community

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

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