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
-
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
-
Quelle est la différence entre ps et top?
psmontre un instantanétopmontre en temps réel
-
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