Splendeurs Et Servitudes Des Systèmes D'exploitation

Splendeurs Et Servitudes Des Systèmes D'exploitation

Splendeurs et servitudes des Systèmes d’exploitation Histoire, fonctionnement, enjeux Laurent Bloch 27 juillet 2020 ii Du même auteur Initiation à la programmation et aux algorithmes – Avec Python, Technip éd., 2020 Initiation à la programmation et aux algorithmes – Avec Scheme, Technip éd., 2020 Révolution cyberindustrielle en France, Economica éd., 2015 Sécurité informatique – Pour les DSI, RSSI et administrateurs, Eyrolles éd., 5ème édition, 2016 La pensée aux prises avec l’informatique – Systèmes d’information, Laurent Bloch éd., 2017 L’Internet, vecteur de puissance des États-Unis ? - Géopolitique du cyberespace, nouvel espace stratégique, Diploweb éd., 2017 Site Web de l’auteur (comporte des documents complémentaires) https://laurentbloch.net © copyright Laurent Bloch éd. Paris, dépôt légal août 2020 Table des matières Préface de Christian Queinnec 1 Avant-propos 3 1 Présentation des personnages 10 1.1 Mondanité des systèmes ................... 10 1.2 Quelques définitions ..................... 12 1.3 La couche visible du système . 14 1.4 Une représentation : le modèle en couches . 14 1.5 L’informatique est (aussi) une science . 17 1.6 Architectures ......................... 18 1.7 Enjeux d’une histoire ..................... 19 2 Principe de fonctionnement de l’ordinateur 22 2.1 Modèle de l’ordinateur .................... 23 2.2 Traitement de l’information . 27 2.3 Mémoire et action, données et programme . 29 2.4 À quoi ressemble le langage machine ? . 30 2.4.1 Premier programme . 30 2.4.2 Questions sur le programme . 32 2.5 Mot d’état de programme (PSW) . 33 2.6 Premier métalangage ..................... 34 2.6.1 Vers un langage symbolique . 34 2.6.2 Adresses absolues, adresses relatives . 35 2.6.3 Assembleur, table des symboles . 36 2.6.4 Traduction de langages . 37 2.7 Comment cela démarre-t-il ? . 37 2.8 Quel est le rôle de la mémoire ? . 39 2.9 La machine de Turing .................... 40 TABLE DES MATIÈRES iv 3 Du système d’exploitation au processus 44 3.1 Premiers essais ........................ 45 3.2 Simultanéité et multiprogrammation . 47 3.2.1 Chronologie d’une entrée-sortie . 48 3.3 Notion de processus ..................... 49 3.4 Réification du calcul ..................... 50 3.5 Notion de sous-programme . 52 3.6 Points de vue sur les programmes . 54 3.7 Vision dynamique du programme : le processus . 54 3.8 Attributs du système d’exploitation . 55 3.8.1 Mode d’exécution privilégié . 56 3.8.2 Contrôle des programmes . 56 3.8.3 Contrôle de l’activité de tous les processus . 56 3.8.4 Monopole d’attribution des ressources . 57 3.8.4.1 Étreinte fatale . 57 3.8.5 Contrôle de la mémoire . 57 3.8.6 Contrôle des entrées-sorties . 58 3.8.7 Contrôle du temps . 59 3.8.8 Contrôle de l’arrêt et du démarrage de l’ordinateur 59 3.9 Notion d’appel système ................... 59 3.10 Lancement d’un programme . 60 3.10.1 Shell .......................... 61 3.11 Synchronisation de processus, interruption . 63 3.11.1 Demande d’entrée-sortie . 63 3.11.2 Interruption de fin d’entrée-sortie . 65 3.12 Ordonnancement de processus . 67 3.12.1 Stratégies d’ordonnancement . 68 3.12.2 Interruptions et exceptions . 69 3.12.3 Préemption ...................... 69 3.12.4 Synchronisation de processus et sections critiques . 70 3.12.4.1 Atomicité des opérations . 73 3.12.4.2 Masquage des interruptions . 74 3.12.4.3 Verrouillage de la section critique . 74 3.13 Chronologie des premiers systèmes d’exploitation . 76 4 Mémoire 79 4.1 Les problèmes à résoudre . 80 4.2 La mémoire du programme . 81 4.2.1 Les mots de mémoire . 81 4.2.2 Les adresses ...................... 82 TABLE DES MATIÈRES v 4.2.3 Noms et variables . 83 4.2.4 Protection de la mémoire . 85 4.3 Partage de mémoire en multiprogrammation . 86 4.3.1 Exemple : l’OS/360 . 86 4.3.2 Translation des programmes . 87 4.4 Mémoire virtuelle ....................... 89 4.4.1 Insuffisance de la mémoire statique . 89 4.4.2 Organisation générale . 90 4.4.3 Pagination ...................... 91 4.4.4 Espaces adresse .................... 95 4.4.5 Registres associatifs (Translation Lookaside Buffer, TLB) ......................... 98 4.4.6 Tables de pages inverses . 100 4.4.7 Mémoire virtuelle segmentée . 101 4.4.8 Petite chronologie de la mémoire virtuelle . 102 4.5 Hiérarchie de mémoire . 103 4.5.1 Position du problème . 103 4.6 La technique du cache . 104 4.6.1 Cache mémoire . 104 4.6.2 Hiérarchie de mémoire : données numériques . 106 4.6.3 Mise en œuvre du cache . 107 4.7 Langage et mémoire . 107 4.7.1 Langages à mémoire statique . 107 4.7.2 Vecteur d’état d’un programme . 108 4.7.3 Langages à mémoire dynamique . 109 4.7.3.1 Allocation de mémoire sur la pile . 110 4.7.3.2 Allocation de mémoire sur le tas . 111 4.7.3.3 Gestion de la mémoire dynamique . 112 4.7.4 Mémoire d’un programme en cours d’exécution . 113 5 Persistance 114 5.1 Mémoire auxiliaire . 115 5.1.1 Structure physique du disque magnétique . 116 5.1.2 Stockage SSD . 118 5.1.3 Visions de la mémoire auxiliaire . 119 5.2 Système de fichiers . 121 5.2.1 Structure du système de fichiers Unix . 122 5.2.1.1 Notion de système de fichiers . 122 5.2.1.2 La i-liste . 123 5.2.1.3 Répertoires de fichiers . 126 TABLE DES MATIÈRES vi 5.2.1.4 Création d’un système de fichiers . 129 5.2.2 Traitement de fichier . 132 5.2.2.1 Ouverture de fichier . 133 5.2.3 Fichiers, programmes, mémoire virtuelle . 133 5.2.4 Cache de disque . 134 5.3 Systèmes de fichiers en réseau : NFS, SANs et NAS . 136 5.3.1 Disques connectés directement aux serveurs . 136 5.3.2 Systèmes de fichiers en réseau . 137 5.3.3 Architecture SAN . 138 5.3.4 Architecture NAS . 139 5.4 Critique des fichiers ; systèmes persistants . 141 5.4.1 Reprise sur point de contrôle . 145 6 Réseaux 148 6.1 Transmettre de l’information à distance . 150 6.1.1 Théorie de l’information . 151 6.1.2 Premières réalisations . 153 6.1.3 Un modèle pour les réseaux . 153 6.2 Couche 1, physique . 155 6.3 Notion de protocole . 156 6.4 Couche 2, liaison de données . 157 6.4.1 Notion d’adresse réseau . 159 6.4.2 Détection et correction d’erreur pour la couche 2 . 160 6.4.2.1 Découpage en trames (framing) . 160 6.4.2.2 Détection de trames endommagées . 161 6.4.2.3 Contrôle de flux . 162 6.4.3 Un exemple de liaison de données : Ethernet . 165 6.5 Couche 3, réseau . 168 6.5.1 Commutation de circuits . 168 6.5.2 Commutation de paquets . 169 6.5.3 Le protocole IP et l’Internet . 173 6.5.3.1 Organisation administrative de l’Internet 175 6.5.3.2 Organisation topographique de l’Internet 176 6.5.3.3 L’adresse et le datagramme IP . 178 6.5.4 Exception à l’unicité des adresses : traduction d’adresses (NAT) . 183 6.5.4.1 Le principe du standard téléphonique d’hôtel . 183 6.5.4.2 Adresses non routables . 184 6.5.4.3 Accéder à l’Internet sans adresse routable 185 TABLE DES MATIÈRES vii 6.5.4.4 Réalisations . 185 6.5.5 Une solution, quelques problèmes . 188 6.5.6 Traduction de noms en adresses : le DNS . 189 6.5.7 Mécanisme de la couche IP . 194 6.5.7.1 Algorithmes de routage . 196 6.5.7.2 Calcul des tables de routage . 199 6.5.7.3 Reconfiguration en cas de coupure de liaison202 6.5.7.4 Problèmes de routage . 205 6.5.8 Nouvelles tendances IP . 207 6.5.9 En quoi IP est-il supérieur à X25 ? . 208 6.5.9.1 Invention de la transmission par paquets 208 6.5.9.2 Commutation de circuits . 209 6.5.9.3 L’année charnière : 1972 . 210 6.5.9.4 Commutation de paquets . 212 6.6 Couche 4, transport . 213 6.6.1 TCP (Transmission Control Protocol) . 213 6.6.1.1 Connexion . 214 6.6.1.2 Modèle client-serveur et numéros de port 214 6.6.1.3 Poignée de main en trois étapes (three- way handshake) . 215 6.6.1.4 Contrôle de flux et évitement de congestion216 6.6.2 UDP (User Datagram Protocol) . 217 6.7 Les téléphonistes contre-attaquent : ATM . 217 6.8 Promiscuité sur un réseau local . 219 6.8.1 Rappel sur les réseaux locaux . 220 6.8.2 Réseaux locaux virtuels (VLAN) . 221 6.8.3 Sécurité du réseau de campus : VLAN ou VPN ? . 222 6.9 Client–serveur ou pair à pair (peer to peer) ? . 223 6.10 Versatilité des protocoles pair à pair . 225 6.10.1 Définition et usage du pair à pair . 225 6.10.2 Problèmes à résoudre par le pair à pair . 226 7 Protection et sécurité 229 7.1 Protection . 230 7.1.1 Un parangon de protection : Multics . 232 7.1.1.1 Les dispositifs de protection de Multics . 232 7.2 Sécurité ............................ 234 7.2.1 Menaces, risques, vulnérabilités . 234 7.2.2 Principes de sécurité . 234 7.3 Chiffrement . 236 TABLE DES MATIÈRES viii 7.3.1 Chiffrement symétrique à clé secrète . 236 7.3.2 Naissance de la cryptographie informatique : Alan Turing . 237 7.3.3 Data Encryption Standard (DES) . 238 7.3.4 Diffie, Hellman et l’échange de clés .

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    474 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us