Système d'exploitation

Le but d'un ordinateur est d'exécuter des processus. Pour que chaque processus n'ait pas à tout gérer (accès au processeur, à la mémoire, au disque dur, au réseau, ...) comme on le ferait avec un circuit imprimé par exemple, on utilise un système d'exploitation (ou OS pour operating system).

Son but est de faire le lien entre le matériel (hardware) et le logiciel (software).

os

Le matériel comporte tous les éléments physique d'une machine :

Que l'on peut regrouper en trois grandes catégories :

Les logiciels, que d'un point de vue système on appellera process ou processus auront besoin pour fonctionner d'accéder :

Le but d'un système d'exploitation est double :

  • il doit permettre d'utiliser les devices de l'ordinateur grâce à des drivers
  • il permet l'exécution de process :
    • de façon concurrente (on peut écrire dans un gdoc tout en écoutant de la musique)
    • de façon sécurisée : le gdoc ne peut accéder aux variables de l'application jouant de la musique

Parallèle vs concurrent :

  • concurrent : le début d'un process est entre la début et la fin de l'autre
  • parallèle : en même temps

Couches Systèmes

Un système d’exploitation n'est pas monolithique, il est constitué de multiples parties qui forment un tout cohérent.

L'organisation logicielle d'un ordinateur (ou plus généralement tout système logiciel assez important) est constitué de couches, comme le stipule le

On peut régler tous les problèmes en ajoutant une couche d'indirection

       compliqué
A --------------------> B
   simple      simple
A --------> C --------> B

Un autre exemple célèbre de couches en ingénierie système est le découpage en couches d'un réseau. Ce principe universel est une instanciation de la deuxième partie du discours de la méthode : il faut diviser chaque difficulté en autant de parties facile à résoudre séparément. D'un point de vue ingénierie, ceci permet en plus de clairement les responsabilités de chaque couche, une maintenance plus aisée.

Un ordinateur et son utilisation peut être séparé quatre couches :

  1. Matériel
    • mémoire RAM
    • devices
  2. Noyau
    • drivers matériels
    • gestion de la mémoire
    • ordonnancement des processus
  3. process
    • interface graphique
    • terminal
    • ...
  4. utilisateurs
    • qui à le droit de faire quoi

Les utilisateurs lancent les process. Ceux-ci s'exécutent de façon parallèle grâce au noyau et utilisent les ressources matériels via des appels systèmes.

Système d'exploitation

Seul le noyau a accès au matériel et a un contrôle total de la machine. Il doit donc être le plus petit possible car le moindre bug fait planter la machine. C'est pourquoi on distingue deux états d'une machine :

TBD le noyau et son utilité en 2 mots

Un système d'exploitation ne peut donc être uniquement composé d'un noyau, ce serait inefficace (rien ne pourrait être exécuté en parallèle) et dangereux (le moindre bug logiciel ou matériel ferait tout planter). On sépare habituellement un système d'exploitation en 3 parties :

Les démons et les interfaces sont des process comme les autres. Ils sont cependant exécutés par un utilisateur spécial, souvent nommé root, qui est le [super-utilisateur] qui est le représentant utilisateur du système.

os 2

Démarrage de l'ordinateur

Les différentes étapes du chargement d'un système d'exploitation

  1. boot de l'ordinateur
  2. exécution d'un chargeur d'amorçage (bootloader)
  3. charge le noyau
    1. vérification du matériel
    2. vérification des sous-systèmes : réseau, ...
  4. passage en user mode puis charge les démons et les interfaces
  5. login

Process et programmes

TBD montrer les programmes et les process avec le finder.

Un process est l'unité de base d'un programme. Un process est un ensemble d'instructions exécutées par le système d'exploitation. Tout process est la propriété le l'utilisateur du système qui l'a exécuté.

Utilisateurs

On peut séparer les utilisateurs d'un système en trois grandes catégorie.

root

L'utilisateur root est l'utilisateur lié au système d'exploitation. Il est le propriétaire des process (démons) et interfaces du système d'exploitation. Cet utilisateur a ainsi tous les droits (peut aller partout, réserver autant de mémoire qu'il veut, etc).

Comme Tout processus a un propriétaire, l'existence de cet utilisateur est garantie.

TBD sous windows ?

Administrateurs systèmes

Ces utilisateurs ont des droits particulier, ils peuvent modifier des paramètres systèmes et exécuter ou stopper des démons. Ces utilisateur ne sont pas forcément root, en effet, souvent l'utilisateur principal d'une machine est administrateur.

Cela permet, si nécessaire, d'installer ou de configurer son système sans être connecté en tant que root.

Simple utilisateur

Enfin, il existe la foule des autres utilisateurs (vous sur les ordinateurs de l'école ou la fac par exemple) qui ne peuvent pas administer la machine, ni lancer de démons. Vous avez en revanche le droit d'exécuter la plupart des process et d'installer vos propres programme dans l'espace disque qui vous est réservé.

TBD sous windows mono-utilisateur, aussi admin.