Les systèmes d'exploitation

Les systèmes d'exploitation

Vous utilisez tous les jours un système d'exploitation sans forcément savoir ce qui se cache derrière. Vous avez certainement l'habitude de Windows, de Linux, de Mac OS, ou d'un autre système d'exploitation moins courant. Ce cours va vous expliquer ce qu'est un système d'exploitation, à quoi il sert, ce qu'il fait et comment il est fabriqué.

Pré-requis : des connaissances minimales concernant le fonctionnement d'un ordinateur sont requises pour suivre ce cours. Vous devez savoir des choses comme ce qu'est la mémoire, le processeur, les entrées-sorties, etc. Les notions d'adresse, de registres, d'instructions machine, et d'autres notions de cet acabit seront notamment utilisées dans ce cours.

Mécanismes d'abstraction des périphériques

  1. Pourquoi utiliser un OS ?
  2. Noyau d'un OS

Systèmes de fichiers

  1. Fichiers et répertoires
  2. Gestion des fichiers par l'OS

Allocation mémoire

  1. Mono-programmation
  2. Multi-programmation
  3. Mémoire virtuelle

Processus et threads

  1. Vie et mort des processus
  2. Ordonnancement
  3. Communication entre processus


Je tiens à remercier particulièrement Lucas-84, qui a participé au premier jet de ce tutoriel, pour son travail. Je vous invite d'ailleurs à aller lire son tutoriel sur la programmation système en C sous Unix, qui fera un bon complément à ce tutoriel théorique.

6 commentaires

J'aime beaucoup ce tutoriel. En lisant le premier chapitre, on peut lire cette phrase, concernant les niveaux de privilèges utilisateur/noyau :

Il peut y en avoir plus sur certains ordinateurs, par exemple, un processeur x86 32 bits supporte 4 niveaux de privilèges, même si seulement deux sont utilisés en pratique. Il me vient la question suivante. Si en pratique on n'utilise que deux niveaux de privilèges, pourquoi en avoir prévu 4 ? Y a-t-il des exceptions ? Le programmeur d'un OS a-t-il la main sur le nombre d'utilisations des niveaux ?

À défaut, pourquoi les constructeurs s'amusent-ils à prévoir des fonctionnalités qui ne sont pas utilisées ?

Dans le chapitre 2, vous parlez des systèmes de fichiers. Vous avez un point de vue assez général et théorique (si l'on peut dire), dans le sens où vous donnez directement les différentes stratégies utilisées par les systèmes de fichiers. Je suis un peu resté sur ma faim, parce que j'aurais apprécié d'avoir quelques exemples de systèmes de fichiers pour chaque stratégie (même si une rapide recherche sur Internet donne des réponses).

Voilà pour le début, je n'ai pas encore lu la fin. Mais je pose mes questions tout de suite, sinon je risque de les oublier. :-°

Il me vient la question suivante. Si en pratique on n'utilise que deux niveaux de privilèges, pourquoi en avoir prévu 4 ? Y a-t-il des exceptions ? Le programmeur d'un OS a-t-il la main sur le nombre d'utilisations des niveaux ? À défaut, pourquoi les constructeurs s'amusent-ils à prévoir des fonctionnalités qui ne sont pas utilisées ?

Les constructeurs de CPU (Intel en l’occurrence) ont prévu les niveaux 2 et 3 pour les pilotes de périphériques, mais les OS et drivers n'ont pas voulu les utiliser. Par contre, le système d'exploitation Multics utilisait les 7 noyaux accessibles sur le processeur sur lequel il tournait. Au final tout dépend de ce que les programmeurs de l'OS et de drivers veulent en faire.

Je viens de finir le tuto.

Il est très instructif et je trouve passionnant de savoir comment marche un OS. J'aurais aimer quelques exemples de code C sur la communication entre processus mais sa aurait un peu trop compliqué le tuto.

+1 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte