Skip to main content

Introduction

Introduction

Informations horarires, crédits, seconde sess

Les cours théoriques représentent 42h et les laboratoires représentent 35h. Le cours vaut 6 crédits ECTS et est fini en janvier. La seconde session est en septembre et il est préférable de ne pas devoir présenter le sdeux parties du cours pendant la même session vu le volume conséquent de matière !

Laboratoires

Les laboratoires permettent d'illustrer les nombreux concepts étudiés en cours et se réalisent dans un environment UNIX (Linux, macOS X, BSD, etc).

Répartition des points

Le cours de C est plus tôt bien réussi mais celui d'OS pas tellement.

  • 40% de la note est consacrée aux laboratoires et aux interrogations durant l'année
  • 60% de la note correspond à l'examen oral de 1er session en Janvier.

Si on a réussi le labo mais pas la théorie ou inversément, on doit uniquement représenter la partie ratée en seconde sess. Mais si on rate l'un des deux en seconde sess, on est obligé de représenter les deux l'année suivante.

Prérequis

  • Notion d'architecture
  • Notions de programmation

Contact

Pas de contact via Teams, il vaut mieux priviléger les mails et le forum sur Moodle.

Mind map

Une mindmap est autorisée pour répondre aux questions à l'oral. L'oral a des questions de base qui sont connues à l'avance auquel il faut se préparer. Les conditions sur ce qui peut se trouver sur cette mind map seront évoquées plus tard

Définition d'un système d'exploitation

Le système d'exploitation peut être vu sous deux aspects :

  • Une extension du matériel, permettant de fournir des interfaces aux programmes vers le matériel.
  • Le SE (Système d'Exploitation) est responsable de l'attribution de la gestion des différentes ressources (CPU, mémoire, etc)

Exemples de systèmes d'exploitations

  • Windows
  • macOS X
  • Distributions Linux (Android, Debian, Arch Linux, Alpine, etc)
  • OpenBSD, FreeBSD, NetBSD
  • Solaris
  • Novel netware (RIP)
  • IBM OS2 (RIP)

Tour d'horizon

Systèmes Windows

  • Les systèmes basés sur MS-DOS : DOS, Windows 3.1, Windows 95, Windows 98, Windows ME
  • Les systèmes basés sur NT : Windows 7, Windows 10, Windows 11, etc
  • Les systèmes mobiles : Windows CE, Windows Phone, Windows Embedded

Systèmes UNIX

Il existe énormément de systèmes UNIX qui se sont développé depuis les années 60, UNIX inclus entre autres macOS, Linux ou BSD. Si ça vous intéresse je vous invite à aller lire la page Wikipedia sur l'histoire de UNIX et la page Wikipedia sur UNIX.

Processeur

Le CPU est l'unité centrale de traitement de l'ordinateur.

Les registres sont des zones mémoires attachées au processeur

Il existe deux modes :

  • Le mode protégé (ou mode noyau ou encore mode "kernel") qui permet d'avoir un accès complet à l'ensemble du matériel
  • Le mode utilisateur qui le mode dans lequel les programmes sont lançés.

Les appels systèmes sont des moyens/fonctions mis en place par le SE pour permettre aux programmes utilisateurs de demander des services au système d'exploitation.

Les programmes n'ont jamais un accès direct au matériel et doivent toujours passer par le SE.

Appels systèmes

Les appels systèmes sont des mécanismes par lequel on demande au SE un service (open, close, read, write, printf, scanf, etc) sont des appels systèmes.

Le SE peut par exemple alouer des ressources (mémoire par exemple) ou encore gérer les périphériques (souris, clavier, écran, etc).

Multithreading

Le multithreading (ou même l'hyperthreading) permet de faire travailler plusieurs "morceaux de programmes" en même temps sur un processeur. Le fait d'avoir plusieurs actions simultannées s'appelle le paralélisme

Il y a aussi les processeurs multicoeurs qui ont plusieurs CPU au sein d'une même puce.

Vous pouvez en savoir plus sur le multithreading, l'hypethreading et le multicoeurs en lisant cet article.

Mémoire

C'est un élément essentiel de l'ordinateur, et pour qu'un programme s'exécute, il faut que toutes ses données soient en mémoire.

Il existe plusieurs niveaux de mémoire : les registres, la mémoire cache (niveaux 1,2,3), mémoire centrale/RAM.

La mémoire est volatile, une fois déconnectée, elle ne conteint plus aucune information.

La mémoire étant une ressource partagée, il faut qu'elle soit gérée efficacement (allocation adaptée aux besoins, nécessité de pouvoir satisfaires, ne pas gaspiller les ressources, etc).

La taille de la mémoire peut aller de quelques Ko à plusieurs Go.

Disque dur

Le disque dur est non-volatile et a des performances moins bonne que la RAM, cependant son coût est plus bon marché, avec généralement plus de stockage (allant de plusieurs Go à quelques To).

Il existe des technologies variées pour ce dernier : SATA, SCSI, SAS, SSD, etc.

Attention aux backups

Il faut bien faire des backups régulièrement autant de son ordinateur que des serveurs, les backups sont la dernière ligne de défense en cas de cyber attaque ou domage matériel.

Il faut également se rappeller que les clés USB ne sont pas un moyen fiable de stoquer de l'information, les clés USB peuvent servir à transférer de l'information mais pas de la stoquer à long terme.

Règle des trois
  • 2 backups à des endroits différents
  • 1 backup air-gapped (hors-ligne)
Backup en ligne

Une bonne méthode pour faire des backups plus souvent est de mettre ne place un système automatique pour faire des backups de son ordi/serveur sur des serveurs distants.

De plus pour protéger les données c'est une bonne idée de chiffrer les backups (ainsi même l'opérateur·ice du serveur ne pourra pas lire les données). Si on veut être 100% maître de ses backups on peut également héberger un serveur soi-même et utiliser rsync pour le backup.

Stockage

Le stockage est un enjeu d'avenir car la taille de l'information grandit, et une gestion efficace est nécessaire pour retrouver l'information souhaitée. Il faut donc stocker beaucoup de données tout en pouvant assurer une certaine performance et fiabilité en combinant par exemple plusieurs disques dans un système RAID (on réparti l'information sur plusieurs disques pour pouvoir améliorer la fiabilité et la performance).

Entrées sorties

Un ordinateur doit absolument pouvoir communiquer à l'extérieur aujourd'hui. L'ordinateur doit donc être capable de communiquer avec des périphériques extérieurs :

  • Claviers, souris, écrans
  • Cartes réseau, bluetooth
  • Webcam
  • Imprimante, scanner

Driver/pilote

Le SE dialogue avec un contrôleur sur lequel le périphérique est connecté, pour cela le SE doit utiliser un pilote (driver) adapté pour le matériel connecté qui va réaliser l'échange entre le controleur et le SE.

Ce dernier s'exécute en mode noyau (kernel) et est écrit par le fabriquant.

Virtualisation

La virtualisation est un concept inventé par IBM dans les années 70 qui permet de simuler un environmenet matériel différent (émulateur, virtualbox, etc).

Il permet d'exécuter plusieurs systèmes d'exploitations sur la même machine physique afin d'optimaliser l'utilisation des processeurs.

Il permet aussi de réduire les coûts des datacenter car il y a moins de machines physiques nécessaires.

On peut donc allouer la mémoire et le CPU en fonction des besoins (cloud computing, plus le besoin augmente, plus au augmente la mémoire allouéee)

Il existe des systèmes d'exploitations orientés VM comme VMWare-ESXhi, Hypr-V ou XEN.

La virtualisation est aussi pratiquée par des systèmes comme Docker.

On peut même faire en sorte de partager les ressources entre plusieurs serveurs (comme ça si il y a beaucoup de traffic, 2 serveurs peuvent répondre à la charge ou encore si un serveur est down, un autre peut prendre le relai). C'est notament le cas de VMWare-ESXhi ou Kubernetes (Docker).

Plan du cours

  • Gestion des processsus (permettre à plusieurs programmes de s'exécuter en même temps sur le système)
  • Gestion de la mémoire (répartition des ressources)
  • Gestion du système de fichiers (gérer efficacement le système de fichiers)
  • Gestion des entrées-sorties (dialogue entre les périphériques)
  • Gestion de la sécurité (garantir la sécurité des informations avec le chiffrement)