Les systèmes d'exploitation
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
Schéma de principe
Typologie - 1
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, …)
Typologie - 2
Les composants
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, …
Les appels système
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 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
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 :
les autres programmes non fondamentaux (Firefox, LibreOffice, …) comme ceux lancés par l'utilisateur fonctionnent en mode user
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 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 :
Les pilotes
Les disques
Les 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
LVM et disques dynamiques
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
ces outils s'appelent
ils mettent en oeuvre les concepts de volumes logiques, volumes physiques, volume group
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
Les systèmes de fichiers - suite
Les systèmes de fichiers - FAT
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 - ext4 - xfs
Les utilisateurs et l'authentification
fichier /etc/passwd :
adupont:x:1000:1000:Albert Dupont,,,:/home/adupont:/bin/bash
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
sous Windows, le groupe Administrateurs dispose de l'ensemble des droits d'administration
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
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
Interface utilisateur : CLI
Interface utilisateur : graphique avec souris
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
Les SE et le terminaux portables
la forte montée en puissance des terminaux mobile conduit à développer des SE spécifiques comme :
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.
Systèmes d'exploitation propriétaires / libres
La GPL
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
Les logiciels libres
écosystème très riche
quelques fleurons : noyau Linux, Apache, mysql/mariadb, php, de très nombreuses briques d'infrastructure de l'internet
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, 8, 8.1, 10
La famille Microsoft - suite
famille serveur
Windows NT server 3.5, 4.0 (1996)
Windows 2000 Server
Windows 2003, 2008 Server, 2012, 2016
La famille Unix/Linux
Linux depuis 1991 (distributions Debian, Ubuntu, Redhat, Centos, Suse, …)
famille BSD -
-
AIX (IBM)
Solaris (Sun)
HP/UX (HP)
Linux
depuis 1991 Linus Torvalds
derniere version : 5.13 - ~ 25 M de lignes de code
env. un millier de développeurs
-
64 bits ou 32 bits
sur les box internet, les GPS, le téléphones portables, les PC jusqu'au mainframe
Les distributions Linux
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
Redhat
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 …
Debian
distribution communautaire
communauté active
stable, sûre et efficace
plus de 20 000 paquet .deb
dernière version : 10 (Stretch)
Ubuntu
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)
Installation
s'assurer de disposer des ressources nécessaires
et du support d'installation : CD/DVD, clé USB, …
Installation - 2
Démarrage
MBR : Master Boot Record
ou zone amorce : premier secteur d'un disque dur - 512 octets
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
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 …