Révision Windows OS - Admin Système Révision Windows OS - Couche HAL & Admin Système

Révision Windows OS - Admin Système

🖥️ La Couche HAL (Hardware Abstraction Layer)

HAL (Hardware Abstraction Layer) = Ensemble de programmes qui jouent l'intermédiaire entre le matériel physique et le noyau du système d'exploitation Windows.

Rôle Principal du HAL

  • Masquer les différences matérielles : Permet au système d'exploitation et aux applications de fonctionner de manière identique quel que soit le matériel
  • Traducteur universel : Traduit les instructions du noyau en commandes spécifiques au matériel
  • Abstraction matérielle : Crée une couche d'abstraction entre le matériel physique et le logiciel

Architekture des Couches Windows

📱 Application Utilisateur
Google Chrome, Word, VLC, etc.
🔗 API Windows (Win32, .NET, DirectX)
Interface de programmation entre apps et OS
🧠 Kernel (Noyau) + Drivers
Gestion des processus, mémoire, I/O
⚙️ HAL (Hardware Abstraction Layer)
Fichier: hal.dll (C:\Windows\System32\)
🔧 Matériel Physique
CPU, RAM, Disques, Contrôleurs, Périphériques

Matériel Abstrait par le HAL

Composant Rôle Interaction HAL
CPU (Processeur) Exécute les instructions Gère les modes d'exécution (privilégié/user)
Mémoire RAM Stockage temporaire Gère l'accès et la pagination
Bus système Communication interne Traduit les commandes de communication
Contrôleurs Gèrent les périphériques Interface standardisée avec les périphériques

Chargement du HAL au Démarrage

Chronologie du démarrage :

1. BIOS initialise le matériel brut

2. Bootloader charge la première partie du noyau

3. Le HAL est chargé EN MÉMOIRE AVANT le noyau complet

4. Noyau initialise tous les drivers

5. API et applications se chargent

Fichier HAL

C:\Windows\System32\hal.dll

hal.dll = Librairie dynamique (Dynamic Link Library) spécifique à chaque architecture matérielle

Il existe plusieurs versions du HAL selon la configuration matérielle (mono/multi-processeur, ACPI, etc.)

⚡ Le Démarrage de Windows et le Secteur de Boot

Secteur de Boot = Première zone du disque dur (secteur n) contenant les instructions essentielles pour démarrer la machine.

Structure du Disque Dur au Démarrage

📀 Disque C: (ou partition système)
⬇ Contient pistes et secteurs ⬇
🔵 SECTEUR N° 0 (SECTEUR DE BOOT)
✓ Permet le démarrage de la machine

Contenu du Secteur de Boot

Zone Taille Contenu
Master Boot Record (MBR) 512 bytes Code de démarrage minimal
Boot Code 446 bytes Instructions pour localiser la partition active
Partition Table 64 bytes Description des 4 partitions principales
Signature 2 bytes 0x55AA (identifie un boot valide)

Processus de Démarrage (Boot Process)

Séquence de démarrage :
  1. BIOS POST : Auto-test du matériel
  2. Recherche du boot : BIOS cherche les secteurs de boot
  3. MBR chargé : Premier secteur du disque en mémoire
  4. Bootloader : Localise et charge ntldr (Windows) ou bootmgr
  5. Noyau Windows : ntoskrnl.exe se charge
  6. HAL chargé : hal.dll en mémoire
  7. Drivers chargés : Initialisation des périphériques
  8. Services démarrés : Services système
  9. Connexion utilisateur : Écran de connexion Windows

Pistes et Secteurs - Géométrie du Disque

Piste (Track) = cercle concentrique sur le disque
Secteur (Sector) = portion d'une piste (généralement 512 bytes ou 4096 bytes)
Cylindre = même piste sur tous les plateaux du disque
Représentation simplifiée: ┌─ Disque ─┐ │ Piste 0 │ (secteur 1, 2, 3, 4...) │ Piste 1 │ (secteur 1, 2, 3, 4...) │ Piste 2 │ (secteur 1, 2, 3, 4...) │ Piste 3 │ (secteur 1, 2, 3, 4...) └──────────┘

💾 Systèmes de Fichiers: FAT vs NTFS

Comprendre les Systèmes de Fichiers

Un système de fichiers est la structure et la méthode utilisée par le système d'exploitation pour organiser, stocker et accéder aux fichiers sur un disque dur.

FAT (File Allocation Table)

FAT = File Allocation Table
Système de fichiers ancien et simple
Caractéristique Description
Époque 1981 - Disquettes et premiers disques durs
Versions FAT12, FAT16, FAT32
Taille max volume FAT32: 4 GB par partition
Taille max fichier FAT32: 4 GB par fichier
Sécurité Aucune (lecture seule pas possible)
Utilisation Clés USB, cartes SD, anciennes machines

NTFS (New Technology File System)

NTFS = New Technology File System
Système de fichiers moderne de Windows
Caractéristique Description
Époque 1993 - Windows NT et versions modernes
Versions NTFS v3.0 (Windows 7+)
Taille max volume 8 EB (exabytes) - illimitée en pratique
Taille max fichier 16 EB - illimitée en pratique
Sécurité ✓ Permissions de fichiers (ACL), chiffrement (EFS)
Journalisation ✓ Protection contre la corruption
Compression ✓ Compression native des fichiers
Utilisation Disques durs Windows modernes (C:, D:, etc.)

Comparaison FAT vs NTFS

Cas d'usage :
FAT32 : Clé USB universelle (compatible Mac, Linux, anciennes TV)
NTFS : Partitions système Windows, disques internes pour sécurité

Fonctionnement de la FAT (Table d'Allocation)

📋 FAT = Table indiquant la position des clusters
🔗 Chaque entrée FAT pointe au cluster suivant
⚠️ Si FAT corrompue = disque inaccessible !

Ouverture d'un Fichier (Processus)

Comment Windows accède à un fichier :
  1. Utilisateur double-clique sur un fichier
  2. Windows lit l'entrée dans le répertoire parent
  3. Récupère le premier cluster du fichier
  4. Consulte la FAT pour trouver le cluster suivant
  5. Continue jusqu'au marqueur EOF (End Of File)
  6. Rassemble tous les clusters en mémoire
  7. Charge l'application associée
Exemple: Fichier "document.txt" Répertoire: nom=document.txt, premier_cluster=5 FAT[5] → 6 (le cluster suivant est 6) FAT[6] → 8 (le cluster suivant est 8) FAT[8] → EOF (fin du fichier) Fichier = Cluster 5 + Cluster 6 + Cluster 8

🔌 Interfaces et Acronymes Essentiels

GUI vs CLI

Interface Signification Description Exemple
GUI Graphical User Interface Interface graphique avec souris et fenêtres Windows Desktop, Explorateur de fichiers
CLI Command Line Interface Interface textuelle, commandes au clavier CMD.exe, PowerShell, Terminal

Acronymes Système Windows (BTS)

Acronyme Signification Description
API Application Programming Interface Ensemble de fonctions pour communiquer avec Windows
ASPI Advanced SCSI Programming Interface Interface pour accéder aux disques SCSI (moins utilisée aujourd'hui)
FAT File Allocation Table Ancien système de fichiers
NTFS New Technology File System Système de fichiers moderne Windows
HAL Hardware Abstraction Layer Couche d'abstraction matérielle
BIOS Basic Input/Output System Firmware initialisant le matériel
UEFI Unified Extensible Firmware Interface Remplaçant moderne du BIOS

API Windows - Les 3 Principales

1. Win32 API

• Ancienne mais toujours dominante

• Accès bas niveau au système

• Utilisée par les applications C/C++

2. .NET Framework

• API moderne et orientée objet

• Utilisée par C#, VB.NET

• Plus sûre et facile que Win32

3. DirectX

• API pour les jeux et graphiques

• Accès direct aux ressources GPU

• Performance optimale pour 3D

🐧 Commandes Bash essentielles pour Admin Système & Réseau

Bash = Bourne Again Shell - Shell de ligne de commande utilisé sur Linux et systèmes Unix. Indispensable pour tout administrateur système et réseau.

1️⃣ Gestion des Utilisateurs et Permissions

sudo - Execute command with superuser privileges
sudo apt update # Met à jour la liste des paquets (privilèges root) sudo useradd -m john # Crée un nouvel utilisateur "john"
useradd / userdel - Create or delete user accounts
useradd -m -s /bin/bash alice # Crée utilisateur avec répertoire home userdel -r bob # Supprime utilisateur et son dossier
chmod - Change file permissions
chmod 755 script.sh # rwxr-xr-x (propriétaire full, autres lecture/exécution) chmod 644 document.txt # rw-r--r-- (propriétaire écriture, autres lecture) chmod -R 755 /var/www/ # Change permissions recursively
chown / chgrp - Change ownership of files
chown alice file.txt # Donne la propriété à "alice" chown alice:admin file.txt # Utilisateur alice, groupe admin chown -R admin:admin /home/admin # Change récursivement
passwd - Change user password
passwd # Change votre mot de passe sudo passwd alice # Change mot de passe de "alice"

2️⃣ Gestion des Fichiers et Répertoires

ls / ll - List files and directories
ls -la # Tous les fichiers (-a) avec détails (-l) ls -lh # Avec tailles lisibles par humain ls -lR # Récursivement, tous les sous-dossiers
cd / pwd - Navigate and show current directory
pwd # Affiche le chemin actuel (Print Working Directory) cd /home # Change de répertoire cd .. # Remonte d'un niveau cd ~ # Aller au répertoire home
mkdir / rmdir - Create or remove directories
mkdir -p /var/backup/2024 # Crée dossier + parents si nécessaire rmdir empty_folder # Supprime dossier vide rm -rf folder/ # Supprime dossier + contenu (ATTENTION!)
cp / mv - Copy or move files
cp file.txt file_backup.txt # Copie un fichier cp -r folder/ backup/ # Copie récursive (dossier + contenu) mv file.txt /home/alice/ # Déplace le fichier mv old_name.txt new_name.txt # Renomme le fichier
find / locate - Search for files
find /home -name "*.log" # Cherche tous les fichiers .log find / -type f -size +100M # Fichiers > 100 MB locate apache # Cherche rapidement (base indexée)

3️⃣ Gestion des Processus et Services

ps / top / htop - View running processes
ps aux # Liste tous les processus ps aux | grep apache # Cherche processus contenant "apache" top # Vue en temps réel des processus htop # Top amélioré avec couleurs
systemctl / service - Manage services
systemctl start apache2 # Démarre le service Apache systemctl stop nginx # Arrête Nginx systemctl restart mysql # Redémarre MySQL systemctl status postgresql # Vérifie l'état de PostgreSQL systemctl enable apache2 # Active au démarrage systemctl disable apache2 # Désactive au démarrage
kill / killall - Terminate processes
kill 1234 # Termine processus ID 1234 kill -9 5678 # Force la terminaison killall firefox # Tue tous les processus Firefox

4️⃣ Gestion du Stockage et Disques

df / du - Disk space usage
df -h # Espace disque par partition du -sh /home # Taille totale du dossier /home du -h /home/* # Taille de chaque sous-dossier
fdisk / parted - Partition management
sudo fdisk -l # Liste les partitions sudo fdisk /dev/sda # Gère les partitions (interactif) sudo parted /dev/sda # Alternative moderne
mount / umount - Mount filesystems
mount # Affiche tous les montages actuels sudo mount /dev/sdb1 /mnt/usb # Monte USB en /mnt/usb sudo umount /mnt/usb # Démonte

5️⃣ Gestion du Réseau

ifconfig / ip - View network configuration
ifconfig # Affiche config réseau (ancien) ip addr show # Affiche adresses IP (moderne) ip link show # État des interfaces
ping - Test network connectivity
ping google.com # Test connectivité internet ping -c 4 192.168.1.1 # Ping limité à 4 paquets
netstat / ss - Display network statistics
netstat -tunap # Ports écoutes (TCP/UDP) ss -tunap # Alternatif moderne ss -s # Statistiques réseau
ssh / scp - Remote access and file transfer
ssh user@192.168.1.10 # Connexion SSH distante ssh -p 2222 user@server.com # SSH port custom scp file.txt user@server:/home # Copie fichier par SSH
nslookup / dig - DNS queries
nslookup google.com # Résolution DNS dig google.com # Infos DNS détaillées nslookup 8.8.8.8 # Reverse lookup

6️⃣ Gestion des Paquets et Logiciels

apt / apt-get - Package management (Debian/Ubuntu)
sudo apt update # Met à jour la liste des paquets sudo apt upgrade # Upgrade tous les paquets sudo apt install nginx # Installe un paquet sudo apt remove apache2 # Supprime un paquet sudo apt autoremove # Supprime paquets inutilisés
yum - Package management (CentOS/RedHat)
sudo yum update # Met à jour les paquets sudo yum install httpd # Installe Apache sudo yum remove httpd # Supprime Apache

7️⃣ Journaux et Logs

tail / head - View file contents
tail -f /var/log/apache2/access.log # Suit les logs en temps réel tail -n 20 /var/log/syslog # Dernières 20 lignes head -n 10 /var/log/auth.log # Premières 10 lignes
grep / egrep - Search text patterns
grep "ERROR" /var/log/system.log # Cherche "ERROR" dans logs grep -i "warning" /var/log/kern.log # Insensible à la casse grep -r "404" /var/log/ # Cherche récursivement
journalctl - View system journal (systemd)
journalctl # Tous les logs journalctl -u apache2 # Logs du service Apache journalctl -f # Suit les logs en temps réel journalctl --since "2 hours ago" # Logs des 2 dernières heures

8️⃣ Tâches Programmées (Cron)

crontab - Schedule automated tasks
crontab -e # Édite les tâches cron crontab -l # Liste les tâches crontab -r # Supprime toutes les tâches
0 2 * * * /scripts/backup.sh # Chaque jour à 2h00 0 */4 * * * /scripts/update.sh # Toutes les 4 heures 0 0 1 * * /scripts/monthly.sh # 1er de chaque mois

9️⃣ Compression et Archives

tar / zip / gzip - Archive management
tar -cvzf archive.tar.gz /home/docs # Crée archive compressée tar -xvzf archive.tar.gz # Extrait archive zip -r backup.zip /home/data # Crée ZIP unzip backup.zip # Extrait ZIP

🔟 Texte et Variables

cat / echo / nano - Text manipulation
cat /etc/passwd # Affiche contenu fichier echo "Texte" >> file.txt # Ajoute à la fin echo $PATH # Affiche variable PATH nano config.conf # Édite fichier

Tableau Récapitulatif - Commandes Essentielles

Catégorie Commande Utilité
Utilisateurs sudo, useradd, passwd, chmod Gestion des droits d'accès
Fichiers ls, find, cp, mv, rm Manipulation fichiers/dossiers
Processus ps, top, systemctl, kill Gestion services et processus
Stockage df, du, mount, fdisk Disques et partitions
Réseau ifconfig, ping, ssh, netstat Configuration et diagnostic réseau
Paquets apt, yum, apt-get Installation logiciels
Logs tail, grep, journalctl Analyse des journaux système

📝 Quiz de Révision

Testez vos connaissances sur le système d'exploitation Windows!

Question 1: Quel est le rôle principal du HAL?

A) Traiter les requêtes réseau
B) Masquer les différences matérielles entre les machines ✓
C) Gérer les permissions des fichiers
D) Lancer les applications

Question 2: Quel est le fichier du HAL?

A) C:\Windows\System32\kernel.exe
B) C:\Windows\System32\hal.dll ✓
C) C:\Windows\System32\api.dll
D) C:\Windows\System32\boot.exe

Question 3: Quelle est la taille maximale d'un fichier en FAT32?

A) 2 GB
B) 4 GB ✓
C) 16 GB
D) Illimitée

Question 4: Quel système de fichiers offre les permissions de fichiers?

A) FAT32
B) FAT16
C) NTFS ✓
D) exFAT

Question 5: Quel acronyme signifie "Graphical User Interface"?

A) CLI
B) GUI ✓
C) API
D) BIOS

Question 6: À quel moment le HAL est chargé au démarrage?

A) Après le noyau complet
B) En même temps que le noyau
C) Avant le noyau complet ✓
D) Au moment du login