S1C3-4 Systèmes d'exploitation

SIO > S1_Commun > S1C1_Materiel > S1C1_X4_OS.md

Introduction

Nous avons vu le contenu de la boite, observons l'intelligence que l'on y met dedans …
Pour fonctionner, un ordinateur a besoin d'un logiciel qui exploite ses capacités, c'est le système d'exploitation (OS).

Un système d'exploitation (OS : Operating system) est un ensemble de programmes qui coopèrent à la gestion des ressources de la machine (ordinateur). Il doit satisfaire les deux fonctions principales suivantes :

  • Présenter une machine virtuelle simplifiée à l'utilisateur ;
  • Gérer les ressources de la machine.

Le système d'exploitation comme machine virtuelle simplifiée

L'architecture de la plupart des ordinateurs, au niveau du langage machine, est primitive et pénible à programmer, particulièrement en ce qui concerne les entrées/sorties.
Le programme qui cache le détail de fonctionnement du matériel et présente au programmeur une interface simple à base de fichiers à lire et/ou écrire est bien entendu le système d'exploitation [tanenbaum03].

Le système d'exploitation comme gestionnaire de ressources

Le système d'exploitation doit gérer l'ensemble des éléments d'un système fort complexe.
Les ordinateurs sont constitués de plusieurs composant internes, de périphériques, d'interfaces de communications (réseaux, usb, etc.).
Le système d'exploitation doit gérer de manière équitable et optimale l'allocation de ces ressources aux différents programmes concurrents qui les sollicitent [tanenbaum03].

Petit historique des OS

Voir le document annexe : Historique des OS (en cours).
Quelsques liens à visiter, pour le fun :

  • télécharger de vieux OS ;) : http://www.win3x.org/win3board/index.php?sid=16eff55c8c58e781a32bde9037f82b24
  • les Microprocesseurs : https://fr.wikipedia.org/wiki/Microprocesseur (/!\ principalement Intel) et pour AMD : https://fr.wikipedia.org/wiki/Advanced_Micro_Devices
  • petite anthologie des PC : https://fr.wikipedia.org/wiki/Ordinateur_personnel
  • histoire des interfaces graphiques : https://cimbcc.org/petite-histoire-des-interfaces-graphiques-partie-2-de-3 (explorer toutes les parties) ; historique https://cimbcc.org/category/chronique-historique

Les OS courants actuels

Actuellement, les OS grand public sont

  • Apple Mac OS X 10.10 Yosemite
  • Microsoft Windows 11 Actuellement, les OS pour initiés sont
  • GNU Linux (interface Gnome, X11, KDE), distributions (Ubuntu, Debian, Gentoo, Suze, Redhat, Slax, Mint, et leurs dérivés …)
  • BSD, open BSD Linux sert de base pour beaucoup de distributions et de clones différents (commodore vision)

Les OS pour téléphones portables et tablettes : OS légers, dédiés au multimédia et aux application téléphoniques, GPS, etc. …

  • iOS (Apple)
  • Androïd (google)
  • Symbian (Nokia)
  • Windows phone ou W8, Windows 8 (microsoft)
  • Linux version mobile (E28, constructeur chinois)

Symbian est un système d'exploitation (OS) pour téléphone mobile. Développé par un consortium de constructeurs du secteur, il se destine aux smartphones. Ces appareils disposent de fonctions d'agenda, de carnet d'adresses, mais ils acceptent des programmes supplémentaires à la manière d'un PC. L'OS Symbian est présent notamment sur des smartphones Nokia. © DR

Architecture et fonctions

Fonctionnalités de l’OS

Un OS sert à apporter des outils de travail, des jeux d’instructions élaborées, aux couches supérieures, indépendantes du matériel.
Ces outils sont des fonctions préprogrammées (API ?) qui permettent de programmer plus facilement, avec des fonctions plus élaborées et plus faciles à comprendre du point de vue de l’humain (de base).
Les fonctionnalités classiques de l’OS sont :

  • l’ordonnancement des tâches allouées aux processeurs, à chaque cœur,
  • la gestion de la mémoire physique et de la mémoire virtuelle paginée,
  • l’interface entre les applications et les couches basses (machine virtuelle, pilotes, appels système)
  • La gestion du système de fichiers
  • La gestion du matériel au travers des pilotes

Structure logicielle, Couches d'abstraction

Un Os est composé d’un noyau et de plusieurs sous-systèmes empilés en couches.

fig : les couches logicielles, les pilotes travaillent en parallèle à l'OS.

BIOS et UEFI

Voir l'article sur la CM.
BIOS (Binary ou Basic Input/Output System) : Logiciels de base permetant d'exploiter le matériel électronique. Stocké en ROM, il est lié au métériel et (très) difficile à mettre à jour (danger le planter la CM). EFI (Extensible Firmware Interface) remplace le BIOS depuis 2007, il est stocké en partie sur la CM et en partie sur le disque système.

Ces deux logiciels offrent une plateforme interface virtuelle minimale pour les OS.

Le problème des pilotes

Anciennement, les pilotes étaient constitués de tables de conversion de commandes et de caractères pour que le système puisse exploiter un périphérique (/ex. une imprimante).
Aujourd’hui, les pilotes sont des logiciels, des bibliothèques de fonctions, des modules intégrés au noyau de l’OS ou utilisant la couche basse du noyau. Plus aucun accès direct au matériels n'est encore possible.
Ceci est un avantage car :

  • ils sont plus adaptés aux périphériques gérés
  • ils constituent un complément à la machine virtuelle offerte aux applications,
  • ils peuvent effectuer des traitements sans occuper l’OS (thread/processus séparé).

Ceci est un inconvénient car :

  • dépendants du système : conventions et accords commerciaux entre le fabricant du périph et celuis de l’OS (Apple ou Microsoft).
  • peuvent (encore) être infectés par un virus,
  • travaillent en parallèle au système (mais par une recompilation du noyau, peuvent y être intégrés)
  • souvent pré-intégrés au noyau sans être utilisés (augmente le nombre de processus en tâche de fond et la taille du noyau),
  • chargés obligatoirement au démarrage du système (ralenti le démarrage, sauf en cas de "plug and play").

Les processus système

Les processus système sont des programmes qui "tournent" en tâche de fond, c'est à dire, sans interféce graphique ni fenêtrage.
Ils sont souvent des tâches de services, de l'OS, utilisées ou lancées par des applications.

Voici ci-dessous deux listes non exhaustive de processus courants.

Quelques Processus système
agentsvr.exe alg.exe autorun.exe cconnect.exe cidaemon.exe clisvcl.exe cmd.exe
csrss.exe ctfmon.exe ddhelp.exe dfssvc.exe dllhost.exe dmadmin.exe dns.exe
explorer.exe grpconv.exe helpctr.exe hidserv.exe iexplore.exe inetinfo.exe internat.exe
ismserv.exe kernel32.dll launch32.exe lights.exe locator.exe lsass.exe mad.exe
mdm.exe mmc.exe mmtask.tsk mnmsrvc.exe monitor.exe mprexe.exe msconfig.exe
msdtc.exe msgsrv32.exe msiexec.exe msoobe.exe mssearch.exe mstask.exe mtx.exe
ntfrs.exe ntoskrnl.exe pstores.exe regsvc.exe regsvr32.exe rnaapp.exe rpcss.exe
rundll32.exe runonce.exe sage.exe scanregw.exe scm.exe services.exe smss.exe
snmp.exe snmptrap.exe spool32.exe spoolss.exe spoolsv.exe svchost.exe system
systray.exe taskmgr.exe taskmon.exe taskswitch.exe winlogon.exe winmgmt.exe winoa386.mod
wins.exe wisptis.exe wkdetect.exe wmiexe.exe wmiprvse.exe wowexec.exe wuauclt.exe
Quelques Processus applicatifs
acrord32.exe acrotray.exe agrsmmsg.exe actalert.exe ati2evxx.exe atiptaxx.exe apoint.exe
hkcmd.exe igfxtray.exe javaw.exe iamapp.exe kazaa.exe kbd.exe jusched.exe
mcshield.exe mgabg.exe lvcoms.exe msgsys.exe mplayer2.exe msmsgs.exe msnmsgr.exe
msimn.exe netscp6.exe nisum.exe netscape.exe notepad.exe nwiz.exe nopdb.exe
osa.exe osd.exe nvsvc32.exe promon.exe prpcui.exe point32.exe psfree.exe
ptsnoop.exe ps2.exe qttask.exe ramsys.exe qserver.exe realsched.exe reboot.exe
realplay.exe rnathchk.exe rndal.exe regedit.exe sgtray.exe smc.exe setup.exe
soffice.exe soundman.exe sndvol32.exe tfswctrl.exe tgcmd.exe tcpsvcs.exe unwise.exe
updatestats.exe tkbell.exe uptodate.exe urlmap.exe updreg.exe wanmpsvc.exe userinit.exe
webscanx.exe winamp.exe wcmdmgr.exe winword.exe winzip32.exe winvnc.exe wordpad.exe
vptray.exe wmplayer.exe vshwin32.exe vsmon.exe wscript.exe xfr.exe wuser32.exe

Références

Encore ...

  • fonctionnement et iconographie : https://fr.wikipedia.org/wiki/Syst%C3%A8me_d%27exploitation,