Aller au contenu principal

Lab 2.1 - Inspection du Kernel et Processus Système

Objectifs​

À la fin de ce lab, vous serez capable de:

  • Inspecter le kernel Linux
  • Vérifier les processus système
  • Examiner systemd et les services
  • Comprendre la structure des processus

Prérequis​

  • Système Linux fonctionnel (Ubuntu/Debian recommandé)
  • Accès root ou sudo
  • Terminal ouvert

Exercice 1: Informations sur le Kernel​

Étape 1: Version du Kernel​

# Voir la version du kernel
uname -a

# Version uniquement
uname -r

# Informations détaillées
cat /proc/version

Question: Quelle version de kernel utilisez-vous?

Étape 2: Modules du Kernel​

# Voir les modules chargés
lsmod

# Voir les détails d'un module
modinfo nom-module

# Voir les modules liés à un mot-clé
lsmod | grep network

Étape 3: Paramètres du Kernel​

# Voir les paramètres sysctl
sysctl -a

# Voir un paramètre spécifique
sysctl kernel.version

# Voir les paramètres réseau
sysctl net.ipv4

Exercice 2: Processus Système​

Étape 1: Processus Init (PID 1)​

# Voir le processus init
ps -p 1

# Détails du processus
ps -p 1 -o pid,ppid,cmd,etime

# Voir le type d'init
systemctl --version

Question: Quel système d'init utilisez-vous? (systemd, SysVinit, etc.)

Étape 2: Processus Système​

# Voir tous les processus
ps aux

# Voir l'arbre des processus
pstree

# Avec PID
pstree -p

# Voir les processus système uniquement
ps aux | grep -E '\[.*\]'

Étape 3: Processus par Utilisateur​

# Processus de root
ps -u root

# Processus de votre utilisateur
ps -u $USER

# Compter les processus
ps aux | wc -l

Exercice 3: systemd et Services​

Étape 1: État de systemd​

# Voir la version de systemd
systemctl --version

# Voir l'état de systemd
systemctl status

# Voir les unités actives
systemctl list-units --type=service --state=running

Étape 2: Services Système​

# Voir tous les services
systemctl list-units --type=service

# Services actifs
systemctl list-units --type=service --state=active

# Services échoués
systemctl list-units --type=service --state=failed

Étape 3: Détails d'un Service​

# État d'un service (ex: sshd)
systemctl status sshd

# Voir les logs
journalctl -u sshd

# Dernières lignes
journalctl -u sshd -n 50

Exercice 4: Exploration de /proc​

Étape 1: Informations Système​

# Informations CPU
cat /proc/cpuinfo

# Informations mémoire
cat /proc/meminfo

# Informations système
cat /proc/loadavg

Étape 2: Processus dans /proc​

# Voir les processus
ls /proc/ | grep -E '^[0-9]+$'

# Informations sur un processus (remplacer PID)
cat /proc/1/status

# Fichiers ouverts par un processus
ls -l /proc/1/fd/

Étape 3: Informations Réseau​

# Connexions réseau
cat /proc/net/sockstat

# Statistiques réseau
cat /proc/net/dev

Exercice 5: Analyse Avancée​

Étape 1: Utilisation des Ressources​

# Top processus
top -bn1 | head -20

# Avec htop (si installé)
htop

# Utilisation CPU par processus
ps aux --sort=-%cpu | head -10

# Utilisation mémoire par processus
ps aux --sort=-%mem | head -10

Étape 2: Arbre des Processus​

# Arbre complet
pstree -a

# Avec utilisateurs
pstree -u

# Limiter la profondeur
pstree -L 2

Étape 3: Processus Zombie​

# Voir les processus zombie
ps aux | grep -w Z

# Compter les zombies
ps aux | grep -w Z | wc -l

Exercice 6: Monitoring en Temps Réel​

Étape 1: top​

# Lancer top
top

# Commandes dans top:
# - 'q': Quitter
# - 'k': Tuer un processus
# - 'r': Renicer un processus
# - 'f': Changer les colonnes affichées

Étape 2: htop (si disponible)​

# Installer htop
sudo apt install htop

# Lancer
htop

# Plus interactif que top

Étape 3: Script de Monitoring​

# Créer un script simple
cat > monitor.sh << 'EOF'
#!/bin/bash
echo "=== Kernel ==="
uname -a
echo
echo "=== Load Average ==="
uptime
echo
echo "=== Top 5 CPU ==="
ps aux --sort=-%cpu | head -6
echo
echo "=== Top 5 Memory ==="
ps aux --sort=-%mem | head -6
EOF

chmod +x monitor.sh
./monitor.sh

Vérification​

Checklist​

Vérifiez que vous pouvez:

  • Voir la version du kernel
  • Lister les modules chargés
  • Identifier le processus init (PID 1)
  • Voir les processus système
  • Utiliser systemctl pour voir les services
  • Explorer /proc pour les informations système
  • Utiliser top/htop pour le monitoring

Questions de Réflexion​

  1. Quel est le rôle du processus PID 1?

    • Il est le parent de tous les processus
    • Il gère les processus orphelins
    • Il initialise le système
  2. Quelle est la différence entre ps et top?

    • ps montre un instantané
    • top montre en temps réel
  3. Pourquoi /proc est-il important?

    • Interface vers le kernel
    • Informations en temps réel
    • Pas de fichiers réels, tout est virtuel

Prochaines Étapes​

  • Lab 2.2: Analyse de la Gestion Mémoire
  • Lab 2.3: Monitoring Système Avancé
  • Chapitre 2.3: Gestion Mémoire et Swap

Lab créé le: Décembre 2024