Activité 3 : les systèmes d’exploitations

l'essentiel du cours

Histoire des systèmes d'exploitation

Multics (Multiplexed Information and Computing Service) a été développé à partir de 1965 par une collaboration entre le MIT, General Electric et Bell Labs. L’objectif était de créer un système d’exploitation puissant, sécurisé et partagé, capable de gérer plusieurs utilisateurs en même temps sur un seul ordinateur.
    
    Multics était principalement écrit en PL/I (un langage haut niveau pour l’époque), mais le système             dépendait encore beaucoup du langage assembleur, donc assez « bas niveau », proche du matériel. C’était         lourd à maintenir et pas très portable.


Unix : Les ingénieurs Ken Thompson et Dennis Ritchie ont alors décidé de créer un système plus simple, plus léger, en reprenant certaines idées de Multics — et c’est comme ça qu’est né Unix, en 1969. Écrit en langage C c’était l’un des tout premiers systèmes d’exploitation écrits en un langage de haut niveau. Unix a donc connu un énorme succès grâce à sa simplicité, sa portabilité et sa modularité, ce qui a fini par faire oublier Multics, même si ce dernier avait introduit des idées très en avance sur son temps.

    « Unics », pour « UNiplexed Information and Computing Service », en opposition à Multics (Multiplexed). Ça soulignait le fait         que leur système était plus simple, « moins complexe », donc « uni » au lieu de « multi ».
    Le nom a ensuite évolué en UNIX, pour des raisons stylistiques et marketing.
Dans les années 90, un étudiant finlandais, Linus Torvalds, frustré de ne pas avoir accès à un système Unix libre pour son PC, a décidé de créer son propre noyau d’OS. Il l’a appelé Linux (contraction de Linus + Unix).
Et il l’a publié en open source (sous licence GNU), donc libre, gratuit et modifiable par tous.
    Linux, combiné aux outils GNU (créés par Richard Stallman), a donné naissance à ce qu’on appelle                     souvent « GNU/Linux », un système libre qui reprend les principes d’Unix, mais sans en copier le code.
    Linux = noyau (gestion du matériel)
    GNU = ensemble d’outils pour compléter le système (commandes, bibliothèques, etc.)
    GNU/Linux = système d’exploitation complet, avec le noyau Linux et les outils GNU (et souvent d’autres logiciels open-source).

Naissance  en 1984 de Mac OS (Apple).  Le Mac OS est né avec le tout premier Macintosh d’Apple. L’histoire commence dans les années 1970, quand Steve Jobs et Steve Wozniak fondent Apple. À cette époque, les ordinateurs étaient souvent contrôlés par des lignes de commande et des interfaces très basiques. Apple lance alors le Macintosh, un ordinateur qui se distingue par une interface graphique. C’était le premier ordinateur personnel accessible avec une interface graphique (GUI), un souris et des icônes. Tout cela grâce à un système d’exploitation innovant qu’Apple appelait System Software ou plus tard Mac OS.Ce système graphique était inspiré par le travail réalisé au Xerox PARC

Naissance  de windows en 1985.  L’histoire de Windows commence avec Microsoft, fondé par Bill Gates et Paul Allen. Microsoft a d’abord lancé son système d’exploitation MS-DOS dans les années 1980, qui était un système à ligne de commande utilisé sur les ordinateurs IBM et compatibles.C’est avec la version Windows 3.0 (lancée en 1990) que Windows commence vraiment à attirer de nombreux utilisateurs. Cette version introduit des améliorations notables dans l’interface graphique et le multitâche, ce qui la rend beaucoup plus attrayante pour les utilisateurs.

Qu'est-ce qu'un système d'exploitation

  • Un système d’exploitation (Operating System en anglais) est un ensemble de logiciels qui permettent de faire fonctionner d’autres logiciels en exploitant les ressources proposées par un ordinateur (RAM, CPU, disques…). Les logiciels n’ont pas vraiment à gérer les ressources matérielles, le système d’exploitation s’en charge pour eux.

Un système d’exploitation est à la fois :

  • une machine virtuelle qui présente une interface simplifiée d’accès aux ressources (processeur, mémoire, périphériques d’entrée/sortie, réseau …) pour les autres programmes et pour l’utilisateur

  • un chef d’orchestre et un administrateur :

 

  • c’est le premier programme exécuté au démarrage de l’ordinateur

 

  • il gère l’accès concurrent aux ressources par les différents programmes (ordonnancement de l’utilisation du processeur par les programmes en cours d’exécution ou processus, sécurisation de la mémoire) ou utilisateurs (droits d’accès du système de fichiers).

Les principaux services rendus par les systèmes d'exploitation

Rôles du système d’exploitation

Gestion du processeur

L’ordonnanceur, composant du noyau du système d’exploitation, choisit quel programme s’exécute à un instant donné sur le processeur.

Gestion de la mémoire vive

Le système d’exploitation est chargé de gérer l’espace mémoire (notamment la RAM – mémoire vive) alloué à chaque application en cours d’exécution.

Gestion des entrées/sorties

Le système d’exploitation permet d’unifier et de contrôler l’accès des programmes aux ressources matérielles par l’intermédiaire des pilotes (appelés également gestionnaires de périphériques ou gestionnaires d’entrée/sortie).

Gestion des droits

Le système d’exploitation est chargé de la sécurité liée à l’exécution des programmes en garantissant que les ressources ne sont utilisées que par les programmes et utilisateurs possédant les droits adéquats.

Gestion des fichiers

Le système d’exploitation gère la lecture et l’écriture dans le système de fichiers et les droits d’accès aux fichiers par les utilisateurs et les applications.

De quoi est composé un système d'exploitation

Le système d’exploitation est composé d’un ensemble de logiciels permettant de gérer les interactions avec le matériel.

Parmi cet ensemble de logiciels on distingue généralement les éléments ci-dessous :

  • Le noyau (en anglais kernel) représentant les fonctions fondamentales du système d’exploitation telles que la gestion de la mémoire, des processus, des fichiers, des entrées-sorties principales, et des fonctionnalités de communication.
  • L’interpréteur de commande (en anglais shell, traduisez «coquille» par opposition au noyau) permettant la communication avec le système d’exploitation par l’intermédiaire d’un langage de commandes, afin de permettre à l’utilisateur de piloter les périphériques en ignorant tout des caractéristiques du matériel qu’il utilise, de la gestion des adresses physiques, etc.
  • Le système de fichiers (en anglais «file system», noté FS), permettant d’enregistrer les fichiers dans une arborescence.
  •  
  •  

Vocabulaire

Systèmes multitâches

Un système d’exploitation est dit «multi-tâche» (en anglais multithreaded) lorsque plusieurs «tâches» (également appelées processus) peuvent être exécutées simultanément.

Les applications sont composées en séquence d’instructions que l’on appelle «processus légers» (en anglais «threads»).
Ces threads seront tour à tour actifs, en attente, suspendus ou détruits, suivant la priorité qui leur est associée ou bien exécutés séquentiellement.

Un système est dit préemptif lorsqu’il possède un ordonnanceur (aussi appelé planificateur), qui répartit,
selon des critères de priorité, le temps machine entre les différents processus qui en font la demande.

Le système est dit à temps partagé lorsqu’un quota de temps est alloué à chaque processus par
l’ordonnanceur. C’est notamment le cas des systèmes multi-utilisateurs qui permettent à plusieurs utilisateurs d’utiliser simultanément sur une même machine des applications différentes ou bien similaires : le système est alors dit «système transactionnel».
Pour ce faire, le système alloue à chaque utilisateur une tranche de temps.

Systèmes multi-processeurs

Le multiprocessing est une technique consistant
à faire fonctionner plusieurs processeurs en parallèle afin d’obtenir une puissance
de calcul plus importante que celle obtenue avec un processeur haut de gamme
ou bien afin d’augmenter la disponibilité du système (en cas de panne d’un
processeur).

On appelle SMP (Symmetric Multiprocessing
ou Symmetric Multiprocessor)
une architecture dans laquelle tous les processeurs accèdent à
un espace mémoire partagé.

Un système multiprocesseur doit donc être capable
de gérer le partage de la mémoire entre plusieurs processeurs mais
également de distribuer la charge de travail.

Systèmes embarqués

Les systèmes embarqués sont des systèmes d’exploitation prévus
pour fonctionner sur des machines de petite taille, telles que des PDA
(personal digital assistants ou en français assistants numériques personnels) ou des appareils électroniques autonomes
(sondes spatiales, robot, ordinateur de bord de véhicule, etc.), possédant une autonomie réduite.
Ainsi, une caractéristique essentielle des systèmes embarqués est leur gestion
avancée de l’énergie et leur capacité à fonctionner avec des ressources limitées.

Les principaux systèmes embarqués «grand public» pour assistants
numériques personnels sont :

  • PalmOS
  • Windows CE / Windows Mobile / Window Smartphone