Les systèmes d'exploitation

V 1.0 le 17/01/2012

Généralités

Système d'exploitation : logiciel servant d'interface entre le matériel et les logiciels applicatifs

Appelé Operating System (OS) en anglais

permet d'assurer l'exploitation des périphériques

  • disques durs

et ressources diverses

  • processeur
  • mémoire

Schéma de principe

Typologie - 1

  • SE :
    • mono-utilisateur : une seule sessions utilisateurs simultanée (MS/DOS)
    • multi-utilisateur : permet plusieurs sessions utilisateurs simultanées (Linux)
    • mono-tâche : ne permet pas l'exécution simultanée de plusieurs programmes (ex. : MS/DOS)
    • multi-tâche : permet l'exécution simultanée de plusieurs programmes (Windows XP, Linux)
    • mono-processeur : MS-DOS
    • multi-processeur : (Sun Solaris, Linux, …)

Typologie - 2

  • un SE peut être adapté à :
    • un gros système (mainframe): Sun Solaris, IBM AIX, HP-UX, Linux, …
    • un poste de travail : Windows Seven, Vista, XP, …, Linux, Mac/OS, …
    • un serveur : Windows Server 2k3/8, Linux, Mac/OS server, …
    • une tablette : Android, Apple IOS, Windows
    • un téléphone portable : Android, Windows Phone, Blackberry OS
    • un routeur ou un switch : Cisco IOS
    • des appliances (box internet, NAS, …) : base Linux

Les appels système

  • un SE propose une bibliothèque de fonctions et procédures standardisées utilisables par les programmes
    • on parle d'API : Application Programming Interface
    • API POSIX : systèmes Unix
    • API Windows pour les systèmes Microsoft

Le processeur

  • il est chargé de l'exécutution des programmes
  • dans un environnement multi-tâches, il doit être considéré comme une ressource à partager entre les différentes tâches ou processus

Les processus

  • un processus est un programme en exécution : il comporte
    • un espace mémoire qu'il est le seul à utiliser :
      • les instructions
      • les données en mémoire
  • un processus est lancé par un utilisateur avec des droits spécifiques
  • un processus est identifié par un PID (Process Identifier)
  • le système gère une table des processus du système
  • on peut les examiner avec les commandes
    • ps, top, pstree (Linux)
    • Gestionnaire de tâches (Windows)
  • ou les interrompre (kill) si l'on dispose des droits ad-hoc.

Les processus - Linux

Ordonanceur

  • scheduler : c'est le programme du système d'exploitation qui contrôle le déroulement des autres programmes dans un SE multi-tâche
  • il répartit le temps processeur entre les différents processus en exécution : il alloue des tranches (slices) de temps CPU (de l'ordre de 100 ms) à chacun des processus puis passe au processus suivant

Mode noyau/Mode user

  • le noyau (kernel) partie fondamentale du SE qui gère les ressources (processeur, mémoire, systèmes de fichier, réseau, périphérique divers, …)
  • partie critique du SE
  • le noyau fonctionne en mode noyau :
    • il dispose de l'accès intégral aux ressources et de priorités élevées
  • les autres programmes non fondamentaux (Firefox, OpenOffice, …) comme ceux lancés par l'utilisateur fonctionnent en mode user
    • ils disposent de droits et de priorités limités pour ne pas mettre en péril l'intégrité du stytème

La mémoire

  • le système doit :
    • allouer un espace mémoire pour la mettre à disposition d'un programme
    • libérer l'espace mémoire à la fin du programme
    • assurer la protection et limiter l'accès à une zone mémoire

La mémoire virtuelle

  • ce mécanisme permet au SE d'exécuter des programmes dont la taille peut dépasser celle de la mémoire physique
  • il libère de l'espace en stockant sur disque des blocs mémoire occupés (mécanisme de swap)
  • ce stockage peut se faire dans un fichier d'échange (Windows : pagefile.sys) ou dans une partition spécifique (Linux).
  • ce dispositif permet de fonctionner avec très peu de mémoire mais au prix de performances très faibles :
    • un système en production devrait disposer de suffisamment de mémoire pour ne pas swapper

Les pilotes

  • le SE pour fonctionner doit utiliser des logiciels permettant de gérer chacun des périphériques
  • ces logiciels sont appelés des pilotes ou drivers
  • ils sont spécifiques :
    • au matériel lui même ( Carte réseau Ethernet Intel Pro 1000 )
    • au système d'exploitation et à sa version (Windows Seven 64 bits)
  • ils sont
    • soit livrés avec le SE,
    • soit avec le matériel lui-même
    • ou encore intégrés au SE (Linux)

Les disques

  • les dispositifs de stockage à long terme

Les disques logiques

  • un disque physique est fréquemment scindé en plusieurs disques logiques pour
    • organiser plus efficacement l'espace disque
    • améliorer la séparation entre différents espaces de stockage (système, applicatifs, espace utilisateur, …)
    • améliorer la sécurité
    • permettre éventuellement l'installation de plusieurs SE (Windows, Linux, …)
    • simplifier les sauvegardes et les réinstallations
  • on effectue un partitionnement du disque dur en plusieurs disques logiques

Les types de partition

  • partition primaire
    • peut démarrer
    • 4 maxi sur un disque
  • partition étendue
    • nécessaire si on veut plus de 4 partitions
    • une seule partition étendue par disque
    • une partition étendue peut comporter 4 lecteurs logiques maxi

Les disques logiques - Linux

pb:/home/lee# fdisk -l
Disk /dev/sda: 40.0 GB, 40007761920 bytes
255 heads, 63 sectors/track, 4864 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xe02ae02a
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1        1930    15502693+   7  HPFS/NTFS
/dev/sda2            1932        4864    23559322+   f  W95 Ext'd (LBA)
/dev/sda5            1932        2660     5855629+  83  Linux
/dev/sda6            2661        2757      779121   82  Linux swap / Solaris
/dev/sda7            2758        4864    16924446   83  Linux

Les disques logiques - Linux - gparted

Les unités logiques

  • sous Windows, les unités ou disques logiques sont repérés par des lettres : A:, B:, C:, D:, E:Z:
  • sous Linux, les unités logiques (sda2, sd3, …) sont raccordées à la racine (root) au moyen d'une opération de montage

Les systèmes de fichiers

  • file system : il permet de stocker les fichiers dans des structures en forme d'arbre
  • le SE comporte un certain nombre d'utilitaires permettant d'effectuer les opérations de base :
    • copier : cp (Linux), copy (DOS)
    • renommer : mv (Linux), ren (DOS)
    • supprimer : rm (Linux), del (DOS)
    • créer/supprimer un répertoire : mkdir, rmdir
    • formatter : mkfs (Linux), format (DOS)

Les systèmes de fichiers - suite

  • chaque SE propose ses propres systèmes de fichiers
  • Windows
    • FAT16, FAT32
    • NTFS
  • Linux
    • ext2, ext3
    • xfs
    • ext4
  • MacOS
    • HFS

Les systèmes de fichiers - FAT

  • FAT : File Allocation Table
  • FAT16 : taille maxi 2 Gio
  • FAT32 :
    • pas de sécurité locale (pas de permissions)
    • taille maxi fichier : 4 Gio - partition : 8 TiO
    • très utilisé sur les clés USB et cartes mémoire
    • résistance moyenne aux pannes ⇒ scandisk au démarrage

Les systèmes de fichiers - NTFS

  • NT File System
  • système de journalisation permettant une “réparation automatique” au démarrage : raisonnablement robuste
  • sécurité locale
  • compression éventelle
  • support des quotas
  • le standard pour les systèmes de fichiers windows
  • taille maxi fichier : 16 Tio - partition : 256 Tio
  • chiffrement possible

Les systèmes de fichiers - ext3

  • ext3
  • système de journalisation
  • sécurité locale
  • support des quotas
  • le standard actuel pour les systèmes de fichiers Linux

Les utilisateurs et l'authentification

  • l'accès au système doit être réglementé pour ne pas mettre en péril son intégrité et sa sécurité
    • ⇒ nécessité d'utiliser un mécanisme d'authentification et des comptes utilisateurs
  • un utilisateur est caractérisé par divers attributs (selon le SE - ici Linux) :
    • login : adupont
    • nom complet : Albert Dupont
    • son home directory : /home/adupont
    • son mot de passe (stocké sous forme chiffrée) : $1$ni0H4A2x$hQxRycgLCYE13QjAid11K0
    • son shell (Linux) : /bin/bash
    • son appartenance à différents groupes : users, …

Les groupes

  • la gestion d'un système requiert un minimum de structuration
  • on répartit les utilisateurs en groupes
  • on affecte les droits et permissions à chacun des groupes plutôt qu'aux utilisateurs
  • le groupe Administrateurs dispose de l'ensemble des droits d'administration sous Windows
  • on dispose de groupes équivalents sous Linux (root, admin, …)

Administrateurs et super-utilisateurs

  • chaque SE dispose d'utilisateurs bénéficiant de droits d'administration étendus
    • sous Linux : l'utilisateur root encore appelé superutilisateur (cf. commande su)
    • sous Windows : l'utilisateur administrateur ou les membres du groupe administrateurs
  • l'administrateur a le droit de tout faire (surtout sous Linux: Linux vous donne la longueur de corde qu'il vous faut pour vous pendre. Et pour être sûr, on rajoute un mètre !

L'authentification

  • l'authentification consiste à vérifier l'identité d'une personne ou d'un ordinateur au moyen de divers procédés : mot de passe, paire de clés, …
  • elle peut être locale : quand elle est effectuée avec une base de comptes locale (SAM locale pour Windows, fichier /etc/password pour Linux, …)
  • ou centralisée et distante au moyen d'un serveur d'annuaire (Active Directory pour Windows, LDAP pour Linux, …)
  • les comptes utilisateur décrits plus haut peuvent être des comptes
    • locaux : situés sur la machine à laquelle on se connecte
    • globaux : situé sur un machine distante (Contrôleur de domaine Microsoft, serveur d'annuaire ,…)

Interface utilisateur

  • historiquement mode texte (25 lignes x 80 colonnes) en “ligne de commande
    • efficace mais austère et peu convivial : peu adapté au grand public
    • utilise un interpréteur de commande
      • sh, bash, … en Linux
      • command, cmd pour Windows
  • depuis les année 80, interface graphique avec la souris
    • Mac d'Apple
    • X-Window pour les machines Unix
    • Windows

Les familles des SE

  • à l'origine, les SE sont des SE pour les gros systèmes
  • dans les années 80, apparaissent la micro-informatique et des SE simples :(MS/DOS, CPM, …) dans un environnement en mode texte
  • au milieu des années 80, apparaissent les interfaces graphiques sur Mac et sur PC avec Windows
  • c'est aussi l'apparition de la famille Unix, orientée multi-utilisateur et gestion puis un mode graphique apparaît avec X-Window,
  • enfin cette famille donnera naissance à Linux et à Mac/OS

La famille Microsoft

  • famille poste de travail
    • MS-DOS : année 80 - système 16 bits - mode texte
    • Windows 1 2, 3.1 : 16 bits - interface graphique
    • Windows 95 : système 32 bit -“vrai multitâche”
    • Windows 2000, XP
    • Windows Vista, Seven

La famille Microsoft - suite

  • famille serveur
    • Windows NT server 3.5, 4.0 (1996)
    • Windows 2000 Server
    • Windows 2003, 2008 server

La famille Unix/Linux

  • Linux depuis 1991 (distributions Debian, Ubuntu, Redhat, Centos, Suse, …)
  • famille BSD -
    • NetBSD
    • OpenBSD
    • FreeBSD,
  • Mac/OS
  • AIX (IBM)
  • Solaris (Sun)
  • HP/UX (HP)

Installation

  • s'assurer de disposer des ressources nécessaires
    • espace disque
    • mémoire
    • processeur
    • carte réseau
    • carte graphique
  • et du support d'installation : CD/DVD, clé USB, …

Installation - 2

  • machine
    • physique
    • virtuelle
  • péripérique d'installation
    • CD/DVD (ou image ISO si machine virtuelle)
    • clé USB
    • réseau (PXE)
  • schéma de partitionnement
    • monopartition (le plus simple)
    • multipartition : plus élaboré - adapté à un serveur mais nécessite de faire un plan de partitionnement

Démarrage

  • MBR : Master Boot Record
    • ou zone amorce : premier secteur d'un disque dur - 512 octets
      • cylindre 0, tête 0 et secteur 1, ou secteur 0 en adressage logique)
    • contient la table des partitions (4 primaires)
    • comporte aussi un code d'amorçage permettant de charger le SE (ou le boot loader/chargeur d'amorçage s'il existe) présent sur la partition active.

Chargeur d'amorçage

  • bootloader: chargeur d'amorçage : il permet de choisir le SE à lancer
  • le BIOS lit le MBR puis le VBR de la partition active
  • à partir de ces informations, il peut déterminer l'emplacement du chargeur d'amorçage et le lancer
    • exemples de chargeurs d'amorçage :
      • GRUB, GRUB
      • LILO
      • ntldr (Windows NT et XP)
      • winload.exe (Vista et Seven)
  • remarque : les bootloaders Windows ne tiennent pas compte des partitions Linux existantes
  • à la fin d'une installation Linux, si on n'installe pas GRUB, on n'est pas capable de redémarrer …