diu-eil:se_-_generalites

Voir cette page sous forme de diaporama.

Les systèmes d'exploitation

V 1.5 le 02/06/2021

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
    • écrans, clavier, …
  • et ressources diverses
    • processeur
    • mémoire

  • SE :
    • mono-utilisateur : une seule session utilisateur simultanée (MS/DOS)
    • multi-utilisateur : permet plusieurs sessions utilisateur 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 10,8, 7, … Linux)
    • mono-processeur : MS-DOS
    • multi-processeur : (Sun Solaris, Linux, …)
  • un SE peut être adapté à :
    • un gros système (mainframe): Sun Solaris, IBM AIX, HP-UX, Linux, …
    • un poste de travail : Windows 10, 7, XP, …, Linux, Mac/OS, …
    • un serveur : Windows Server 2012/16, Linux, Mac/OS Server, …
    • une tablette : Android, Apple IOS, …
    • un téléphone portable : Android, IOS, Blackberry OS
    • un routeur ou un switch : Cisco IOS, …
    • des appliances (box internet, NAS, …) : base Linux
  • un chargeur d'OS qui permet le démarrage
  • un noyau ou kernel
  • un interpréteur de commande (bash sous Linux, cmd sous Windows) qui sert d'interface entre le noyau et l'utilisateur
  • des outils divers permettant paramétrage et maintenance du système, gestion du stockage et des fichiers, …
  • 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
    • exemple :
      • fork permet de créer un nouveau processus (env. Posix)
      • fopen ouvre un fichier (env. Posix)
  • 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
  • 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.

  • 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
  • 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, LibreOffice, …) 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 système
  • 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
  • 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 mécanisme est très lent
  • 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
  • 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 dispositifs de stockage à long terme
  • 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
  • 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 partitions décrites plus haut sont compatibles avec la totalité des environnements
  • mais
    • leur nombre est limité pour Windows (7 maxi)
    • on ne peut pas changer leur taille sauf à utiliser un outil spécifique (PartitionMagic, ou un LiveCD avec Gparted) ⇒ intervention à froid
  • on dispose maintenant de solutions permettant de
    • créer, retailler (agrandir, rétrécir) les partitions à chaud
  • ces outils s'appelent
    • LVM : Logical Volume Manager pour Unix/Linux
    • disques dynamiques pour Wndows
  • ils mettent en oeuvre les concepts de volumes logiques, volumes physiques, volume group
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

  • 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
  • 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 :
    • lister : ls (Linux), dir (DOS)
    • 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)
  • chaque SE propose ses propres systèmes de fichiers
  • Windows
    • FAT16, FAT32, EXFAT
    • NTFS
  • Linux
    • ext4
    • xfs
    • btrfs
  • MacOS
    • HFS
  • 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
  • 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
  • ext4
    • système de journalisation
    • sécurité locale
    • support des quotas
    • robuste
    • le standard actuel pour les systèmes de fichiers Linux
    • taille maxi 16 TiO
  • xfs
    • développé par Silicon Graphics
    • très robuste
    • bonnes perormances
    • choisi par Redhat comme SF de base
  • 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, …

fichier /etc/passwd :

adupont:x:1000:1000:Albert Dupont,,,:/home/adupont:/bin/bash
  • 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
  • sous Windows, le groupe Administrateurs dispose de l'ensemble des droits d'administration
  • on dispose de groupes équivalents sous Linux (root, admin, …)
  • 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 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 ,…)
  • ligne de commande : CLI (command Line Interface)
  • interface graphique avec la souris
  • * historiquement mode texte (25 lignes x 80 colonnes) en “ligne de commande
    • efficace mais austère et peu conviviale : peu adaptée au grand public et domaine d'utilisation un peu restreint
    • 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 (Gnome, Kde, xfce, Lxde, …)
    • Windows (depuis) Windows 1.0
  • à 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 forte montée en puissance des terminaux mobile conduit à développer des SE spécifiques comme :
    • Android
    • IOS (Apple).
  • Ils sont souvent basés sur Linux (Android) et disposent de bibliothèques spécifiques pour gérer les écrans tactiles, les circuits liés à la téléphonie.
  • Logiciel libres / Logiciel Open Source : logiciel dont les sources sont publiques
  • Richard Stallman, fondateur de la Free Software Fundation (FSF) est à l'origine de la GPL pour protéger ses développements (compilateur C gcc et editeur Emacs)

General Public Licence (Licence Publique Générale). Elle garantit :

  • la liberté d'exécuter le logiciel, pour n'importe quel usage
  • la liberté d'étudier le fonctionnement d'un programme et de l'adapter à ses besoins, ce qui passe par l'accès aux codes sources ; la liberté de redistribuer des copies ;
  • la liberté d'améliorer le programme et de rendre publiques les modifications afin que l'ensemble de la communauté en bénéficie.

La GPL a un caractère viral : un logiciel développé à partir de logiciel en GPL est également en GPL

  • écosystème très riche
  • quelques fleurons : noyau Linux, Apache, mysql/mariadb, php, de très nombreuses briques d'infrastructure de l'internet
  • 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, 8, 8.1, 10
  • famille serveur
    • Windows NT server 3.5, 4.0 (1996)
    • Windows 2000 Server
    • Windows 2003, 2008 Server, 2012, 2016
  • Linux depuis 1991 (distributions Debian, Ubuntu, Redhat, Centos, Suse, …)
  • famille BSD -
    • NetBSD
    • OpenBSD
    • FreeBSD,
  • Mac/OS
  • AIX (IBM)
  • Solaris (Sun)
  • HP/UX (HP)
  • depuis 1991 Linus Torvalds
  • derniere version : 5.13 - ~ 25 M de lignes de code
  • env. un millier de développeurs
  • licence GPL
  • 64 bits ou 32 bits
  • sur les box internet, les GPS, le téléphones portables, les PC jusqu'au mainframe
  • Une distribution est un ensemble logiciel (à l'origine sur CD/DVD) permettant d'installer Linux.
  • Elle est élaborée par un éditeur ou une association/projet
  • peut être gratuite ou payante
  • Les distributions sont très nombreuses mais celles couramment utilisées sont en petit nombre.
  • 2 grandes familles :
    • Redhat/Fedora/Centos
    • Debian/Ubuntu
  • Le leader historique en matière de distribution Linux : c'est la référence
  • emploie de nombreux développeurs du noyau
  • à l'origine de nombreuses avancées technologiques (paquetages RPM, …)
  • bonne santé financière
  • l'offre :
    • RedHat Entreprise Linux(commercial)
    • Fedora Core : distrib. communautaire
    • Centos : base RHEL recompilée : gratuite sans support …
  • distribution communautaire
  • communauté active
  • stable, sûre et efficace
  • plus de 20 000 paquet .deb
  • dernière version : 10 (Stretch)
    • 11 Bullseye (sortie courant juin 2021)
  • distribution commerciale basée sur la version testing (n+1) de Debian
  • plus grand public
  • support commercial
  • des choix techniques parfois incertains
  • 2 versions/an + LTS (Long Term Support tous les 2 ans) 20.04 Focal Fossa
  • dernière version : 21.04 (Hirsute Hippo)
  • s'assurer de disposer des ressources nécessaires
    • espace disque
    • mémoire (~ 1Go en mode texte, minimum 2 Go en mode graphique)
    • processeur
    • carte réseau
    • carte graphique
  • et du support d'installation : CD/DVD, clé USB, …
  • 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
  • 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.
  • 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, GRUB2
      • LILO
      • ntldr (Windows NT et XP)
      • winload.exe (Vista et suivants)
  • 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 …
  • diu-eil/se_-_generalites.txt
  • Dernière modification : 2021/06/10 22:35
  • de 127.0.0.1