وبلاگ بلیان

Splendeurs et servitudes des Systèmes d’exploitation - Histoire, fonctionnement, enjeux

معرفی کتاب «Splendeurs et servitudes des Systèmes d’exploitation - Histoire, fonctionnement, enjeux» نوشتهٔ Laurent Bloch، منتشرشده توسط نشر Laurent Bloch در سال 2020. این کتاب در فرمت pdf، زبان فرانسوی ارائه شده است.

voir : https://www.laurentbloch.net/MySpip3/Systeme-et-reseau-histoire-et-technique Depuis que l'ordinateur a investi la vie quotidienne, chacun découvre son compagnon invisible, immatériel, omniprésent et tyrannique : le système d'exploitation. Cette découverte déchaîne les passions parmi les aficionados de Windows, de macOS ou de Linux, et désormais d'Android et d'iOS. Mais peu ont conscience de l'extraordinaire complexité du système d'exploitation, sans doute une des réalisations techniques les plus ambitieuses de la troisième révolution industrielle, dont l'aventure se poursuit de plus belle. Ces passions sont d'autant plus vives que peu informées. S'il existe des ouvrages de vulgarisation pour expliquer le fonctionnement des ordinateurs, leur lecture est souvent frustrante parce qu'elle se limite au matériel, dont le comportement observable est en fait une représentation médiatisée par le système d'exploitation. Si l'utilisateur plus ou moins consentant d'un ordinateur veut comprendre ce qui se passe sur son écran c'est en fait le système d'exploitation qu'il faut expliquer. C'est un des objectifs de ce livre. Pour introduire le lecteur dans l'univers des systèmes d'exploitation, l'auteur parcourt les grands domaines que doit gérer un système : les processus, la mémoire, le temps, les entrées-sorties, les systèmes de fichiers, les interruptions, la sécurité, en les éclairant d'exemples empruntés à des systèmes actuels ou du passé. Cette visite historique se justifie par la constatation que derrière une extrême diversité extérieure des réalisations proposées à l'utilisateur les mécanismes choisis pour réaliser le cœur du système sont d'une grande similitude. Il est difficile de parler de système d'exploitation sans parler de réseau, de l'Internet, et il en est question. L'ouvrage s'adresse au public sans cesse croissant qui, possédant un ordinateur, souhaite aller au-delà de son fonctionnement immédiat. Ce livre ne demande pas de formation scientifique et technique, même s'il s'adresse à des lecteurs prêts à un certain efforts. Bien sûr, l'usage quotidien d'un ordinateur aidera à comprendre les phénomènes exposés. Le lecteur, grâce à une meilleure compréhension des luttes économiques et politiques qui se livrent autour d'enjeux en apparence purement techniques, devrait tirer de cette lecture une plus grande liberté face aux choix que lui impose le système technique contemporain, au cœur de la Révolution cyberindustrielle. Préface de Christian Queinnec Avant-propos Présentation des personnages Mondanité des systèmes Quelques définitions La couche visible du système Une représentation : le modèle en couches L'informatique est (aussi) une science Architectures Enjeux d'une histoire Principe de fonctionnement de l'ordinateur Modèle de l'ordinateur Traitement de l'information Mémoire et action, données et programme À quoi ressemble le langage machine ? Premier programme Questions sur le programme Mot d'état de programme (PSW) Premier métalangage Vers un langage symbolique Adresses absolues, adresses relatives Assembleur, table des symboles Traduction de langages Comment cela démarre-t-il ? Quel est le rôle de la mémoire ? La machine de Turing Du système d'exploitation au processus Premiers essais Simultanéité et multiprogrammation Chronologie d'une entrée-sortie Notion de processus Réification du calcul Notion de sous-programme Points de vue sur les programmes Vision dynamique du programme : le processus Attributs du système d'exploitation Mode d'exécution privilégié Contrôle des programmes Contrôle de l'activité de tous les processus Monopole d'attribution des ressources Étreinte fatale Contrôle de la mémoire Contrôle des entrées-sorties Contrôle du temps Contrôle de l'arrêt et du démarrage de l'ordinateur Notion d'appel système Lancement d'un programme Shell Synchronisation de processus, interruption Demande d'entrée-sortie Interruption de fin d'entrée-sortie Ordonnancement de processus Stratégies d'ordonnancement Interruptions et exceptions Préemption Synchronisation de processus et sections critiques Atomicité des opérations Masquage des interruptions Verrouillage de la section critique Chronologie des premiers systèmes d'exploitation Mémoire Les problèmes à résoudre La mémoire du programme Les mots de mémoire Les adresses Noms et variables Protection de la mémoire Partage de mémoire en multiprogrammation Exemple : l'OS/360 Translation des programmes Mémoire virtuelle Insuffisance de la mémoire statique Organisation générale Pagination Espaces adresse Registres associatifs (Translation Lookaside Buffer, TLB) Tables de pages inverses Mémoire virtuelle segmentée Petite chronologie de la mémoire virtuelle Hiérarchie de mémoire Position du problème La technique du cache Cache mémoire Hiérarchie de mémoire : données numériques Mise en œuvre du cache Langage et mémoire Langages à mémoire statique Vecteur d'état d'un programme Langages à mémoire dynamique Allocation de mémoire sur la pile Allocation de mémoire sur le tas Gestion de la mémoire dynamique Mémoire d'un programme en cours d'exécution Persistance Mémoire auxiliaire Structure physique du disque magnétique Stockage SSD Visions de la mémoire auxiliaire Système de fichiers Structure du système de fichiers Unix Notion de système de fichiers La i-liste Répertoires de fichiers Création d'un système de fichiers Traitement de fichier Ouverture de fichier Fichiers, programmes, mémoire virtuelle Cache de disque Systèmes de fichiers en réseau : NFS, SANs et NAS Disques connectés directement aux serveurs Systèmes de fichiers en réseau Architecture SAN Architecture NAS Critique des fichiers ; systèmes persistants Reprise sur point de contrôle Réseaux Transmettre de l'information à distance Théorie de l'information Premières réalisations Un modèle pour les réseaux Couche 1, physique Notion de protocole Couche 2, liaison de données Notion d'adresse réseau Détection et correction d'erreur pour la couche 2 Découpage en trames (framing) Détection de trames endommagées Contrôle de flux Un exemple de liaison de données : Ethernet Couche 3, réseau Commutation de circuits Commutation de paquets Le protocole IP et l'Internet Organisation administrative de l'Internet Organisation topographique de l'Internet L'adresse et le datagramme IP Exception à l'unicité des adresses : traduction d'adresses (NAT) Le principe du standard téléphonique d'hôtel Adresses non routables Accéder à l'Internet sans adresse routable Réalisations Une solution, quelques problèmes Traduction de noms en adresses : le DNS Mécanisme de la couche IP Algorithmes de routage Calcul des tables de routage Reconfiguration en cas de coupure de liaison Problèmes de routage Nouvelles tendances IP En quoi IP est-il supérieur à X25 ? Invention de la transmission par paquets Commutation de circuits L'année charnière : 1972 Commutation de paquets Couche 4, transport TCP (Transmission Control Protocol) Connexion Modèle client-serveur et numéros de port Poignée de main en trois étapes (three-way handshake) Contrôle de flux et évitement de congestion UDP (User Datagram Protocol) Les téléphonistes contre-attaquent : ATM Promiscuité sur un réseau local Rappel sur les réseaux locaux Réseaux locaux virtuels (VLAN) Sécurité du réseau de campus : VLAN ou VPN ? Client–serveur ou pair à pair (peer to peer) ? Versatilité des protocoles pair à pair Définition et usage du pair à pair Problèmes à résoudre par le pair à pair Protection et sécurité Protection Un parangon de protection : Multics Les dispositifs de protection de Multics Sécurité Menaces, risques, vulnérabilités Principes de sécurité Chiffrement Chiffrement symétrique à clé secrète Naissance de la cryptographie informatique : Alan Turing Data Encryption Standard (DES) Diffie, Hellman et l'échange de clés Le problème de l'échange de clés Fondements mathématiques de l'algorithme Diffie-Hellman Mise en œuvre de l'algorithme Diffie-Hellman Le chiffrement asymétrique à clé publique Pretty Good Privacy (PGP) et signature L'attaque par le milieu (Man in the middle) Signature Usages du chiffrement : VPN Principes du réseau privé virtuel IPsec Autres réseaux privés virtuels Annuaire électronique et gestion de clés Sécurité d'un site en réseau Découpage et filtrage Les CERT (Computer Emergency Response Teams) Organisation des CERT Faut-il publier les failles de sécurité ? De Multics à Unix et au logiciel libre Un échec plein d'avenir Où l'on commence à rêver à Unix Les hommes d'Unix Introduction à la démarche unixienne Dissémination d'Unix Un système exigeant Naissance d'une communauté Le schisme Aux sources du logiciel libre Principes Préhistoire Précurseurs Économie du logiciel Concurrence monopolistique Économie du système d'exploitation Modèle du logiciel libre Une autre façon de faire du logiciel Linux Au-delà du modèle de von Neumann Architectures révolutionnaires SIMD (Single Instruction Multiple Data) Architectures cellulaires et systoliques MIMD (Multiple Instructions Multiple Data) Architectures réformistes Le pipe-line Principe du pipe-line Histoire et avenir du pipe-line Cycle de processeur, fréquence d'horloge Processeurs asynchrones Apport de performances par le pipe-line Limite du pipe-line : les branchements Limite du pipe-line : les interruptions RISC, CISC et pipe-line Architecture des ordinateurs, avant les microprocesseurs Apogée des architectures CISC Naissance de l'idée RISC Avènement des microprocesseurs RISC Résistance des architectures CISC L'avenir appartient-il au RISC ? Micro-code : le retour Super-scalaire Architecture VLIW (Very Long Instruction Word) Parallélisme explicite Élimination de branchements Optimisation des accès mémoire : chargement anticipé De la programmation VLIW Machines virtuelles et micro-noyaux Notion de machine virtuelle Émulation et machines virtuelles De CP/67 à VM/CMS Machines virtuelles langage : l'exemple Java Machines virtuelles système Que veut-on virtualiser ? Pratique des machines virtuelles Différents niveaux de virtualisation Administration d'un système informatique Administration d'un système virtuel éteint Déplacer une machine virtuelle dans le réseau Sur un réseau local Ethernet Dans un réseau IP avec du routage Combiner la couche 2 et la couche 3 ? Machines virtuelles applicatives Un logiciel, une VM, un OS sur mesure, compilés ensemble, en langage fonctionnel Unikernel : avantages et inconvénients MirageOS Informatique en nuage (Cloud Computing) Une véritable innovation technique Trois formes pour l'informatique en nuage Répartir les services en nuage grâce au DNS Les threads Séparer le fil d'exécution des ressources allouées Définition des threads Avantages procurés par les threads Implémentation des threads Threads en mode utilisateur Threads en mode noyau Inconvénients des threads Micro-noyaux Chorus Mach Eumel, L3, L4 Conclusion sur les micro-noyaux Micro-informatique Naissance et essor d'une industrie Quel système pour les micro-ordinateurs ? Élégie pour CP/M De MS-DOS à Windows Les années IBM et MS-DOS Le schisme entre OS/2 et Windows Windows NT et 95 Windows 2000, ses successeurs La saga des processeurs Intel Quand les microprocesseurs étaient du bricolage Accords de seconde source et offensive japonaise Comment l'industrie américaine fit face au Japon Le tournant du 386 Fin des accords de seconde source Fin de l'intégration verticale Conversion silencieuse à l'architecture RISC Une alternative : MacOS Autre alternative : Unix Le micrologiciel (firmware) Sous le système, le micrologiciel Dispositif d'amorçage du système UEFI pour remplacer le BIOS Le logiciel d'amorçage GNU GRUB Installation de GRUB Partition du disque Installer Linux tout seul sur un disque Installer Linux à côté d'un Windows existant La face obscure de l'architecture x86 Système d'exploitation souterrain Multiples sous-systèmes en micro-code Intel Management Engine (ME) ME partout et pour tout ? Et si ME était corrompu ? Idées pour un système plus sûr Conclusion Numération binaire Définitions Petits exemples binaires Conversion entre bases quelconques Représentation informatique des nombres entiers Notation hexadécimale Types fractionnaires Les « réels » Principe de représentation Exemple Semi-conducteurs et circuits logiques Transistor Algèbre de Boole Réalisation des opérations booléennes Circuit NON Circuit OU Circuit ET Complétude de cette réalisation Construction de l'arithmétique Construction de la mémoire Universitaires et ingénieurs avant et après Unix Avant l’informatique Algol et Multics Algol Multics, un système intelligent Avenir de Multics Unix Les auteurs d’Unix Unix occupe le terrain Inélégances du langage C Élégance d’Unix Index Bibliographie
دانلود کتاب Splendeurs et servitudes des Systèmes d’exploitation - Histoire, fonctionnement, enjeux