operating systems 101
An operating system (OS) is a software that acts as an intermediary between computer hardware and the computer user. It provides a user interface and manages hardware resources, allowing users and application programs to interact with the computer.
These are some key aspects of an operating system:
Core Functions:
-
Process Management: Handles processes (programs in execution) by scheduling tasks, managing their execution, and providing mechanisms for synchronization and communication between processes.
-
Memory Management: Allocates and deallocates memory space as needed by different programs, ensuring efficient use of available memory.
-
File System Management: Manages files on storage devices, including organization, storage, retrieval, naming, sharing, and protection of files.
-
Device Management: Controls and coordinates peripheral devices (like printers, disks, and keyboards), managing communication between the computer and these devices.
User Interface:
The user interface (UI) is the part of the operating system that allows users to interact with the computer. There are different types of user interfaces, including command-line interfaces (CLI) and graphical user interfaces (GUI).
Examples of GUI-based operating systems include Microsoft Windows, macOS, and various Linux distributions. CLI-based operating systems include Unix-based systems like Linux and macOS.
-
Command Line Interface (CLI): Users interact with the OS by typing commands.
-
Graphical User Interface (GUI): Users interact with the OS using graphical elements like icons and buttons.
File System:
-
The file system is a crucial part of an operating system that manages how data is stored, organized, and retrieved on storage devices such as hard drives and SSDs.
-
Different operating systems support various file systems. For example, Windows commonly uses NTFS, macOS uses HFS+, and Linux supports file systems like ext4.
Types of Operating Systems:
Most modern operating systems support multitasking, allowing multiple programs to run concurrently. This is achieved through task scheduling algorithms implemented by the OS.
Operating systems also support multi-user environments, enabling multiple users to interact with the system simultaneously. Each user typically has their own user account and set of permissions.
-
Single-User, Single-Tasking: Supports only one user and one task at a time.
-
Single-User, Multi-Tasking: Supports one user who can run multiple tasks simultaneously.
-
Multi-User: Supports multiple users concurrently, each running their own processes.
-
Real-Time Operating System (RTOS): Designed for real-time applications with strict timing requirements.
Popular Operating Systems:
-
Windows: Developed by Microsoft, widely used for personal computers.
-
Linux: An open-source OS kernel that forms the basis for various Linux distributions (distros).
-
macOS: Developed by Apple, designed for their Macintosh computers.
-
Unix: A powerful, multi-user, multi-tasking OS; Linux is Unix-like.
Each of these operating systems provides a platform for running applications and managing the overall operation of the computer.
Booting Process:
-
BIOS/UEFI: Basic Input/Output System or Unified Extensible Firmware Interface, initiates hardware and loads the bootloader.
-
Bootloader: Loads the OS kernel into memory.
-
Kernel: The core of the operating system that manages hardware and resources.
Kernel:
-
The kernel is the core component of the operating system. It provides essential services, such as managing memory, handling input and output, scheduling tasks, and controlling hardware resources.
-
Different operating systems have different types of kernels. For example, Linux uses a monolithic kernel, while Windows uses a hybrid kernel.
System Security:
Operating systems implement various security measures to protect the system and user data. This includes user authentication, access control, encryption, and firewall capabilities.
-
User Authentication: Ensures only authorized users can access the system.
-
Firewalls and Antivirus: Protect the system from external threats.
-
Updates and Patches: Operating systems often receive updates to fix bugs, improve performance, and patch security vulnerabilities. Users are encouraged to keep their operating systems up to date to ensure optimal functionality and security.
Virtualization:
-
Virtual Machines (VMs): Run multiple operating systems on a single physical machine.
-
Containerization: Lightweight virtualization for application deployment.
Evolution:
-
Batch Processing: Early computers executed jobs in batches.
-
Time-Sharing Systems: Introduced the concept of sharing computing resources.
-
Personal Computers: Shift towards individual use.
-
Networked Systems: Connecting computers for resource sharing.
-
Mobile Operating Systems: Tailored for mobile devices such as smartphones and tablets, use specialized operating systems like Android, iOS, and HarmonyOS..