Systèmes d’exploitation
Partie 1 : Introduction, Généralités
Éric Würbel
IUT R & T 1reannée
Systèmes d’exploitation
> Plan
Plan
1 Généralités
2 Architecture matérielle
3 Fonctions de base du système d’exploitation
4 Historique
5 Unix/Linux
Systèmes d’exploitation
> Généralités
Plan
1 Généralités
2 Architecture matérielle
3 Fonctions de base du système d’exploitation
4 Historique
5 Unix/Linux
Systèmes d’exploitation
> Généralités
Objectifs
I Un système d’exploitation, qu’est-ce que c’est ?
I Historique
I Les différents composants d’un système d’exploitation I GNU/Linux
Systèmes d’exploitation
> Généralités
Objectifs
I Un système d’exploitation, qu’est-ce que c’est ? I Historique
I Les différents composants d’un système d’exploitation I GNU/Linux
Systèmes d’exploitation
> Généralités
Objectifs
I Un système d’exploitation, qu’est-ce que c’est ? I Historique
I Les différents composants d’un système d’exploitation
I GNU/Linux
Systèmes d’exploitation
> Généralités
Objectifs
I Un système d’exploitation, qu’est-ce que c’est ? I Historique
I Les différents composants d’un système d’exploitation I GNU/Linux
Systèmes d’exploitation
> Généralités
Définition
Définition
Le système d’exploitation contrôle les ressources de l’ordinateur, et fournit la base sur laquelle seront construits les programmes d’application.
Deux tâches sans rapport l’une avec l’autre :
I soustraire le matériel au regard du programmeur I gérer les ressources
Systèmes d’exploitation
> Généralités
Définition
Définition
Le système d’exploitation contrôle les ressources de l’ordinateur, et fournit la base sur laquelle seront construits les programmes d’application.
Deux tâches sans rapport l’une avec l’autre :
I soustraire le matériel au regard du programmeur
I gérer les ressources
Systèmes d’exploitation
> Généralités
Définition
Définition
Le système d’exploitation contrôle les ressources de l’ordinateur, et fournit la base sur laquelle seront construits les programmes d’application.
Deux tâches sans rapport l’une avec l’autre :
I soustraire le matériel au regard du programmeur I gérer les ressources
Systèmes d’exploitation
> Généralités
Présentation générale Utilisateur
Logiciel
Développeur
Interface de programmation (API)
Système d’exploitation
Matériel (ordinateur)
Systèmes d’exploitation
> Généralités
Définition (Programme)
Un programme est une séquence d’instructionsqui spécifie étape par étape les opérationsà effectuer pour obtenir un résultat.
Définition (Logiciel)
Ensemble composé d’un ou plusieurs pogrammes, ainsi que les fichiers nécessaires pour les rendres opérationnels.
I Le système d’exploitation est donc un logiciel particulier.
Systèmes d’exploitation
> Architecture matérielle
Plan
1 Généralités
2 Architecture matérielle
3 Fonctions de base du système d’exploitation
4 Historique
5 Unix/Linux
Systèmes d’exploitation
> Architecture matérielle
Ordinateur (représentation simplifiée)
Processeur (CPU)
Mémoire centrale
Écran Disque
Clavier
bus
Systèmes d’exploitation
> Architecture matérielle
Ordinateur (représentation simplifiée)
Écran Disque
Clavier
bus
Processeur (CPU)
Mémoire centrale
Un calcul de base
Systèmes d’exploitation
> Architecture matérielle
Ordinateur (représentation simplifiée)
Mémoire centrale
Écran Disque
Clavier
bus
Processeur (CPU)
Un calcul de base
Systèmes d’exploitation
> Architecture matérielle
Ordinateur (représentation simplifiée)
Écran Disque
Clavier
bus
Processeur (CPU)
Mémoire centrale
Un calcul de base
Systèmes d’exploitation
> Architecture matérielle
Ordinateur (représentation simplifiée)
Processeur (CPU)
Mémoire centrale
Écran Disque
Clavier
bus
Systèmes d’exploitation
> Architecture matérielle
Ordinateur (représentation simplifiée)
Mémoire centrale
Écran
Clavier
bus
Processeur (CPU)
Disque
Charger des données
Systèmes d’exploitation
> Architecture matérielle
Ordinateur (représentation simplifiée)
Processeur (CPU)
Mémoire centrale
Écran
Clavier
bus
Disque
Charger des données
Systèmes d’exploitation
> Architecture matérielle
Ordinateur (représentation simplifiée)
Processeur (CPU)
Écran
Clavier
bus
Mémoire centrale
Disque
Charger des données
Systèmes d’exploitation
> Architecture matérielle
Ordinateur (représentation simplifiée)
Processeur (CPU)
Mémoire centrale
Écran Disque
Clavier
bus
Systèmes d’exploitation
> Architecture matérielle
Ordinateur (représentation simplifiée)
Mémoire centrale
Écran Disque
bus
Processeur
(CPU) Clavier
Gérer des Entrées/Sorties
Systèmes d’exploitation
> Architecture matérielle
Ordinateur (représentation simplifiée)
Mémoire centrale
Écran Disque
Clavier
bus
Processeur (CPU)
Gérer des Entrées/Sorties
Systèmes d’exploitation
> Architecture matérielle
Ordinateur (représentation simplifiée)
Écran Disque
Clavier
bus
Processeur (CPU)
Mémoire centrale
Gérer des Entrées/Sorties
Systèmes d’exploitation
> Architecture matérielle
Ordinateur (représentation simplifiée)
Mémoire centrale
Disque
Clavier
bus
Processeur (CPU)
Écran
Gérer des Entrées/Sorties
Systèmes d’exploitation
> Architecture matérielle
Microprocesseur (I)
Processeur
Registres
Unité de
commande UAL
Contrôleur
de bus Mémoire
Disque dur
Clavier .. .
Systèmes d’exploitation
> Architecture matérielle
Microprocesseur (I)
Processeur
Registres
Unité de
commande UAL
Contrôleur
de bus Mémoire
Disque dur
Clavier .. .
Registres : emplacements mémoire internes au processeur.
Systèmes d’exploitation
> Architecture matérielle
Microprocesseur (I)
Processeur
Registres
Unité de
commande UAL
Contrôleur
de bus Mémoire
Disque dur
Clavier .. .
Unité de commande : chargée de l’enchainement des opérations dans le
Systèmes d’exploitation
> Architecture matérielle
Microprocesseur (I)
Processeur
Registres
Unité de
commande UAL
Contrôleur
de bus Mémoire
Disque dur
Clavier .. .
UAL (unité arithmétique et logique) : Unité de calcul (opérations arith-
Systèmes d’exploitation
> Architecture matérielle
Microprocesseur (II)
Mémoire centrale
Registres Unité de commande
UAL
3 1
2
Interaction des éléments d’un microprocesseur
1. L’unité de commande (UC) active certains registres pour :
I Lireen mémoire I Écrireen mémoire
I Transférer des donnéesvers l’UAL
I Transférer des donnéesdepuis l’UAL
2. L’UC commande l’action de l’UAL 3. L’état des registres permet de
choisir la prochaine commande
Systèmes d’exploitation
> Architecture matérielle
Microprocesseur (III)
Chargement – Décodage – Exécution
Répéter indéfiniment (tant que le processeur est alimenté) : 1. Récupérer l’instruction couranteen mémoire
2. Modifier la valeur ducompteur ordinal pour qu’il désigne la prochaine instruction
3. Si besoin, localiser un mot en mémoire(donnée/prog.) (charger le registre d’adresse)
4. Si besoin, charger le mot mémoiredans un registre de données 5. Exécuter l’instruction
Systèmes d’exploitation
> Architecture matérielle
Microprocesseur (IV)
Exemples d’instructions
I instructions dedéplacement de données (entre les registres ou entre la mémoire et les registres)
I manipulation de lapile(mettre une donnée sur la pile, enlever une donnée de la pile)
I instructionsarithmétiques etlogiques, addition, soustraction, et, ou, négation,. . .
I sautset boucles I appels de fonctions
Systèmes d’exploitation
> Architecture matérielle
Microprocesseur (IV)
Exemples d’instructions
I instructions dedéplacement de données (entre les registres ou entre la mémoire et les registres)
I manipulation de lapile(mettre une donnée sur la pile, enlever une donnée de la pile)
I instructionsarithmétiques etlogiques, addition, soustraction, et, ou, négation,. . .
I sautset boucles I appels de fonctions
Systèmes d’exploitation
> Architecture matérielle
Microprocesseur (IV)
Exemples d’instructions
I instructions dedéplacement de données (entre les registres ou entre la mémoire et les registres)
I manipulation de lapile(mettre une donnée sur la pile, enlever une donnée de la pile)
I instructionsarithmétiques etlogiques, addition, soustraction, et, ou, négation,. . .
I sautset boucles I appels de fonctions
Systèmes d’exploitation
> Architecture matérielle
Microprocesseur (IV)
Exemples d’instructions
I instructions dedéplacement de données (entre les registres ou entre la mémoire et les registres)
I manipulation de lapile(mettre une donnée sur la pile, enlever une donnée de la pile)
I instructionsarithmétiqueset logiques, addition, soustraction, et, ou, négation,. . .
I sautset boucles I appels de fonctions
Systèmes d’exploitation
> Architecture matérielle
Microprocesseur (IV)
Exemples d’instructions
I instructions dedéplacement de données (entre les registres ou entre la mémoire et les registres)
I manipulation de lapile(mettre une donnée sur la pile, enlever une donnée de la pile)
I instructionsarithmétiqueset logiques, addition, soustraction, et, ou, négation,. . .
I sautset boucles
I appels de fonctions
Systèmes d’exploitation
> Architecture matérielle
Microprocesseur (IV)
Exemples d’instructions
I instructions dedéplacement de données (entre les registres ou entre la mémoire et les registres)
I manipulation de lapile(mettre une donnée sur la pile, enlever une donnée de la pile)
I instructionsarithmétiqueset logiques, addition, soustraction, et, ou, négation,. . .
I sautset boucles I appels de fonctions
Systèmes d’exploitation
> Fonctions de base du système d’exploitation
Plan
1 Généralités
2 Architecture matérielle
3 Fonctions de base du système d’exploitation
4 Historique
5 Unix/Linux
Systèmes d’exploitation
> Fonctions de base du système d’exploitation
Fonctions du système d’exploitation
I Permettre l’utilisation des périphériques
I Gérer lesressources (processeur, mémoire, périphériques) : droits d’accès, partage d’accès
I Gérer le stockage(volatile : mémoire vive, persistant : fichiers) I Gérer l’exécution des programmes
Systèmes d’exploitation
> Fonctions de base du système d’exploitation
Fonctions du système d’exploitation
I Permettre l’utilisation des périphériques
I Gérer lesressources(processeur, mémoire, périphériques) : droits d’accès, partage d’accès
I Gérer le stockage(volatile : mémoire vive, persistant : fichiers) I Gérer l’exécution des programmes
Systèmes d’exploitation
> Fonctions de base du système d’exploitation
Fonctions du système d’exploitation
I Permettre l’utilisation des périphériques
I Gérer lesressources(processeur, mémoire, périphériques) : droits d’accès, partage d’accès
I Gérer le stockage(volatile : mémoire vive, persistant : fichiers)
I Gérer l’exécution des programmes
Systèmes d’exploitation
> Fonctions de base du système d’exploitation
Fonctions du système d’exploitation
I Permettre l’utilisation des périphériques
I Gérer lesressources(processeur, mémoire, périphériques) : droits d’accès, partage d’accès
I Gérer le stockage(volatile : mémoire vive, persistant : fichiers) I Gérer l’exécution des programmes
Systèmes d’exploitation
> Fonctions de base du système d’exploitation
Architecture générale (système monolithique) Noyau (Kernel)
Partie centrale du système.
I Réside en mémoire vive
I Inaccessible aux autres programmes
I Assure les fonctions de base (accès aux fichiers, à la mémoire, au processeur)
I Peut être étendu par des pilotes de périphérique (drivers)
Fonctions utilisateur
Ensemble de programmes complétant le système.
I Interpréteur de commandes
I Commandes de base (accès aux fichiers, aux processus, à certains périphériques. . . )
Systèmes d’exploitation
> Fonctions de base du système d’exploitation
Architecture générale (système monolithique) Noyau (Kernel)
Partie centrale du système.
I Réside en mémoire vive
I Inaccessible aux autres programmes
I Assure les fonctions de base (accès aux fichiers, à la mémoire, au processeur)
I Peut être étendu par des pilotes de périphérique (drivers)
Fonctions utilisateur
Ensemble de programmes complétant le système.
I Interpréteur de commandes
I Commandes de base (accès aux fichiers, aux processus, à certains périphériques. . . )
Systèmes d’exploitation
> Fonctions de base du système d’exploitation
Architecture générale (système monolithique) Noyau (Kernel)
Partie centrale du système.
I Réside en mémoire vive
I Inaccessible aux autres programmes
I Assure les fonctions de base (accès aux fichiers, à la mémoire, au processeur)
I Peut être étendu par des pilotes de périphérique (drivers)
Fonctions utilisateur
Ensemble de programmes complétant le système.
I Interpréteur de commandes
I Commandes de base (accès aux fichiers, aux processus, à certains périphériques. . . )
Systèmes d’exploitation
> Fonctions de base du système d’exploitation
Architecture générale (système monolithique) Noyau (Kernel)
Partie centrale du système.
I Réside en mémoire vive
I Inaccessible aux autres programmes
I Assure les fonctions de base (accès aux fichiers, à la mémoire, au processeur)
I Peut être étendu par des pilotes de périphérique (drivers)
Fonctions utilisateur
Ensemble de programmes complétant le système.
I Interpréteur de commandes
I Commandes de base (accès aux fichiers, aux processus, à certains périphériques. . . )
Systèmes d’exploitation
> Fonctions de base du système d’exploitation
Architecture générale (système monolithique) Noyau (Kernel)
Partie centrale du système.
I Réside en mémoire vive
I Inaccessible aux autres programmes
I Assure les fonctions de base (accès aux fichiers, à la mémoire, au processeur)
I Peut être étendu par des pilotes de périphérique (drivers)
Fonctions utilisateur
Ensemble de programmes complétant le système.
I Interpréteur de commandes
I Commandes de base (accès aux fichiers, aux processus, à certains périphériques. . . )
Systèmes d’exploitation
> Fonctions de base du système d’exploitation
Architecture générale (système monolithique) Noyau (Kernel)
Partie centrale du système.
I Réside en mémoire vive
I Inaccessible aux autres programmes
I Assure les fonctions de base (accès aux fichiers, à la mémoire, au processeur)
I Peut être étendu par des pilotes de périphérique (drivers)
Fonctions utilisateur
Ensemble de programmes complétant le système.
I Interpréteur de commandes
I Commandes de base (accès aux fichiers, aux processus, à certains périphériques. . . )
Systèmes d’exploitation
> Fonctions de base du système d’exploitation
Architecture générale (système monolithique) Noyau (Kernel)
Partie centrale du système.
I Réside en mémoire vive
I Inaccessible aux autres programmes
I Assure les fonctions de base (accès aux fichiers, à la mémoire, au processeur)
I Peut être étendu par des pilotes de périphérique (drivers)
Fonctions utilisateur
Ensemble de programmes complétant le système.
I Interpréteur de commandes
I Commandes de base (accès aux fichiers, aux processus, à certains périphériques. . . )
Systèmes d’exploitation
> Fonctions de base du système d’exploitation
Architecture générale (système monolithique) Noyau (Kernel)
Partie centrale du système.
I Réside en mémoire vive
I Inaccessible aux autres programmes
I Assure les fonctions de base (accès aux fichiers, à la mémoire, au processeur)
I Peut être étendu par des pilotes de périphérique (drivers)
Fonctions utilisateur
Ensemble de programmes complétant le système.
I Interpréteur de commandes
I Commandes de base (accès aux fichiers, aux processus, à certains
Systèmes d’exploitation
> Fonctions de base du système d’exploitation
Organisation de la mémoire centrale (schématique)
programme utilisateur 1 programme utilisateur 2
. . .
Noyau
Systèmes d’exploitation
> Fonctions de base du système d’exploitation
Organisation de la mémoire centrale (schématique)
programme utilisateur 1 programme utilisateur 2
. . .
Noyau
Exécutionenmodeutilisateur Exécutionenmodenoyau
Systèmes d’exploitation
> Fonctions de base du système d’exploitation
Organisation de la mémoire centrale (schématique)
programme utilisateur 1 programme utilisateur 2
. . .
Exécutionenmodeutilisateur Exécutionenmodenoyau
appel système
Systèmes d’exploitation
> Fonctions de base du système d’exploitation
Organisation de la mémoire centrale (schématique)
programme utilisateur 1 programme utilisateur 2
. . .
Exécutionenmodeutilisateur Exécutionenmodenoyau
appel système
table des appels système
Systèmes d’exploitation
> Fonctions de base du système d’exploitation
Organisation de la mémoire centrale (schématique)
programme utilisateur 1 programme utilisateur 2
. . .
Exécutionenmodeutilisateur Exécutionenmodenoyau
appel système
table des appels système
fonction système
Systèmes d’exploitation
> Fonctions de base du système d’exploitation
Organisation de la mémoire centrale (schématique)
programme utilisateur 1 programme utilisateur 2
. . .
Exécutionenmodeutilisateur Exécutionenmodenoyau
appel système
table des appels système
fonction système
retour
Systèmes d’exploitation
> Historique
Plan
1 Généralités
2 Architecture matérielle
3 Fonctions de base du système d’exploitation
4 Historique
5 Unix/Linux
Systèmes d’exploitation
> Historique
Traitement par lot
1950 1960 1970 1980 1990 2000 2010
Batchs
Systèmes d’exploitation
> Historique
Traitement par lot
1950 1960 1970 1980 1990 2000 2010
Batchs
Problème
I Données + Programme = fiches perforées(blanches) I Une tâche = Une manipulation(par un opérateur humain)
→ Configuration de l’ordinateur pour la tâche I Chargement des données
I Chargement du programme I Exécution
I Écriture des sorties sur l’imprimante I etc.
Systèmes d’exploitation
> Historique
Traitement par lot
1950 1960 1970 1980 1990 2000 2010
Batchs
Fiche de traitement par lot (batch)
Décrire les opérations de manipulation par une fichier perforée (rouge) I Chargement des données
I Chargement du programme I Exécution
I Écriture des sorties sur l’imprimante I etc.
L’opérateur insère toutes les fiches
Systèmes d’exploitation
> Historique
Multiprogrammation
1950 1960 1970 1980 1990 2000 2010
Batchs
Multiprogrammation
Systèmes d’exploitation
> Historique
Multiprogrammation
1950 1960 1970 1980 1990 2000 2010
Batchs
Multiprogrammation
Problème
Un seul composant de l’ordinateur utilisé à la fois
→ On pourrait utiliser en parallèle le disque, l’imprimante, le processeur. . .
À condition de munir chacun d’une petite mémoire vive locale (cache)
Systèmes d’exploitation
> Historique
Multiprogrammation
1950 1960 1970 1980 1990 2000 2010
Batchs
Multiprogrammation
Mémoire centrale
Écran
Clavier
bus
Processeur (CPU)
Disque
Systèmes d’exploitation
> Historique
Multiprogrammation
1950 1960 1970 1980 1990 2000 2010
Batchs
Multiprogrammation
Écran
Clavier
bus
Processeur (CPU)
Mémoire centrale
Disque
Systèmes d’exploitation
> Historique
Multiprogrammation
1950 1960 1970 1980 1990 2000 2010
Batchs
Multiprogrammation
Écran
Clavier
bus
Processeur (CPU)
Mémoire centrale
Disque
Systèmes d’exploitation
> Historique
Multiprogrammation
1950 1960 1970 1980 1990 2000 2010
Batchs
Multiprogrammation
Mémoire centrale
Disque
Clavier
bus
Processeur (CPU)
Écran
Systèmes d’exploitation
> Historique
Multiprogrammation
1950 1960 1970 1980 1990 2000 2010
Batchs
Multiprogrammation
Multiprogrammation
Utiliser plusieurs composants en parallèle
I Gestion de la priorité (quel processus accède à quelle ressource) I Mémoire partagée (stocker les données de plusieurs processus en
mémoire centrale) Exemple : MULTICS (1965)
Systèmes d’exploitation
> Historique
Temps partagé
1950 1960 1970 1980 1990 2000 2010
Batchs
Multiprogrammation Temps partagé
Les fiches perforées, c’est fini. . . Problème
Certains processus sont longs : les mettre en pausepour permettre à des processus plus petits d’accéder au processeurtout de suite.
→ Plusieurs processus se partageraient le processeur!
Systèmes d’exploitation
> Historique
Temps partagé
1950 1960 1970 1980 1990 2000 2010
Batchs
Multiprogrammation Temps partagé
Écran Disque
Clavier
bus
Processeur (CPU)
Systèmes d’exploitation
> Historique
Temps partagé
1950 1960 1970 1980 1990 2000 2010
Batchs
Multiprogrammation Temps partagé
Écran Disque
Clavier
bus
Processeur (CPU)
Systèmes d’exploitation
> Historique
Temps partagé
1950 1960 1970 1980 1990 2000 2010
Batchs
Multiprogrammation Temps partagé
Écran Disque
Clavier
bus
Processeur (CPU)
Systèmes d’exploitation
> Historique
Temps partagé
1950 1960 1970 1980 1990 2000 2010
Batchs
Multiprogrammation Temps partagé
Écran Disque
Clavier
bus
Processeur (CPU)
Systèmes d’exploitation
> Historique
Temps partagé
1950 1960 1970 1980 1990 2000 2010
Batchs
Multiprogrammation Temps partagé
Écran Disque
Clavier
bus
Processeur (CPU)
Systèmes d’exploitation
> Historique
Temps partagé
1950 1960 1970 1980 1990 2000 2010
Batchs
Multiprogrammation Temps partagé
Temps partagé
Plusieurs processus actifs alternent sur le processeur : I Gestion des interruptions
I Cycle de vie d’un processus
I Synchronisation de processus, programmation concurrente Exemple : UNICS (1969)−→ UNIX
Systèmes d’exploitation
> Historique
Temps réel
1950 1960 1970 1980 1990 2000 2010
Batchs
Multiprogrammation
Temps partagé Temps réel
Années 80–90
Gestion des délais : contraintes de temps de réponse
I Apparition des micro-ordinateurs (Ex. : CP/M, puis MS/DOS) I Apparition des interfaces graphiques
I Xerox Apple Lisa, puis Macintosh (1984) I Windows (2.0, puis 3.1, puis Windows 95) I Linux + X-Windows (1991)
Systèmes d’exploitation
> Historique
Systèmes réseau & répartis (I)
1950 1960 1970 1980 1990 2000 2010
Batchs
Multiprogrammation
Temps partagé Temps réel
Systèmes réseau & répartis
Années 80–90 — systèmes réseau
Les ordinateurs comminiquent pour échanger des données.
I Arpanet, 1967 (DARPA)
I E-mail, 1972 (Ray Tommlinsonn) I TCP/IP (1972)
I Client-Serveur années 80. Ex : NFS (Sun, 1984)
I Arpanet ouvert fin 80, Web début 90 (CERN, Tim Berner-Lee)
Systèmes d’exploitation
> Historique
Systèmes réseau & répartis
1950 1960 1970 1980 1990 2000 2010
Batchs
Multiprogrammation
Temps partagé Temps réel
Systèmes réseau & répartis
Années 80–90 — systèmes répartis
I Le système apparait comme un système traditionnel à l’utilisateur. . . I . . . mais il est composé de plusieurs ordinateurs physiques
I Les programmes s’exécutent n’importe où I Les fichiers résident n’importe où
I Plan9 (Bell labs, fin 80), Amoeba (Andrew Tanenbaum, fin 80)
Systèmes d’exploitation
> Historique
Smartphones
1950 1960 1970 1980 1990 2000 2010
Batchs
Multiprogrammation
Temps partagé Temps réel
Systèmes réseau & répartis Smartphones
Smartphones
Les ordinateurs de poche existent depuis les années 80 (ex : PalmOS, 1996)
I 2007 : iphone (iOS)
I 2008 : OS android (noyau linux)
I 2016 : 1.5 milliards de smartphones vendus
Systèmes d’exploitation
> Unix/Linux
Plan
1 Généralités
2 Architecture matérielle
3 Fonctions de base du système d’exploitation
4 Historique
5 Unix/Linux
Systèmes d’exploitation
> Unix/Linux
1969–1979 — Création d’UNIX
I Été 1969 : version expérimentale (Ken Thompson, Bell labs) : système de fichiers, environnementmono-utilisateur,multitâches.
I 1974 : Distribution aux universités (Berkeley & Columbia notamment)
I Système de fichiers modulaire et simple
I Interface unifiée d’accès aux périphériques (à travers le système de fichiers)
I Interpréteur de commandes souple et interchangeable
Systèmes d’exploitation
> Unix/Linux
1979–1984 — Commercialisation
I 1979 : version 7 d’UNIX. Microport (1985) et Xenix-Microsoft achètent les sources et le droit de distribution.
I 1979–1984 : apparition de variantes avec noyaux réécrits. Portage vers différentes plateformes :
I VAX I PDP-11 I HP-UX
Systèmes d’exploitation
> Unix/Linux
1984–1993 — Standardisation
I 1984 : système V.2 : adopté comme standard. Consortium X/Open chargé d’organiser la portabilité d’UNIX.
I 1985 : AT&T publie SVID (System V Interface Definition) : définition de l’interface applicative du système et non son implantation
I 1986 : premiers pas vers un système distribué (flux, bibliothèques partagées, accès distant au système de fichier).
I 1993 : COSE (Common Open Software Environment) : accord au sein de l’X/Open pour un environnement commun.
Systèmes d’exploitation
> Unix/Linux
1994–20xx — Linux & logiciel libre
I 1985 : SystèmeMinix (Andrew Tanenbaum) I 1991 : Linus Torvalds publieFreax, basé sur Minix.
I 1991 :Linux (nouveau nom de Freax) publié comme un noyau associé aux outils GNU (consortium de logiciels libres). Premières distributions. (SLS, Yggdrasil, MCC Iterim)
I 1994 : première version stable (1.0) du noyau
I Aujourd’hui : nombreuses distributions (Redhat, Debian, Ubuntu. . .) + utilisation du noyau linux dans d’autres contextes que le PC (Android, Raspberry. . .).
Systèmes d’exploitation
> Unix/Linux
Caractéristiques
Multi-tâches, multi-utilisateurs
I Plusieurs utilisateurs peuvent lancer simultanément plusieurs programmes
I Chaque programme s’exécute dans un environnement propre et séparé
I Exécution des programmes protégée, synchronisée, et acceptant des communications inter-programmes
I Capacité d’exécution de programmes temps-réel
Systèmes d’exploitation
> Unix/Linux
Caractéristiques
Périphériques, Entrées/Sorties I Arborescence unique de fichiers
/
/home /usr
/usr/lib
/dev /dev/lp0 I Tout périphérique est un fichier
I Communication inter-programme via des fichiers
Systèmes d’exploitation
> Unix/Linux
Intérêt
Gratuité, open-source I Noyau libre I Applications GNU Modularité
I Réponse aux besoins spécifiques (noyau recompilable) I Extensibilité
Multiplateforme
I à la base de nombreux systèmes (Android,. . .)