Skip to main content

MODULE 1 - Introduction to Linux

Overview​

This first module introduces you to Linux, the most widely used open-source operating system in the world. You will discover why Linux exists, how it works, and what fundamental concepts you will use throughout this course.

Learning Objectives​

By the end of this module, you will be able to:

  • Explain what Linux is and why it is essential
  • Understand the evolution from Unix to Linux
  • Identify the main components of a Linux system
  • Distinguish between different Linux distributions
  • Use the terminal to interact with the system
  • Install and configure a Linux environment

Estimated Duration​

Theory: 3-4 hours
Practice: 2-3 hours
Total: 5-7 hours


Table of Contents​

Part 1: Introduction and Concepts​

  1. Chapter 1.1 - What is Linux?
  2. Chapter 1.2 - Why Linux?
  3. Chapter 1.3 - History and Evolution
  4. Chapter 1.4 - High-Level Architecture
  5. Chapter 1.5 - Fundamental Concepts

Part 2: Installation and Practice​

  1. Chapter 1.6 - Installation and First Use

Practical Labs​

Validation​


What is Linux?​

Linux is an open-source Unix-like operating system that manages the hardware and software resources of a computer. It is used everywhere: from servers to smartphones, supercomputers, and embedded devices.

Simple Definition​

Linux is the operating system that:

  • Manages your computer's resources (CPU, memory, disk)
  • Allows applications and programs to run
  • Provides an interface between hardware and software
  • Offers a stable and secure environment for work

Linux is all around you, often without you knowing it!

Analogy: The Foundation of a House​

Just as the foundations of a house support the entire structure, Linux supports and manages all the applications and resources of your computer system.

Key Features​

Linux offers:

  1. Open Source and Free

    • Accessible and modifiable source code
    • Free to use
    • Active community and support
  2. Stability and Reliability

    • Robust and stable system
    • Can run for years without rebooting
    • Ideal for critical servers
  3. Security

    • Secure architecture by default
    • Regular security updates
    • Granular access control
  4. Flexibility and Customization

    • Numerous distributions (Ubuntu, Debian, Red Hat, etc.)
    • Customizable to meet needs
    • Graphical interface or command line
  5. Performance

    • Efficient resource usage
    • Runs on old or modern hardware
    • Optimized for servers and the cloud

Why Linux?​

Challenges Without Linux (Proprietary Systems)​

With proprietary operating systems, you are limited:

Problems:

  • High license costs
  • Little control over the system
  • Dependency on a vendor
  • Limited customization
  • Paid or restricted support
  • Less flexibility

Advantages With Linux​

Advantages:

  • Free and open source
  • Total control over the system
  • Infinitely customizable
  • Active community and support
  • Enhanced security
  • Optimal performance

Typical Use Cases​

Linux is used everywhere:

  1. Web Servers and Cloud

    • The majority of web servers use Linux
    • Cloud infrastructure (AWS, Azure, GCP)
    • Web hosting
  2. Supercomputers and HPC

    • 100% of the top 500 supercomputers
    • High-performance computing
    • Scientific research
  3. Embedded Devices and IoT

    • Android smartphones (based on Linux)
    • Routers and network equipment
    • IoT devices and home automation
  4. Development and DevOps

    • Development environment
    • DevOps and CI/CD tools
    • Docker containers

History and Evolution​

The Evolution from Unix to Linux​

Linus Torvalds and the Creation of Linux​

Linux was created by Linus Torvalds, a Finnish student, in 1991.

Context (1991):

  • Unix was expensive and proprietary
  • Minix (educational Unix-like) was limited
  • Linus wanted a free and complete system

Linux (1991):

  • Open-source kernel
  • Named after Linus + Unix
  • GPL (GNU General Public License)
  • Collaborative development via the Internet

Adoption and Growth​

Key Figures:

  • Used on 100% of the top 500 supercomputers
  • 96% of the top 1 million web servers
  • Android (based on Linux): 70%+ of the mobile market
  • Millions of contributors and developers
  • The largest open-source ecosystem

High-Level Architecture​

Overview of a Linux System​

A Linux system is composed of several layers working together:

The Linux Kernel​

The Kernel is the "heart" of the system. It manages all interactions between hardware and software.

Kernel Functions:

  1. Process Management

    • Creation, scheduling, and termination of processes
    • Multitasking and multiprocessing
    • Inter-process communication
  2. Memory Management

    • Allocation and release of memory
    • Virtual memory and swap
    • Memory protection
  3. File System

    • Management of files and directories
    • Support for multiple file systems
    • Permissions and security
  4. Network Management

    • Network protocols (TCP/IP, UDP, etc.)
    • Management of network interfaces
    • Firewall and network security
  5. Device Management

    • Device drivers
    • Interface with hardware
    • Plug and play

User Space vs Kernel Space​

Linux separates user space from kernel space:

Important Separation:

  • User Space: User applications and programs
  • Kernel Space: Critical system functions
  • Security: Applications cannot directly access hardware

Fundamental Concepts​

Processes​

A process is an instance of a running program. Each process has a unique identifier (PID).

Characteristics:

  • Each process has a unique PID
  • Parent and child processes (hierarchy)
  • States: running, sleeping, stopped, zombie
  • Resources: CPU, memory, open files

File System​

The file system organizes data on the disk into files and directories.

Important Structure:

  • / : System root
  • /bin, /usr/bin : System executables
  • /etc : Configuration files
  • /home : User directories
  • /var : Variable data (logs, cache)
  • /tmp : Temporary files

Users and Permissions​

Linux is a multi-user system with granular permission control.

Types of Users:

  • Root (superuser): Full system access
  • Normal users: Limited access to their files
  • Groups: Shared permissions among users

File Permissions:

  • Read (r): Read the file
  • Write (w): Modify the file
  • Execute (x): Execute the file
  • Applied to: Owner, Group, Others

Shell and Command Line​

The shell is the interface between the user and the system. It interprets commands.

Shell Features:

  • Command execution
  • Scripting and automation
  • Redirection and pipelines
  • Environment variables
  • Command history

Linux Ecosystem​

Linux is not alone. It is part of a rich ecosystem of open-source tools and projects.

Major Distributions​

Linux distributions are variants of Linux with different tools and configurations:

  • Debian/Ubuntu: Popular, user-friendly, Debian-based
  • Red Hat/CentOS/Fedora: Enterprise, stable, Red Hat-based
  • Arch Linux: Advanced, rolling release, customizable
  • SUSE/openSUSE: Enterprise, stable, popular in Europe
  • And hundreds more...

Module Summary​

In this module, you learned:

Linux is an open-source Unix-like operating system
It manages the hardware and software resources of a computer
A Linux system is composed of the Kernel and User Space
Processes are instances of running programs
The file system organizes data into files and directories
Users and permissions control access to resources
The shell is the interface between the user and the system


Next Steps​

Now that you understand the basic concepts, you are ready for:

Module 2: Detailed Linux System Architecture
Module 3: File System and Navigation


Additional Resources​


Module created on: December 2024