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 …