Les systèmes d'exploitation

Des exemples.

Il y a deux grandes familles :

La deuxième famille ne vous parle pas, mais le noyau linux est issue de cette famille et linux est le noyau d’Android ou Ubuntu par exemple.

Utilité du système d'exploitation

Le système d'exploitation est un programme, c'est généralement le deuxième programme lancés (après le programme de boot). Il reste en mémoire jusqu'au moment de l’arrêt de l'ordinateur.

On peut déjà partager le système d'exploitation en deux :

Le noyau du système d'exploitation doit offrir :

Voyons les points un peu plus en détails.

Éviter les temps d'inactions

Reprenons le fonctionnement de l'ordinateur via l'architecture de von Neumann, si une instruction demande à récupérer une donnée (sur un disque dur ou pire une entrée de l'utilisateur) alors il doit attendre de la récupérer et les autres instructions sont bloquées, et le processeur perd un énorme partie du temps de calcul (rappelons que 1ms représente 300 000 tics machines pour un ordinateur à 3Ghz).

Le noyau du système d’exploitation est chargée de faire fonctionner un autre programme en attendant, il doit donc sauvegarder la mémoire, le compteur ordinal, l'accumulateur et les autres registres. Une fois que la donnée est acquise il peut relancer le programme principal.

Doit partager le temps de calcul entre différents programmes et/ou utilisateurs.

Toujours dans l'architecture de von Neumann, nous savons qu'a un instant donné, un seul programme peut s'exécuter (potentiellement 4 si l'ordinateur à 4 cœurs) alors comment notre ordinateur peut jouer de la musique, passer une vidéo, compresser un fichier en même temps notre travail sur un traitement de texte ?

Pourquoi arrive t'on à fermer le programme suivant :


	

Car le noyau du système d'exploitation va répartir le temps processeur entre les différents processus (= programme en cours d'exécution pour faire simple) en mémoire.

Comme ça va très vite, on a l'impression que tous est fait en même temps.

Doit faciliter l’accès au périphérique.

Un disque dur SSD est différent d'un disque dur plateau, l'U.S.B. évolue, les imprimantes des différentes marques (et même entre les marques entre wifi et filière) ont des fonctionnement différents, les vieux écrans avait une sortie VGA et les nouveaux ont l'HDMI. Les technologie évoluent mais dans les programmes ont n'en tient pas compte car la tache revient au noyau du système d'exploitation. Si on veut par exemple faire un print en python alors l'interpréteur va passer par une A.P.I. (Application programming interface) pour demander au système de le faire.

Mais comment fait le système d'exploitation pour arriver à communiquer avec les périphériques ? Il le fait à l'aide de d'un programme appelé pilote (ou driver en anglais) qu'on a installé ou préinstallé.

Permettre la création, l'édition et le lancement de programme.

Pendant la séance sur vonNeumann nous avons avions l'impression que nous avons le contrôle total sur la mémoire, en réalité c'est faux et le système d'exploitation déplace le contenu de la mémoire, mais le programmeur n'a pas besoin de s'en préoccuper, le système d'exploitation doit faire comme si le programme reste statique.

Pour le lancement du programme, le système d'exploitation va charger le programme du disque dur et le placer en mémoire pour en faire un processus.

Assurer une sécurité entre les processus.

Un processus ne peut pas accéder aux ressources d'un autre, un processus ne peut pas accéder à un fichier non autorisé,... le noyau lui le peut. C'est le seul programme à être en mode privilégié.

Offrir à l'utilisateur le modèle des fichiers.

Le noyau organise nos données, programme... sous forme de fichier contenu dans des répertoires qui eux aussi sont dans des répertoires. On a l'image de tiroir mais Ceci est une abstraction, un répertoire ne contient pas d'autres fichiers mais l’identifiant d'autres fichiers.

Il existe de nombreuses façons de gérer les fichiers (FAT,NTFS,posix à base inode) voici une version naïve et simplifiée.

Ligne de commandes

De nos jour, les systèmes d'application offrent des interfaces graphiques permettant de visualiser ses fichiers à l'aide d’icône, de les déplacer à l'aide de la souris, de lancer une application en cliquant dessus...., c'est très jolie et cela permet de démocratiser les ordinateurs mais les interfaces graphiques ne sont venu qu'assez tard (Par Apple fin des années 1970 et les premières version de Windows de 1985), avant on devait taper des instructions et lire les résultats sur l'écran.

Par exemple, sous Windows10 on a une visualisation suivante :

Alors qu'avec les lignes de commande, en utilisant le powershell Windows, on a le résultat plus "sobre" suivant :

Les lignes de commande sont largement utilisées par les professionnels en effet elles offrent de nombreux avantages :

LinuxWindowsDescription
hhelpListe des commandes de bases sur windows /? à la fin d'une instruction affiche l'aide.
lsdirLire le contenu du répertoire en cours.
pwdcdChemin en cours
ifconfigipconfigInformation réseau.
pstasklistAffiche les processus.
Exemple
  1. Télécharger le fichier suivant et le dézipper dans le répertoire Mes documents.
  2. Ouvrir PowerShell.
  3. tapez ls, que fait la commande ?
  4. On peut changer de répertoire soit :
    • Soit en tapant le chemin absolu (par rapport à la racine qui est généralement le disque dur et en donnant l'adresse complète), par exemple c:\Users\Eric\Documents (qui marche chez moi car le chemin existe mais qui ne va pas marcher chez vous).
    • Soit en utilisant un chemin relatif, qui dépend de l'endroit où vous vous trouvez :
      • cd.. permet de venir dans le répertoire parent, cd ..\.. fait revenir deux répertoire avant.
      • cd Documents permet d'aller dans le répertoire Documents si celui est dans le repertoire courant, vous pouvez vérifier sa présence en tapant ls.

    Aller dans le répertoire NSI_OS et en utilisant ls et en vous déplaçant dans PowerShell compléter :

    La commande mkdrir 'nom' permet de créer un répertoire. Créer le répertoire Debussy dans le repertoire musique\moderne

    La commande move adresse_fichier adresse_nouvelle, les adresses peuvent être donner soit en relatif, soit absolue. Copier l'image de Debussy.jpg du répertoire Ravel pour le mettre dans son répertoire.

    La commande rm (ReMove) permet d'effacer le fichier, supprimer chat3 du répertoire chien.