Operating Systems 2
Operating Systems 2
OF INFORMATION TECHNOLOGY
3. OPERATING SYSTEMS
3.1 Introduction to OS
3.2 Functions of Operating Systems
3.3 Types of Operating Systems
3.4 Overview of Popular Operating Systems
3.5 User Interfaces
Introduction to Operating
Systems
An operating system (OS) is system software that
manages computer hardware, software resources,
and provides common services for computer
programs.
It acts as an intermediary between users and the
computer hardware, making it possible for users to
interact with the computer system in a convenient
and efficient manner.
Definition and Purpose
Definition: An operating system is a collection of
software that manages computer hardware resources
and provides common services for computer programs.
Primary Purpose: To provide an environment in which
a user can execute programs in a convenient and
efficient manner.
Historical Context: Early computers had no operating
systems; programmers interacted directly with the
hardware through machine language.
Functions of Operating Systems
Operating systems perform several crucial
functions to manage hardware resources effectively
and provide a user-friendly environment.
Process Management
Process Creation and Termination: Starting and ending
programs
Process Scheduling: Determining which processes run when
Process Synchronization: Coordinating processes that share
resources
Inter-Process Communication (IPC): Allowing processes
to exchange information
Deadlock Handling: Preventing or resolving situations
where processes are waiting indefinitely
Memory Management
Memory Allocation and Deallocation: Assigning memory to
processes when needed and reclaiming it when finished
Virtual Memory: Creating the illusion of more physical
memory using disk space
Address Translation: Converting virtual addresses to physical
addresses
Memory Protection: Ensuring processes only access their
allocated memory
Swapping: Moving processes between main memory and
secondary storage
File System Management
File Creation and Deletion: Managing file lifecycle
Directory Management: Organising files in a
hierarchical structure
File Access Control: Enforcing permissions and security
File Manipulation: Reading, writing, and modifying files
Backup and Recovery: Protecting against data loss
Device Management
Device Drivers: Software interfaces to hardware devices
Device Allocation: Managing which process can use a
device
Spooling: Buffering data for devices like printers
Device Communication: Transferring data between
devices and the system
Performance Optimisation: Efficient use of I/O devices
User Interface Provision
The operating system is responsible for providing a
platform of interaction between the user and the
computer system
Security and Protection
User Authentication: Verifying user identities
Authorisation: Determining what resources users
can access
Encryption: Protecting data confidentiality
Auditing: Tracking system activities
Malware Protection: Defending against viruses
and other threats
Types of Operating Systems
Operating systems can be categorised based on
various characteristics such as processing
capabilities, user interaction, and design
philosophy.
Based on Processing Capabilities
1. Single-User, Single-Tasking OS
Designed for one user running one program at a
time
Simple design and resource management
Example: Early MS-DOS
Single-User, Multi-Tasking OS
Allows one user to run multiple programs
simultaneously
Time-sharing between different applications
Examples: Windows, macOS
Multi-User OS
Supports multiple users accessing the system
simultaneously
Requires complex resource allocation and security
Examples: UNIX, Linux, mainframe OS
Distributed OS
Manages a group of distinct computers, making
them appear as a single computer
Shares computational power and resources across
multiple machines
Examples: Amoeba, Mach
Network OS
Specialised for managing network resources
Provides services across a computer network
Examples: Novell NetWare, Windows Server
Real-Time OS (RTOS)
Designed for time-critical applications
Guarantees response within specific time constraints
Types:
Hard Real-Time: Absolute deadlines that cannot be
missed
Soft Real-Time: Can tolerate some missed deadlines
Examples: VxWorks, QNX, RTLinux
Based on User Interface
Command Line Interface (CLI) OS
Text-based interface where users type commands
Efficient for experienced users and scripting
Examples: UNIX shell, MS-DOS
Graphical User Interface (GUI)
OS
Visual interface with windows, icons, menus, and
pointers
More intuitive for beginners
Examples: Windows, macOS, most modern Linux
distributions
Natural User Interface (NUI) OS
Based on human abilities like touch, speech,
gestures
Minimises the learning curve
Examples: iOS, Android, Windows with
touch/voice capabilities
Based on Architecture
Monolithic OS
All OS services operate in kernel space
Fast performance but less modular
Examples: Traditional UNIX, Linux kernel
Microkernel OS
Minimal kernel with basic functions
Most services run in user space
More stable but potentially slower
Examples: MINIX, QNX
Hybrid OS
Combines monolithic and microkernel approaches
Balances performance and modularity
Examples: Windows NT architecture,
macOS/Darwin
Exokernel OS
Provides minimal hardware protection
Allows applications direct control of resources
Research-oriented design
Virtual Machine OS
Creates multiple virtual machines on single
hardware
Each VM can run its own operating system
Examples: VMware ESXi, Microsoft Hyper-V
Overview of Popular Operating
Systems
A. Desktop/Laptop Operating Systems
Microsoft Windows
History: Evolved from MS-DOS to Windows 1.0 (1985) to
Windows 11 (2021)
Architecture: Hybrid kernel architecture
Market Position: Dominant desktop OS with ~75% market share
Strengths: Software compatibility, gaming support, corporate
adoption
Weaknesses: Security concerns, resource requirements
macOS
History: Based on Unix, released as Mac OS X in 2001,
rebranded as macOS in 2016
Architecture: Hybrid kernel (XNU) based on Mach and BSD
Market Position: ~15% desktop market share, exclusive to
Apple hardware
Strengths: User interface design, stability, security,
integration with Apple ecosystem
Weaknesses: Limited hardware compatibility, higher cost of
entry
Linux Distributions
History: Created by Linus Torvalds in 1991, developed by open-source
community
Architecture: Monolithic kernel
Market Position: ~2-3% desktop market share, dominant in servers
Common Distributions:
Ubuntu: User-friendly, general-purpose
Fedora: Cutting-edge features, sponsored by Red Hat
Debian: Stability and free software principles
Arch Linux: Minimalist, rolling release model
Strengths: Open source, customisability, security, performance
Weaknesses: Learning curve, software compatibility issues
B. Mobile Operating Systems
Android
Developer: Google (based on Linux kernel)
Market Position: ~70% global mobile OS market
share
Features: Open ecosystem, highly customisable,
wide hardware support
Architecture: Modified Linux kernel with Java-
based application framework
iOS
Developer: Apple
Market Position: ~25% global mobile OS market
share
Features: Closed ecosystem, emphasis on security
and user experience
Architecture: Darwin kernel (similar to macOS),
exclusive to Apple devices
Other Mobile OS
HarmonyOS: Developed by Huawei as an
alternative to Android
KaiOS: Focused on feature phones and emerging
markets
C. Server Operating Systems
1. Linux Server Distributions
Red Hat Enterprise Linux (RHEL): Commercial
support, enterprise features
Ubuntu Server: Easy deployment, regular updates
SUSE Linux Enterprise: European focus,
enterprise support
Market Position: Dominant in web servers, cloud
infrastructure
Windows Server
History: Evolved from Windows NT, latest version
Windows Server 2022
Features: Active Directory, .NET framework,
integration with Microsoft services
Market Position: Strong in corporate
environments, authentication servers
FreeBSD and Other UNIX-like
Systems
Features: Stability, security, performance
Use Cases: Web servers, firewalls, network
appliances
Embedded Operating Systems
1. Real-Time Operating Systems (RTOS)
FreeRTOS: Open-source RTOS for
microcontrollers and small processors
VxWorks: Commercial RTOS for embedded
systems
QNX: Microkernel RTOS used in automotive and
industrial systems
Embedded Linux
Yocto Project: Framework for creating custom
embedded Linux distributions
OpenWrt: Specialised for networking devices
Android (embedded variant): Used in smart TVs,
automotive systems
User Interfaces in Operating
Systems
User interfaces determine how users interact with
the operating system and applications.
A. Command Line Interface
(CLI)
Characteristics
Text-based input and output
Commands entered as text strings
Output displayed as text
Often keyboard-only interaction
Advantages
Precise control over system operations
Efficient for repetitive tasks through scripting
Requires fewer system resources
Remote access friendly
Automation capabilities
Disadvantages
Steeper learning curve
Requires memorisation of commands
Less intuitive for new users
Limited visual feedback
Examples
Windows Command Prompt and PowerShell
Unix/Linux Shells: Bash, Zsh, Fish
macOS Terminal
B. Graphical User Interface (GUI)
Characteristics
Visual representation of programs and files
Interaction through graphical elements
WIMP paradigm (Windows, Icons, Menus, Pointer)
Event-driven programming model
Advantages
Intuitive and easier to learn
Visual feedback for actions
Multitasking visualisation
Easier discovery of features
Disadvantages
Requires more system resources
Sometimes less efficient for power users
More difficult to automate
Can be slower for repetitive tasks
Examples
Windows: Windows Shell, Explorer
macOS: Aqua interface
Linux: Various desktop environments:
GNOME: Focus on simplicity and usability
KDE Plasma: Feature-rich and customizable
Xfce: Lightweight and efficient
MATE: Traditional desktop paradigm
Natural User Interface (NUI)
Characteristics
Based on natural human behaviours
Minimal learning curve
Often multimodal (combining methods)
Adaptive to user context
Types of NUI
Touch-based: Direct manipulation through touch
gestures
Voice-based: Speech recognition and voice
commands
Gesture-based: Body movements and hand gestures
Augmented Reality: Overlaying digital content on
the real world
Advantages
Intuitive interaction
Accessibility benefits
Can be more engaging
Hands-free operation (voice/gesture)
Disadvantages
Precision can be limited
Privacy concerns (voice/video capture)
Environmental constraints
Still evolving technology
Examples
Touch interfaces: iOS, Android
Voice assistants: Siri, Google Assistant, Cortana
Gesture systems: Microsoft Kinect, VR interfaces
Bibliography for Reference and
Further Study
Arpaci-Dusseau, R. H., & Arpaci-Dusseau, A. C. (2018). Operating Systems: Three Easy Pieces.
Arpaci-Dusseau Books.
Bach, M. J. (1986). The Design of the UNIX Operating System. Prentice Hall.
Bic, L. F., & Shaw, A. C. (2023). Operating Systems Principles. Prentice Hall.
Bovet, D. P., & Cesati, M. (2021). Understanding the Linux Kernel. O'Reilly Media.
Dhamdhere, D. M. (2012). Operating Systems: A Concept-Based Approach. McGraw-Hill Education.
Deitel, H. M., Deitel, P. J., & Choffnes, D. R. (2018). Operating Systems. Pearson.
Love, R. (2013). Linux Kernel Development. Addison-Wesley Professional.
Russinovich, M. E., Solomon, D. A., & Ionescu, A. (2022). Windows Internals. Microsoft Press.
Silberschatz, A., Galvin, P. B., & Gagne, G. (2022). Operating System Concepts. Wiley.
Stallings, W. (2023). Operating Systems: Internals and Design Principles. Pearson.
Tanenbaum, A. S., & Bos, H. (2014). Modern Operating Systems. Pearson.
Vahalia, U. (1996). UNIX Internals: The New Frontiers. Prentice Hall
This work is licensed under
a Creative Commons Attribution-ShareAlike 3.0 Unported License.
It makes use of the works of
Kelly Loves Whales and Nick Merritt.