Système opérateur

Un article de Wikipédia, l'encyclopédie libre
Aller à la navigation Aller à la recherche
Relation entre le système d'exploitation, le matériel, le logiciel d'application et l'utilisateur
Part de marché des systèmes d'exploitation pour PC en Allemagne [1]

Un système d'exploitation , également appelé OS (de l'anglais operating system ), est une compilation de programmes informatiques qui gère les ressources système d'un ordinateur telles que la mémoire , les disques durs , les périphériques d'entrée et de sortie et met à leur disposition des programmes d'application. Le système d'exploitation constitue l' interface entre les composants matériels et le logiciel d'application de l'utilisateur. [2] Les systèmes d'exploitation consistent généralement en un noyau(Allemand : Kern), qui gère le matériel de l'ordinateur, ainsi que des programmes spéciaux qui effectuent différentes tâches au démarrage. Ces tâches incluent, mais sans s'y limiter, le chargement des pilotes de périphérique . Les systèmes d'exploitation peuvent être trouvés dans presque tous les types d'ordinateurs : en tant que systèmes d'exploitation en temps réel sur les ordinateurs de processus et les systèmes embarqués , sur les ordinateurs personnels , les tablettes , les smartphones et sur les systèmes multiprocesseurs plus grands tels que B. serveurs et ordinateurs centraux .

Les tâches d'un système d'exploitation peuvent être résumées comme suit : communication avec l'utilisateur ; Charger, exécuter, mettre en pause et quitter les programmes ; la gestion et l'allocation du temps processeur ; gestion de l'espace de stockage interne des applications ; Gestion et exploitation des appareils connectés ; fonctions de protection, par ex. B. par des restrictions d'accès . La pondération entre ces tâches a évolué au cours du temps, en particulier les fonctions de protection telles que la protection de la mémoire ou la limitation des droits d'utilisation ont aujourd'hui plus d'importance qu'elles ne l'étaient dans les années 1990. Cela rend les systèmes généralement plus robustes, par ex. B. le nombre de plantages du programme et du systèmeet rend également le système plus stable contre les attaques externes, telles que les virus informatiques .

Cet article traite du terme "système d'exploitation" principalement dans le contexte des "systèmes informatiques courants utilisés pour le traitement de l'information". De plus, les systèmes d'exploitation (avec éventuellement des fonctionnalités spécialisées) sont utilisés dans presque tous les appareils dans lesquels des logiciels sont exploités (tels que les ordinateurs de jeu , les téléphones portables , les systèmes de navigation , les machines du secteur de l' ingénierie mécanique et bien d'autres). Aussi de nombreux systèmes de contrôle (système embarqué) qui, par ex. B. dans les avions, les voitures, les trains ou les satellites, ont des systèmes d'exploitation spécialisés.

définitions et démarcation

Un système d'exploitation assume deux tâches essentielles qui ne sont fondamentalement pas directement liées l'une à l'autre [3] :

  • Une tâche consiste à fournir au programmeur d'application des abstractions propres des ressources (au lieu du matériel laid). Le système d'exploitation offre ainsi une interface plus facile à comprendre et plus maniable avec la machine réelle et « cache » la complexité de la machine sous-jacente : « L'interlocuteur du programmeur n'est donc plus la machine réelle, mais une machine virtuelle ( système d'exploitation), qui est beaucoup plus simple à comprendre et à programmer. » [4] Le système d'exploitation crée des objets abstraits afin de rendre la complexité gérable. Un exemple d'une telle abstraction est le fichier. Cela peut prendre la forme d'une photographie numérique , d'un message électronique enregistré ou d'un site Web , par exemple . C'est certainement plus facile à creuser que les détails du stockage sur disque dur . [5]
  • L'autre tâche consiste à gérer les ressources matérielles : "Un système d'exploitation doit assurer une allocation ordonnée et contrôlée des processeurs, des unités de mémoire et des périphériques entre les différents programmes qui se disputent ces ressources." [4] Le système d'exploitation ordonne et contrôle l' allocation des ressources. processeurs, mémoire et périphériques d'entrée/sortie et surveille quel programme utilise actuellement quelle ressource. Par exemple, s'il y a plusieurs travaux pour une imprimanteavant, il faut déterminer comment ceux-ci doivent être traités. Cela signifie que plusieurs programmes peuvent être exécutés simultanément sur un système d'exploitation moderne. Lorsque plusieurs utilisateurs partagent un ordinateur ou un réseau, les mesures de gestion et de protection de la mémoire, des périphériques d'E/S et d'autres ressources deviennent encore plus importantes. Sinon, les utilisateurs interféreraient les uns avec les autres. [6]

L'ensemble de tous les programmes et fichiers qui contrôlent tous les processus lors de l'utilisation d'un ordinateur est appelé logiciel système . Cela inclut les systèmes d'exploitation, mais aussi les logiciels liés au système tels que les compilateurs , les interpréteurs et les éditeurs . Les logiciels d'application tels que les navigateurs ou les logiciels de comptabilité utilisent le logiciel système pour assurer un fonctionnement correct. [7] Dans la littérature, le terme "système d'exploitation" est interprété de différentes manières au sein du logiciel système.

Dans la collection DIN 44300 (obsolète, remplacée par ISO/IEC 2382:2015 voir : Liste des normes DIN/DIN 1-49999 sous DIN 44300), la définition est basée sur sa tâche et sa position dans une hiérarchie de programme :

"Le système d'exploitation est formé par les programmes d'un système informatique numérique qui, avec les propriétés du système informatique, constituent la base des modes de fonctionnement possibles du système informatique numérique et en particulier contrôlent et surveillent l'exécution des programmes."

–DIN 44300 [8]

Pour Andrew S. Tanenbaum, le terme système d'exploitation se limite essentiellement au noyau : « Les éditeurs, compilateurs, assembleurs , éditeurs de liens et interpréteurs de commandes ne font définitivement pas partie du système d'exploitation, même s'ils sont significatifs et utiles . les manuels suivent ce point de vue plus étroit. D'autres auteurs incluent également un langage de commande pour le système d'exploitation : "Outre la gestion du matériel [...], les systèmes d'exploitation modernes offrent de nombreux services, tels que la communication entre les processus, les systèmes de fichiers et de répertoires, la transmission de données sur les réseaux et un langage de commande ." [10]Une autre version du terme, qui inclut également les éditeurs et les compilateurs, par exemple, remonte en partie à des travaux plus anciens dans le monde germanophone, mais peut encore être trouvée dans la littérature actuelle. Les auteurs de l'Informatik-Duden comptent également les programmes de traduction et les programmes utilitaires parmi les composants essentiels d'un système d'exploitation. [11] Plus récemment, le différend sur le nom GNU/Linux peut être considéré comme un exemple des problèmes de délimitation.

Quelle que soit la définition large ou étroite du terme "système d'exploitation", les supports d'installation des systèmes d'exploitation contiennent généralement des utilitaires et des applications supplémentaires.

stades de développement

Le développement des systèmes d'exploitation informatiques s'est déroulé et s'est déroulé parallèlement au développement et aux performances du matériel disponible : les deux lignes sont mutuellement dépendantes et permettent ou nécessitent des développements supplémentaires de l'autre côté. Le développement s'est fait en partie par petits sauts, parfois par grands sauts :

Les systèmes qui traitent les cartes perforées (s'applique également aux bandes perforées) appartiennent désormais (depuis le début des années 1970) au passé. Cependant, ils constituent un bon point de départ pour examiner le développement du système : il n'y avait pas de support de stockage électronique externe dans ces systèmes spatialement relativement grands. Les programmes se présentaient (en langage machine ) sous la forme de piles de cartes perforées et étaient «lus» par l' opérateur via le lecteur de cartes perforées dans la mémoire interne. Après la "carte de fin", le programme d' application a été lancé, qui , selon la tâche, lit également ses données d'entrée via le lecteur de carte (d'où le terme traitement par lotssystèmes en file d'attente ) et devait sortir ses résultats directement via une imprimante et/ou via la perforatrice. En amont et en aval, à l'aide d'appareils électromécaniques (perforatrices, mélangeurs, trieurs), des procédés d'enregistrement, de mélange et de tri étaient nécessaires. Même à ce moment-là, le traitement interne était nettement plus rapide que les périphériques d' entrée/sortie ; la lecture d'une pile de cartes perforées (boîte de 2000 cartes) prenait environ 5 à 10 minutes, la taille de la RAM de ces ordinateurs était d'environ 16 à 64 Ko (exemple voir System/360 ).
Ces machines n'avaient pas de système d'exploitation conventionnel comme c'est courant aujourd'hui. Un seul programme de contrôle (moniteur résident) était conservé en mémoire et assurait le bon déroulement de tout en laissant le contrôle aux programmes en cours d'exécution. L'ordinateur ne pouvait exécuter qu'un seul programme à la fois.

Un autre développement - les systèmes par lots multiprogrammés - pourrait prendre en charge des périphériques supplémentaires ( unités de bande magnétique , premiers disques magnétiques avec, par exemple, un volume de stockage de 7,25 Mo), exécuter plusieurs programmes simultanément (par exemple, dans 3 « partitions » ) ainsi que des programmes et des données sur un stockage externe. . Un traitement plus rapide a été possible car le temps de lecture et de distribution du jeu de cartes a été éliminé - et les processeurs sont devenus plus rapides. Des mécanismes tels que la mise en file d' attente (sortie intermédiaire des données de l'imprimante sur bande magnétique avec possibilité d'impression différée et parallèle) et l' option hors ligne ont été utilisés ici-Fonctionnement déjà largement utilisé. Cependant, il fallait un programme qui assumerait les tâches de gestion des E/S, de la gestion de la mémoire et, surtout, de la planification du processeur , etc. A partir de là, on pourrait parler des premiers systèmes d'exploitation.

Les étapes suivantes ont ensuite été les conséquences des domaines de responsabilité respectifs qui ont été attribués aux systèmes. Les systèmes suivants ont émergé et sont encore utilisés aujourd'hui : les systèmes parallèles , les systèmes distribués , les systèmes informatiques personnels , les systèmes à temps partagé , les systèmes en temps réel et, plus récemment, les assistants numériques personnels et les smartphones .

Dans le secteur des PC, les systèmes d'exploitation les plus couramment utilisés sont actuellement les différentes variantes de Windows de Microsoft (principal pour les systèmes avec interface graphique ), BSD , y compris macOS d' Apple (unix de bureau le plus courant) et GNU / Linux (principal pour les serveurs). Pour des applications particulières (exemple : contrôle industriel ), des systèmes d'exploitation expérimentaux sont également utilisés à des fins de recherche et d'enseignement.

Outre les variantes classiques, il existe également des systèmes d'exploitation spéciaux pour les systèmes distribués, dans lesquels une distinction est faite entre le système logique et le(s) système(s) physique(s). L'ordinateur logique se compose de plusieurs unités informatiques physiques. De nombreux mainframes, calculateurs de nombres et les systèmes de Cray fonctionnent selon ce principe. L'un des systèmes d'exploitation les plus connus dans le domaine des systèmes distribués est Amoeba .

Tâches

Les tâches d'un système d'exploitation comprennent généralement :

  • gestion de la mémoire
    • Gestion de la mémoire principale des ressources système.
    • Journalisation de l'utilisation du stockage.
    • Réservation et libération de mémoire.
  • gestion ( de processus )
    • Surveillance des accès mémoire et, si nécessaire, arrêt des processus en cas de violation de la protection .
    • Création de nouveaux processus (soit à la demande du système d'exploitation, soit à la demande d'autres processus déjà existants) et allocation de la mémoire nécessaire aux processus.
    • Communication et synchronisation des processus entre eux ( communication interprocessus )
  • Gestion des appareils et des fichiers
    • Affectation efficace des appareils d'entrée/sortie et des unités de commutation (canaux de données, unités de commande), évitement des conflits
    • Initiation, surveillance de l'exécution, planification des opérations d'E/S.
    • Gestion du système de fichiers . Création d'un espace de noms avec des objets mémoire associés et, si nécessaire, d'autres objets.
  • gestion des droits
    • Les utilisateurs/programmes indépendants ne doivent pas interférer les uns avec les autres.
  • abstraction
    • Masquer la complexité de la machine à l'utilisateur
    • Abstraction du concept de machine (d'après Coy ) :
      • Machine réelle = unité centrale de traitement + appareils (matériel)
      • Machine abstraite = Machine réelle + Système d'exploitation
      • Machine utilisateur = machine abstraite + programme d'application

Pour des raisons historiques, un appareil du point de vue d'un système d'exploitation est tout ce qui est adressé via des canaux d'entrée/sortie. Ce ne sont pas seulement des appareils au sens traditionnel, mais maintenant aussi des extensions internes telles que des cartes graphiques, des cartes réseau et autres. Les (sous-)programmes d'initialisation et de contrôle de ces "périphériques" sont collectivement appelés pilotes de périphérique .

Gestion des ressources et abstraction

L'équipement ou les ressources sont tous les composants mis à disposition par le matériel d'un ordinateur, c'est-à-dire le processeur (les processeurs dans les systèmes multiprocesseurs), la mémoire physique et tous les périphériques tels que les disques durs, les disquettes et les lecteurs de CD-ROM, les adaptateurs réseau et d'interface et autre. La liste de compatibilité matérielle contient tous les produits matériels dont la fonctionnalité a été testée en relation avec un système d'exploitation spécifique.

Exemple d'introduction : blocs de construction de temporisateurs

Les systèmes informatiques modernes ont des modules de minuterie (minuteries). Dans les premiers PC z. Par exemple, la puce 8284 d' Intel est utilisée. Ce bloc doit d'abord être initialisé. Il peut alors interrompre le processeur au bout d'un certain temps ou périodiquement et lui faire exécuter sa propre routine. En plus de l'initialisation, une routine d'interruption doit être créée, qui peut être appelée dans un langage approprié (généralement assembleur) doit être programmé. Comme les interruptions se produisent de manière asynchrone, des relations complexes concernant les structures de données doivent être prises en compte. Une connaissance précise du composant (fiche technique), du matériel informatique (gestion des interruptions) et du processeur est requise. Les composants individuels impliqués dans ce processus sont résumés sous le terme architecture informatique.

Processeurs virtuels

Un système d'exploitation multitâche moderne utilise une telle puce de minuterie pour interrompre périodiquement ce qui est généralement le seul processeur (généralement dans la plage des millisecondes) et éventuellement continuer avec un autre programme (ce que l'on appelle le multitâche préemptif ). L'initialisation et la routine d'interruption sont mises en œuvre par le système d'exploitation. Même si un seul processeur est disponible, plusieurs programmes peuvent être exécutés, chaque programme récupère une partie du temps processeur ( ordonnancement ). Chaque programme se comporte comme s'il avait son propre processeur virtuel , à l'exception du temps d'exécution plus lent .

Minuteries virtuelles

De plus, chaque programme est doté de sa propre minuterie virtuelle via un appel système, par exemple alarm . Le système d'exploitation compte les pauses dans la minuterie d'origine et informe les programmes qui ont utilisé l' appel système d' alarme . Les différents points dans le temps sont gérés via une file d'attente .

abstraction

Le matériel de la minuterie est ainsi masqué des programmes. Un système avec protection de la mémoire permet l'accès au module de temporisation uniquement via le noyau et uniquement via des interfaces définies avec précision (généralement appelées appels système, qui sont implémentées via des commandes de processeur spéciales telles que TRAP, BRK, INT). Aucun programme ne peut donc mettre en danger le système, l'utilisation de la minuterie virtuelle est simple et portable. L'utilisateur ou le programmeur n'a pas à se soucier des détails (complexes).

Virtualisation des autres ressources

Tout comme les processeurs et les minuteurs peuvent être virtualisés , toutes les autres ressources peuvent l'être également. Certaines abstractions ne sont implémentées que sous forme de logiciel , d'autres nécessitent un matériel spécial.

systèmes de fichiers

Les systèmes de fichiers masquent les détails des systèmes de stockage externes (disques durs, disquettes ou lecteurs de CD-ROM). Les noms de fichiers et les répertoires permettent un accès facile, la structure réelle des blocs et les différences de périphérique sont complètement invisibles.

Mémoire interne

La mémoire interne ( RAM ) est également appelée mémoire principale et est divisée en blocs (tuiles) par le système d'exploitation, qui sont mis à la disposition des programmes chargés sur demande. La plupart du temps, la mémoire est initialisée, ce qui signifie que toute donnée existante sera préalablement supprimée. Dans de nombreux systèmes, chaque programme est doté d'une zone continue (contiguë) via la mémoire virtuelle . La gestion de la mémoire virtuelle permet une approche flexible dans laquelle la mémoire réelle physiquement disponible n'a pas besoin d'être contiguë ( segmentation), il n'est pas non plus nécessaire qu'il soit aussi important au total qu'il n'y paraît du point de vue des programmes. Au lieu de cela, des blocs de mémoire individuels, des pages en anglais , sont déplacés entre la mémoire principale (RAM) et la mémoire externe (par exemple, le fichier d'échange ) selon les besoins ( pagination ).

réseau

Les détails de l'accès au réseau sont masqués en plaçant une pile de protocoles au-dessus du matériel réel (carte réseau) . Le logiciel réseau autorise un nombre quelconque de canaux virtuels . Au niveau des sockets (programmation), la carte réseau est totalement invisible, le réseau a gagné de nombreuses nouvelles capacités (bidirectionnel, flux de données fiables, adressage, routage).

Filtrer

Une sortie d'écran est généralement décrite comme une interface utilisateur graphique (GUI ) si elle va au-delà d'une invite de commande . Avec les bonnes cartes graphiques et les bons écrans, il est possible d'afficher des objets géométriques (lignes, cercles, ellipses, mais aussi attributs de police et couleurs) à l'écran, d'où des éléments géométriques plus complexes comme des boutons, des menus, des interfaces utilisateur , etc. peut être créé pour un contrôle facile des programmes à laisser.

La carte graphique en tant que matériel est complètement cachée au programmeur et à l'utilisateur.

histoire

Premiers systèmes d'exploitation (jusqu'en 1980)

Les premiers ordinateurs se débrouillaient sans véritable système d'exploitation, puisqu'un seul programme pouvait être chargé en mode batch et que le matériel pris en charge était encore très maniable. Le premier ordinateur numérique a été développé par Charles Babbage (1792-1872). Il voyait déjà la nécessité de faire fonctionner sa "machine analytique" avec un logiciel . Il a embauché la fille du célèbre poète Lord Byron Ada Lovelace pour écrire les premiers programmes. Ada Lovelace est considérée comme la première femme programmeuse. Charles Babbage n'a jamais réussi à faire fonctionner correctement son "moteur analytique". Les engrenages, tringleries et autres pièces mécaniques ne pouvaient pas être fabriqués avec la précision nécessaire. [12]

Après les tentatives infructueuses de Charles Babbage, peu d'efforts ont été faits pour mettre en place un autre projet d'ordinateur numérique. Les idées de Babbage ne furent reprises qu'avant la Seconde Guerre mondiale . Les premiers ordinateurs numériques ont été réalisés sur la base de relais électriques et de tubes. Les premiers chercheurs comprenaient Howard Aiken de l'Université de Harvard , John von Neumann de l'Université de Princeton , John William Mauchly , John Presper Eckert de Pennsylvanie et Konrad Zuse .à Berlin. Les premiers ordinateurs ont été développés par une équipe d'ingénieurs chargés de concevoir, construire, programmer et entretenir ces machines. Les langages de programmation étaient inconnus et les programmes étaient implémentés à l'aide de cartes enfichables sur lesquelles les programmes étaient programmés à l'aide de fils électriques. Puisqu'un ordinateur ne pouvait exécuter qu'un seul programme, les systèmes d'exploitation n'étaient pas nécessaires. Il fallait quelques secondes pour calculer une seule tâche et des heures pour exécuter un programme, mais seulement si les ordinateurs avec des milliers de tubes ou de relais fonctionnaient correctement. Au début des années 1950, les fils électriques sont remplacés par des cartes perforées . [13]

Le précurseur du système d'exploitation est le moniteur résident inventé en 1956 sous la forme de l'E/S GM-NAA chez General Motors pour l'IBM 704 , un logiciel qui démarrait automatiquement la tâche suivante après la fin d'une tâche par lots. En 1959, cela a abouti au système d'exploitation SHARE (SOS), qui disposait déjà d'une gestion rudimentaire des ressources. [14] Son successeur IBSYS disposait déjà d'un simple shell avec un langage de commande. [15]

En 1961, le Compatible Timesharing System (CTSS) pour l'IBM 7094 au MIT a été le premier système d'exploitation pour un fonctionnement multi-utilisateurs. Cela a permis au système informatique d'être utilisé plus ou moins simultanément par plusieurs utilisateurs utilisant des terminaux connectés . [16] Un grand nombre de programmes chargés simultanément a rendu nécessaire de délimiter les zones de mémoire qu'ils réclamaient les uns des autres. La mémoire virtuelle [17] a été développée à la TU Berlin en 1956 en tant que solution et a été implémentée dans les systèmes d'exploitation mainframe pour la première fois au milieu des années 1960.

À cette époque, le fabricant de matériel fournissait généralement le système d'exploitation, qui ne fonctionnait que sur une série de modèles spécifiques, voire uniquement sur un système spécifique, de sorte que les programmes ne pouvaient pas être portés entre différents ordinateurs ou entre différentes générations. Avec l'introduction de la série IBM System/360 en 1964, IBM a introduit le système d'exploitation OS/360 dans différentes versions (OS/360 pour les systèmes purement basés sur des cartes perforées, TOS/360 pour les machines avec lecteurs de bande, DOS/360 pour ceux avec disques durs). C'était le premier système d'exploitation utilisé dans toutes les séries de modèles.

À partir de 1963, Multics a été développé par AT&T en collaboration entre le MIT , General Electric et Bell Laboratories (Bell Labs) , mais il n'a été utilisé qu'en 1969-2000. Multics a été programmé en PL/I . Inspiré par les travaux sur Multics, un groupe dirigé par Ken Thompson et Dennis Ritchie des Bell Labs a commencé à développer Unix en 1969 . Dans les années 1970 à 1972, les premiers précurseurs de Windows NT d'aujourd'hui ont été développés avec les RSX-15 et RSX-11 . Unix est devenu dans les années 1972-1974 à l'exception de quelques parties dans le supérieurLangage de programmation C réimplémenté dans le but de la portabilité pour fonctionner sur le nouveau PDP-11 . Par la suite, UNIX s'est développé en toute une famille de systèmes pour différentes plates-formes matérielles.

Les premiers PC , comme l' Altair 8800 de 1975, n'avaient initialement pas de système d'exploitation. Par conséquent, toutes les actions devaient être saisies en code machine pur . L'Altair 8800 a reçu son premier système d'exploitation sous la forme d'un interpréteur BASIC . [18] Cela a fourni à la fois un environnement de programmation et l'interface générale entre l'utilisateur et le matériel (que cet interpréteur pilotait directement). Il s'agissait à la fois d'un environnement d'exécution et d'une interface utilisateur ; par exemple, certaines commandes permettaient à l'utilisateur de charger et d'enregistrer des données et d'exécuter des programmes. En 1974 , Gary Kildall a inventé le CP/M, qui est considéré comme le premier système d'exploitation universel pour PC. En raison de sa conception modulaire (le noyau BDOS indépendant de la plate-forme était basé sur une couche de pilote matériel appelée BIOS), il pouvait être porté sur de nombreuses plates-formes PC mutuellement incompatibles avec un effort raisonnable. Un environnement de programmation ne contrôlait plus (généralement) le matériel directement, mais utilisait les interfaces du système d'exploitation. En conséquence, l'environnement de programmation ne pouvait plus fonctionner uniquement sur un matériel spécifique, mais sur de nombreux PC.

Les interfaces utilisateur purement textuelles n'étaient plus suffisantes pour l' infographie émergente . Introduit en 1973, le Xerox Alto a été le premier système informatique doté d'un système d'exploitation orienté objet [19] et d'une interface utilisateur graphique, ce qui a rendu cet ordinateur adapté à la PAO et a représenté une avancée majeure en termes de convivialité. [20]

jalons

Le C64, un ordinateur personnel des années 1980

Système C64C avec lecteur de disquettes VC1541 -II et moniteur RVB 1084S (1986)

Dans les années 1980, les ordinateurs personnels sont devenus populaires. En plus des tâches utiles, ceux-ci pourraient également exécuter des jeux. Le matériel se composait d'un processeur 8 bits avec jusqu'à 64  Ko de RAM, d'un clavier et d'un moniteur ou d'une sortie HF. L'un des ordinateurs les plus populaires était le Commodore C64 avec le microprocesseur 6510 (une variante du 6502 ). Cet ordinateur avait un noyau système appelé Kernal dans son propre module ROM de 8 KiB, ainsi qu'un BIOS ( Basic Input/Output System), qui a initialisé l'écran des appareils, le clavier, l'interface série CEI pour les lecteurs de disque ou les imprimantes, l'interface de cassette et les a partiellement abstraits via un concept de canal. Le système pouvait être utilisé et programmé via un 8 KiB ROM BASIC séparé , basé sur les fonctions du BIOS. Le système d'exploitation de cet ordinateur peut être considéré comme une bonne abstraction matérielle au niveau de l'interpréteur BASIC. Bien sûr, il n'y a pas de noyau, de mémoire ou d'autre protection matérielle. De nombreux programmes, en particulier les jeux, ignorent le BIOS et accèdent directement au matériel correspondant.

Couches d'abstraction dans le système d'exploitation de l'ordinateur domestique C64

Interface utilisateur graphique (GUI) d'Apple.

Exemple d'interface utilisateur graphique

Xerox a développé le système de développement Smalltalk au Palo Alto Research Center ( PARC ) (Xerox a développé les premiers ordinateurs avec une interface utilisateur graphique avec ALTO (1973) et Star (1981). Apple a proposé à Xerox d'acheter la technologie ; mais comme le PARC était avant tout un centre de recherche, il n'y avait aucun intérêt pour les ventes et le marketing. Après que le PDG d'Apple, Steve Jobs, ait proposé à Xerox des actions Apple, il a été autorisé à montrer à certains développeurs Apple les démos Xerox. Dans tous les cas, après cela, les développeurs Apple ont réalisé que l'avenir appartenait à l'interface utilisateur graphique et Apple a commencé à développer sa propre interface utilisateur graphique.

De nombreuses fonctionnalités et principes de toute interface utilisateur graphique informatique moderne telle que nous la connaissons aujourd'hui sont des originaux d'Apple ( menus déroulants , métaphore du bureau , glisser-déposer , double-clic). L'affirmation selon laquelle Apple a illégalement copié son interface graphique de Xerox est un point de discorde constant ; cependant, il existe des différences significatives entre un Xerox Alto et le Lisa / Macintosh .

Le successeur de Mac OS

Ordinateur Apple I

Au milieu des années 1990, Apple traversait une crise profonde ; il semblait au bord de la ruine. Un problème urgent était que le système d'exploitation Mac OS d'Apple était considéré comme obsolète, c'est pourquoi Apple a commencé à chercher des alternatives. Après l'échec du projet le plus important pour un système d'exploitation moderne nommé Copland , Apple a été contraint de chercher un successeur qui pourrait être utilisé à ses propres fins. Au début, on supposait qu'Apple reprendrait la société Be , avec son système d'exploitation BeOS , qui peut également être exécuté sur Mac . Cependant, les négociations de rachat ont échoué en novembre 1996 parce que l'ancien directeur d'Apple et chef de BeJean-Louis Gassée réclamait 300 millions de dollars et un siège au conseil d'administration en cas de prise de contrôle. Puisque Gil Amelio avait promis d'annoncer la future stratégie Mac OS par Macworld Expo en janvier 1997 , une alternative devait être trouvée rapidement. Étonnamment, en décembre 1996, Apple a repris la société NeXT du fondateur évincé d'Apple Steve Jobs pour 400 millions de dollars américains, ainsi que le système d'exploitation NeXTStep ou OPENSTEP , qui devait devenir la base d'Apple pour la nouvelle génération de système d'exploitation suivante. Nom de code Rhapsodyil a évolué en un UNIX pour les ordinateurs domestiques et de bureau appelé "Mac OS X" ; de la version 10.8 (2012) à 10.11, il s'appelait simplement "OS X", depuis la version 10.12 (2016) "macOS". Depuis la version 10.5, il est conforme à la spécification UNIX unique .

Le système d'exploitation OPENSTEP a été la première implémentation des spécifications OpenStep co - développées avec Sun. Leur développement a eu un impact sur Java et donc in fine sur Android .

Système d'exploitation de disque (DOS)

DOS a ses origines dans CP/M et a été utilisé par Digital Research en 1974 . Le port vers le Motorola 68000 , surnommé CP/M-68k , lui-même pas un grand succès commercial, est devenu la base du TOS , le système d'exploitation de l' Atari ST . MS-DOS Version 1.0 est apparu en 1981 comme une réplique de CP/M et a été utilisé pour les PC IBM . Il est basé sur le BIOS et fournit des opérations sur le système de fichiers.

Les premiers PC IBM étaient très similaires au C64. Ils avaient également un BIOS intégré pour l'initialisation et l'abstraction du matériel. Même un interprète BASIC était disponible. Contrairement au BIOS, cependant, BASIC n'a pas été utilisé dans les ordinateurs compatibles d'autres sociétés.

Avec son processeur Intel 8088 ( registre 16 bits ), le PC pouvait adresser jusqu'à 1  Mio de mémoire, mais les premiers modèles n'étaient équipés que de 64 Kio. Les lecteurs de disquettes ont remplacé les anciens magnétophones à cassette comme support de stockage. Ils permettent l'écriture et la lecture multiples de blocs de 512 octets adressables individuellement. L'utilisation est simplifiée par un système d'exploitation de disque (DOS) qui fournit un concept de fichier abstrait. Les blocs peuvent être regroupés en grappes de n'importe quelle taille ( unité d'allocation– la plus petite unité adressable par le système d'exploitation). Les fichiers (unités d'information logiques) occupent un ou plusieurs de ces clusters (concaténés). Une disquette peut contenir de nombreux fichiers accessibles par leur nom.

Aucune protection de la mémoire n'a été implémentée sur les premiers PC , de sorte que les programmes pouvaient contourner DOS et accéder directement au BIOS et même au matériel. Seuls les PC plus récents étaient équipés de l' Intel 80286-Processeur équipé qui a activé la protection de la mémoire. MS-DOS n'a pas non plus fourni une abstraction suffisante à toutes fins. Un seul programme pouvait être lancé à la fois, la gestion de la mémoire était assez rudimentaire. Une partie du matériel n'était pas prise en charge et devait être adressée directement par des programmes, ce qui signifiait que la carte son devait être reconfigurée pour chaque jeu, par exemple. Les performances de certaines routines, en particulier pour la sortie de texte, pourraient être améliorées. De nombreux programmes ont donc ignoré le système d'exploitation et écrit par ex. B. directement à la mémoire de l'écran . MS-DOS est livré avec un ensemble de programmes (appelés outils) et un interpréteur de commandes (COMMAND.COM).

Couches d'abstraction d'un PC sous DOS

les fenêtres

En 1983, Microsoft a commencé à développer une extension de système d'exploitation graphique ("pièce jointe graphique") pour MS-DOS appelée Windows. La conception MS-DOS et BIOS des PC ne permettait pas de développement ultérieur dans la direction des systèmes d'exploitation de serveur modernes. Microsoft a commencé à développer un tel système d'exploitation au début des années 1990, initialement prévu comme un développement ultérieur d' OS/2 (que Microsoft a aidé à développer entre 1987 et 1991) : Windows NT 3.1 (juillet 1993). Pour le marché grand public, Microsoft a lancé Windows 95 le 15 août 1995 ; il est basé sur MS-DOS. Cette "branche grand public", collectivement appelée Windows 9x , a été abandonnée avec la sortie deWindows Me (août/septembre 2000) terminé.

Structure de Windows NT : Une couche d'abstraction, la couche d'abstraction matérielle (HAL) , a été placée sur le matériel, sur lequel le noyau était basé. Divers pilotes de périphériques ont été implémentés en tant que modules du noyau et s'exécutaient comme le noyau en mode noyau privilégié . Ils ont fourni des installations pour la gestion des E / S, le système de fichiers, le réseau, les mécanismes de sécurité, la mémoire virtuelle, etc. Les services système complétaient le concept; comme leurs homologues Unix , les démons , ils s'exécutaient sous la forme de processus en mode utilisateur .

Couches d'abstraction sous Windows NT (légèrement simplifiées)

Les interfaces des systèmes existants ont ensuite été reproduites via des soi-disant personnalités , initialement pour le nouveau système Win32 de Microsoft , mais aussi pour OS/2 (sans graphiques) et POSIX .1, une norme censée unifier les systèmes Unix. Comme les programmes utilisateur, les personnalités s'exécutaient en mode utilisateur non privilégié . Le sous-système DOS a été implémenté sous forme de processus, chacun représentant un PC complet exécutant MS-DOS en tant que machine virtuelle ; il pourrait également exécuter des programmes Win16 avec une version spéciale de Windows 3.1, le Windows-on-Windows . Windows sur WindowsPour ce faire, fondu les fenêtres des programmes Win16 dans le sous-système Win32 qui gérait la sortie graphique. Le système permettait donc l'exécution de programmes pour MS-DOS et les anciens systèmes d'exploitation Windows, mais sous le contrôle complet du système d'exploitation. Cependant, cela ne s'appliquait qu'à l'implémentation des processeurs Intel 80386 et de leurs successeurs.

Cependant, les programmes qui accèdent directement au matériel ont été laissés de côté. En conséquence, de nombreux jeux en particulier ne pouvaient pas être exécutés sous Windows NT, du moins jusqu'à l'introduction de WinG , rebaptisé plus tard DirectX . Sans possibilité d'accès direct au matériel graphique ou aux pilotes, la programmation de puissants jeux d'action était initialement limitée aux anciennes versions de Windows.

Windows NT est apparu dans les versions 3.1, 3.5, 3.51 et 4.0. Windows 2000 est un développement ultérieur de Windows NT. Windows XP , Windows Server 2003 , Windows Vista , Windows Server 2008 , Windows 7 , Windows Server 2012 , Windows 8 /8.1 et Windows 10 sont également basés sur la structure de Windows NT.

Linux (GNU/Linux)

Linus Torvalds, développeur de Linux

En 1991, Linus Torvalds a commencé à développer le noyau Linux à Helsinki , en Finlande , qu'il a mis à la disposition du public peu de temps après.

Il fonctionne comme un système d'exploitation portable sur diverses architectures d'ordinateurs, mais a été initialement développé pour les PC équipés d'un processeur Intel 80386 . Le BIOS utilisé dans ces ordinateurs n'est utilisé que pour initialiser le matériel et démarrer le chargeur de démarrage , car les routines du BIOS ne conviennent pas aux systèmes multitâches tels que Linux. Cela se produit parce que le processeur en particulier est chargé d'attendre au lieu de réagir aux événements au moyen d'une gestion habile des interruptions ( gestion des interruptions) qui est certainement présente dans le matériel. Linux utilise donc ses propres pilotes de périphériques après le démarrage du système.

Il répartit le temps processeur entre différents programmes (processus). Chacun de ces processus possède sa propre zone de mémoire protégée et ne peut accéder aux pilotes de périphériques et au système d'exploitation que via des appels système.

Les processus s'exécutent en mode utilisateur , tandis que le noyau fonctionne en mode noyau . Les privilèges du mode utilisateur sont très limités. L'accès direct n'est autorisé que très rarement et dans des conditions strictement contrôlées. Ceci a l'avantage qu'aucun programme z. B. une erreur peut faire planter le système.

Comme son modèle Unix , Linux fournit une abstraction et une virtualisation complètes pour presque toutes les ressources (par exemple , la mémoire virtuelle , l'illusion d'un processeur dédié).

Abstraction presque complète sous Linux

Distribution

La société StatCounter analyse la propagation des systèmes d'exploitation des utilisateurs finaux sur la base des statistiques d'accès de divers sites Web. Pendant de nombreuses années, Windows était au sommet, jusqu'à ce qu'il soit dépassé par Android en 2017, selon StatCounter . [21]

Selon StatCounter, les systèmes d'exploitation les plus courants pour les utilisateurs finaux sont : [22]


Voir également

Littérature

  • Albrecht Achille : Systèmes d'exploitation. Une introduction compacte à Linux. Springer : Berlin, Heidelberg, 2006. ISBN 978-3-540-23805-8 .
  • Uwe Baumgarten, Hans-Jürgen Siegert : Systèmes d'exploitation. Une introduction. 6e édition révisée, mise à jour et augmentée, Oldenbourg Verlag : Munich, Vienne, 2007.
  • Erich Ehses, Lutz Koehler, Petra Riemer, Horst Stenzel, Frank Victor : Programmation système sous UNIX / Linux. Concepts de base du système d'exploitation et applications pratiques. Vieweg+Teubner : Wiesbaden, 2012. ISBN 978-3-8348-1418-0 .
  • Eduard Glatz : Systèmes d'exploitation. Bases, concepts, programmation système. 1ère édition. dpunkt : Heidelberg, 2006. ISBN 3-89864-355-7 .
  • Sibsankar Haldar, Alex A. Aravind : Systèmes d'exploitation. Delhi (entre autres): Pearson Education, 2009. ISBN 978-81-317-1548-2 .
  • Helmut Herold, Bruno Lurz, Jürgen Wohlrab, Matthias Hopf : Bases de l'informatique. Chapitre 9 : Systèmes d'exploitation. 3e édition mise à jour, Pearson : Hellbergmoos, 2017, pp. 433–462. ISBN 978-3-86894-316-0 .
  • Peter Mandl : Systèmes d'exploitation du cours de base. Architectures, gestion des ressources, synchronisation, communication des processus, virtualisation. 4e édition, Springer Vieweg : Wiesbaden, 2014. ISBN 978-3-658-06217-0 .
  • Abraham Silberschatz, Peter Baer Galvin, Greg Gagné : Concepts de système d'exploitation. Neuvième édition, John Wiley & Sons: Hoboken, 2013. ISBN 978-1-118-06333-0 .
  • Andrew S. Tanenbaum , Herbert Bos : Systèmes d'exploitation modernes. 4ème édition mise à jour. Pearson : Hallbergmoos, 2016. ISBN 978-3-86894-270-5 .
    • Ancienne édition citée : Andrew S. Tanenbaum : Modern Operating Systems. 3e édition mise à jour, Pearson Studies, 2009.
    • Édition originale anglaise : Modern Operating Systems. 4e édition, Pearson, 2016.

liens web

Commons : Système d'exploitation  - collection d'images, de vidéos et de fichiers audio
Wiktionnaire : système d'exploitation  – explications du sens, origine des mots, synonymes, traductions

les détails

  1. Calcul selon https://de.statista.com/ - récupéré le 2 février 2020
  2. Andrew S. Tanenbaum : Systèmes d'exploitation modernes . Pearson Studies, 3e édition révisée , ISBN 978-3-8273-7342-7
  3. Andrew S. Tanenbaum : Systèmes d'exploitation modernes . 3e édition mise à jour, Pearson, 2009, p. 33.
  4. a b Helmut Herold, Bruno Lurz, Jürgen Wohlrab, Matthias Hopf : Fondamentaux de l'informatique. 3e édition mise à jour, Pearson, 2017, p. 438.
  5. Andrew S. Tanenbaum : Systèmes d'exploitation modernes . 3e éd. mise à jour, Pearson, 2009, p. 34.
  6. Andrew S. Tanenbaum : Systèmes d'exploitation modernes . 3e éd. mise à jour, Pearson, 2009, pp. 35–36.
  7. Peter Mandl : Systèmes d'exploitation du cours de base. 4e édition, Springer, 2014, p. 2.
  8. ^ Cité par Uwe Baumgarten, Hans-Jürgen Siegert : systèmes d'exploitation. Une introduction. 6e édition révisée, mise à jour et augmentée, Oldenbourg Verlag : Munich, Vienne, 2007, p. 3.
  9. Tanenbaum : Systèmes d'exploitation modernes . 3e édition 2009, p. 79.
  10. Anthony Ralston, Edwin D. Reilly : Encyclopédie d'informatique. New York : Van Nostrand Reinhold, 3e édition 1993, p. 1290. Citation originale en anglais : "Outre la gestion des ressources matérielles [...], les systèmes d'exploitation modernes fournissent également de nombreux services, tels que la communication inter-processus, les systèmes de fichiers et de répertoires , le transfert de données sur les réseaux et un langage de commande ».
  11. Volker Claus, Andreas Schwill : Duden informatique AZ. Dictionnaire spécialisé pour les études, la formation et le travail. Mannheim : Institut bibliographique et FA Brockhaus, 4e éd., 2006, ISBN 3-411-05234-1 .
  12. Andrew S. Tanenbaum : Systèmes d'exploitation modernes, Pearson Studies, 2002, ISBN 3-8273-7019-1 , page 18
  13. Andrew S. Tanenbaum : Systèmes d'exploitation modernes, Pearson Studies, 2002, ISBN 3-8273-7019-1 , page 18
  14. Manuel de référence SOS, 1959.
  15. Jack Harper, Système d'exploitation IBM 7090/94 IBSYS, 2001.
  16. Fernando J. Corbató, Marjorie Merwin Daggett, Robert C. Daley : Un système expérimental de temps partagé, 1962.
  17. E. Jessen : Origine du concept de mémoire virtuelle. Annales IEEE de l'histoire de l'informatique. Tome 26. 4/2004, pages 71 et suivantes.
  18. Computer Classics, Jörg et Kerstin Allner, Data Becker Verlag, ISBN 3-8158-2339-0 , p.27
  19. www.blinkenlights.com , consulté le 23 octobre 2017
  20. Zenon W. Pylyshyn, Liam Bannon : Perspectives sur la révolution informatique . Intellect Books, janvier 1989, ISBN 978-0-89391-369-4 , pp. 262, 263 etc. Comparaison d'Alto et Star avec des spécifications détaillées.
  21. Android déplace Windows de la première place en termes de parts de marché. Pro-Linux , 4 avril 2017 , récupéré le 4 avril 2017 .
  22. Part de marché des systèmes d'exploitation dans le monde. StatCounter le 5 septembre 2018, récupéré le 5 septembre 2018 .