Skip to content

Latest commit

 

History

History
130 lines (104 loc) · 6.23 KB

Introduction-to-Linux.md

File metadata and controls

130 lines (104 loc) · 6.23 KB

Operating System (OS) Overview

An Operating System (OS) is a collection of software that manages hardware and software resources on a computer system. It serves as an intermediary between the user, application programs, and hardware, ensuring smooth and efficient task execution.

The OS facilitates communication in the following ways:

  • User > Application > OS > Hardware
  • User > Shell > Kernel > Hardware

The Shell acts as a command-line interface for user interaction, while the Kernel is the core component responsible for managing hardware resources, memory, processes, and devices.

Core Functions of an Operating System

The primary functions of an OS are as follows:

1. Process Management

  • Definition: Manages the execution of processes, ensuring that multiple tasks run concurrently without interference.
  • Key Activities:
    • Creation, scheduling, and termination of processes.
    • Process synchronization and inter-process communication.
    • Resource allocation for processes.

2. Memory Management

  • Definition: Controls the computer’s memory, ensuring that each process has sufficient memory without conflict.
  • Key Activities:
    • Allocation and deallocation of memory.
    • Virtual memory management, including paging and segmentation.
    • Preventing memory leaks and conflicts.

3. File System Management

  • Definition: Organizes and manages files on storage devices.
  • Key Activities:
    • Structuring files into directories.
    • Providing methods for file creation, reading, writing, and deletion.
    • Implementing data integrity and access control mechanisms.
    • Supporting file system structures like FAT, NTFS, and ext4.

4. Device Management

  • Definition: Manages input/output devices like printers, displays, and storage devices.
  • Key Activities:
    • Managing device drivers.
    • Ensuring communication between software and hardware.
    • Handling input/output operations and data buffering.

5. Security and Protection

  • Definition: Safeguards the system and user data from unauthorized access and attacks.
  • Key Activities:
    • User authentication and access control (e.g., passwords, biometrics).
    • Implementing encryption for data confidentiality.
    • Protecting system resources through permissions and security policies.
    • Ensuring file and program integrity.

6. User Interface (UI)

  • Definition: Provides the means for users to interact with the system.
  • Key Activities:
    • Command-Line Interface (CLI): Allows text-based user commands.
    • Graphical User Interface (GUI): Provides a visual interface for easier navigation.

7. Network Management

  • Definition: Manages network communication, enabling resource sharing and system interaction over networks.
  • Key Activities:
    • Handling network connections (wired/wireless).
    • Ensuring reliable data transmission.
    • Managing protocols like TCP/IP and IP addresses.
    • Facilitating file sharing, remote access, and web browsing.

8. System Performance Monitoring

  • Definition: Tracks and optimizes system performance, ensuring efficient resource utilization.
  • Key Activities:
    • Monitoring CPU, memory, and disk usage.
    • Providing performance statistics.
    • Identifying and resolving performance bottlenecks.
    • Load balancing for optimal resource use.

9. Utilities and Support Services

  • Definition: Provides tools and services to maintain system operations and simplify user tasks.
  • Key Activities:
    • Offering utilities for file management, backup, and system maintenance.
    • Supporting debugging, troubleshooting, and optimization.
    • Managing system updates and patches.

Open Source Operating Systems (OS)

An open-source operating system (OS) is one whose source code is publicly accessible for viewing, modification, and distribution. Unlike proprietary systems, open-source OS are typically developed collaboratively by a community.

Key Characteristics of Open Source OS:

  1. Source Code Availability:

    • The full source code is accessible, allowing developers to inspect, modify, and enhance the OS.
  2. Free Redistribution:

    • Open-source OS can be freely redistributed in their original or modified form, offering flexibility for users to share and adapt the software.
  3. Community Collaboration:

    • Development is driven by community collaboration, allowing anyone to contribute improvements and features. The process is open and often based on user needs.
  4. Licensing:

    • Open-source OS are distributed under specific licenses, such as:
      • GNU General Public License (GPL)
      • MIT License
      • Apache License
  5. Transparency:

    • The development process is open, ensuring peer review and quick issue resolution, often resulting in higher quality and reliability.
  6. Security:

    • Security vulnerabilities are quickly identified and patched by the community, enhancing the overall security of open-source systems.

1. Unix

  • Origin: Developed in the late 1960s and early 1970s at AT&T Bell Labs by Ken Thompson, Dennis Ritchie, and others.
  • Design: A portable, multi-tasking, and multi-user operating system.
  • Source Code: Initially proprietary, later released as various commercial and open-source variants.
  • Usage: Predominantly used in academic, enterprise, and server environments.
  • Popular Variants:
    • IBM AIX
    • HP-UX
    • Oracle Solaris

2. Linux

  • Origin: Created by Linus Torvalds in 1991, inspired by Unix but not directly derived from Unix code.
  • License: Open-source kernel under the GNU General Public License (GPL).
  • GNU/Linux: Often combined with GNU software to create a complete operating system, commonly referred to as GNU/Linux.
  • Usage: Widely used in servers, desktops, embedded systems, and supercomputers.
  • Popular Distributions:
    • Ubuntu
    • Fedora
    • CentOS
    • Debian
    • Red Hat Enterprise Linux (RHEL)