Linux : Concepts Fondamentaux

Qu’est-ce que Linux ?

Linux est un noyau de système d’exploitation (kernel) open source, créé en 1991 par Linus Torvalds, alors étudiant finlandais. Inspiré d’Unix, il forme la base de nombreuses distributions utilisées aussi bien sur les serveurs, les ordinateurs personnels, les smartphones (Android) que les systèmes embarqués.

“Linux is only free if your time has no value.” — Jamie Zawinski


Histoire

AnnéeÉvénement
1969Naissance d’Unix (Bell Labs)
1983Projet GNU lancé par Richard Stallman
1991Linus Torvalds publie le noyau Linux 0.01
1994Linux 1.0 — première version stable
2003Linux intègre le noyau Android (plus tard)
2023Linux 6.x — utilisé sur 96% des serveurs web mondiaux

Architecture du système

Linux repose sur une architecture en couches :

┌─────────────────────────────┐
│      Applications           │  ← Espace utilisateur
├─────────────────────────────┤
│   Bibliothèques système     │  (glibc, libm…)
├─────────────────────────────┤
│        Appels système       │  (syscalls)
├─────────────────────────────┤
│       Noyau Linux           │  ← Kernel space
│  (gestion mémoire, FS,      │
│   réseau, pilotes…)         │
├─────────────────────────────┤
│          Matériel           │  (CPU, RAM, disques…)
└─────────────────────────────┘

Composants clés du noyau

  • Gestion des processus : ordonnancement, création, communication inter-processus (IPC)
  • Gestion de la mémoire : mémoire virtuelle, pagination, swap
  • Système de fichiers : ext4, btrfs, xfs, tmpfs…
  • Pile réseau : TCP/IP, sockets, pare-feu (netfilter)
  • Pilotes de périphériques : interface entre matériel et logiciel

Concepts fondamentaux

1. Tout est fichier

Dans Linux, presque tout est représenté comme un fichier : disques, périphériques, processus, connexions réseau. Cela unifie les interfaces et simplifie la programmation système.

/dev/sda       # Un disque dur
/proc/1234     # Le processus avec le PID 1234
/dev/null      # Le "trou noir" : supprime tout ce qu'on y écrit

2. L’arborescence du système de fichiers

/
├── bin/       # Binaires essentiels (ls, cp, mv…)
├── boot/      # Noyau et bootloader
├── dev/       # Périphériques
├── etc/       # Fichiers de configuration
├── home/      # Répertoires utilisateurs
├── lib/       # Bibliothèques partagées
├── proc/      # Informations sur les processus (virtuel)
├── root/      # Répertoire de l'administrateur
├── tmp/       # Fichiers temporaires
├── usr/       # Applications et utilitaires
└── var/       # Données variables (logs, bases de données…)

3. Utilisateurs et permissions

Linux est un système multi-utilisateurs. Chaque fichier possède trois niveaux de permissions :

-rwxr-xr--  1  alice  staff  4096  mars 5 10:00  script.sh
 ↑↑↑↑↑↑↑↑↑
 │└──┬──┘└──┬──┘└──┬──┘
 │  owner  group  others
 └── type (- = fichier, d = dossier, l = lien)
  • r (read) : lecture
  • w (write) : écriture
  • x (execute) : exécution

L’utilisateur root (UID 0) est le super-administrateur avec tous les droits.

4. Les processus

Chaque programme en cours d’exécution est un processus, identifié par un PID (Process ID). Le premier processus lancé au démarrage est init (ou systemd), avec le PID 1.

ps aux         # Lister les processus
kill -9 1234   # Tuer le processus 1234
top / htop     # Moniteur de processus en temps réel

5. Le shell

Le shell est l’interface en ligne de commande qui permet d’interagir avec le système. Les plus courants :

ShellDescription
bashBourne Again Shell — le plus répandu
zshBash étendu, très populaire (Oh My Zsh)
fishShell interactif moderne
shShell POSIX historique

Distributions Linux

Une distribution (distro) combine le noyau Linux avec des logiciels, un gestionnaire de paquets et une interface pour former un système complet.

Principales familles

Linux Kernel
├── Debian
│   ├── Ubuntu
│   │   ├── Linux Mint
│   │   └── Pop!_OS
│   └── Kali Linux
├── Red Hat
│   ├── Fedora
│   ├── RHEL
│   └── CentOS / AlmaLinux
├── Arch Linux
│   └── Manjaro
└── Slackware
    └── openSUSE

Commandes essentielles

# Navigation
pwd           # Affiche le répertoire courant
ls -la        # Liste les fichiers (avec détails et cachés)
cd /var/log   # Change de répertoire
 
# Fichiers
cp src dest   # Copier
mv src dest   # Déplacer / renommer
rm -rf dir/   # Supprimer (dangereux !)
find / -name "*.conf"  # Rechercher des fichiers
 
# Réseau
ping google.com
curl https://example.com
ssh user@host
 
# Droits
chmod 755 script.sh
chown alice:staff fichier.txt
sudo commande    # Exécuter en tant que root
 
# Paquets (Debian/Ubuntu)
apt update && apt upgrade
apt install vim

Philosophie Unix/Linux

Linux hérite de la philosophie Unix, résumée ainsi :

  1. Faire une seule chose, mais bien la faire
  2. Les programmes communiquent via des flux de texte
  3. Composer des outils simples pour des tâches complexes

Cette philosophie favorise la modularité, la réutilisabilité et la puissance du shell via les pipes (|) :

cat access.log | grep "ERROR" | sort | uniq -c | sort -rn | head -10

Linux aujourd’hui

  • Serveurs : ~96% des serveurs web dans le monde
  • Cloud : AWS, GCP, Azure reposent massivement sur Linux
  • Smartphones : Android est basé sur le noyau Linux
  • Supercalculateurs : 100% des 500 plus puissants tournent sous Linux
  • Embarqué : routeurs, télévisions, voitures, IoT

Ressources pour aller plus loin