A savoir sur les Systèmes d'exploitation
-
A.
Rappels et généralités
Avant de commencer notre voyage au cœur de ces systèmes, il convient de faire quelques rappels ou d’introduire certaines notions qui peuvent ne pas vous être familières.
Les différents espaces mémoire
Les architectures basées sur des processeurs compatibles x86 (comprenez par là les architectures à base de processeurs AMD et Intel, sauf Itanium) possèdent quatre niveaux d’abstraction appelés « ring ». Ces différents rings permettent d’allouer plus ou moins de privilèges aux différentes portions de code qui s’exécutent. Le code exécuté dans l’espace d’adressage noyau, ou niveau 0, possède le maximum de privilèges et a accès à la mémoire centrale. En revanche, le code qui s’exécute dans le niveau 3 n’a pas un accès direct à la mémoire centrale. Il dispose donc de privilèges réduits et, du coup, ne peut pas modifier ce qui s’exécute dans les niveaux inférieurs. Si le niveau 3 est donc intéressant pour la sécurité et la stabilité qu’il procure, il faut tout de même savoir qu’un appel système engendre une baisse des performances car le passage du niveau 3 au niveau 0 est très coûteux. Le niveau 3 offre tout de même quelques bénéfices : le plantage d’une application n’entraîne pas le plantage complet du système, contrairement à ce qui se passe au niveau 0.
Les rings 1 et 2 définissent quant à eux des niveaux de privilèges intermédiaires, mais ils restent inutilisés, sauf pour la virtualisation. La virtualisation est une technique qui permet d’exécuter un second système d’exploitation à partir du premier, en réduisant la perte de performances engendrée par le traitement de certaines instructions ISA des processeurs x86. Par exemple, l’hyperviseur Xen, qui fait en réalité de la paravirtualisation (les noyaux des systèmes des machines hôtes sont modifiés préalablement), lance les machines virtuelles dans le ring 1 (pour plus de détails sur la virtualisation, reportez-vous au dossier consacré à cette technologie sur Presence PC).
Haut de page -
B.
Le noyau
Le noyau est en général l’élément central d’un système d’exploitation. Il gère les ressources et fait communiquer le matériel avec les logiciels. C’est donc le composant qui donne la possibilité aux applications de contrôler des éléments comme le processeur, la mémoire et les périphériques d’entrée-sortie.
Il existe deux types de noyau : les noyaux monolithiques et les micro-noyaux. Les noyaux monolithiques sont appelés ainsi car ils sont constitués d’un seul bloc, non modulaire. A l’inverse, les micro-noyaux consistent en un noyau réduit à sa plus simple expression et en un ensemble de modules gravitant autour en espace mémoire utilisateur. Entre ces deux technologies on retrouve les noyaux hybrides qui tentent de contourner le manque de modularité des noyaux monolithiques. Leur principe est d’implémenter une structure similaire à celle des micro-noyaux dans un noyau monolithique et de faire évoluer les modules dans l’espace d’adressage noyau. Une partie des pilotes s’exécute donc dans l’espace d’adressage noyau, tandis que l’autre s’exécute dans l’espace d’adressage utilisateur.
Haut de page - C. La gestion de la mémoire et la pagination Afin de pouvoir gérer la mémoire vive de nos machines, les systèmes d’exploitation la compartimentent en portions appelées pages et ce, à l’aide d’algorithmes complexes. Ce mécanisme apporte une sécurité supplémentaire au système : un programme qui voudra accéder à une page qui ne lui est pas réservée s’en verra refuser l’accès. C’est ce qu’on appelle un « défaut de page ». Lorsque la mémoire vive vient à manquer, ou que certaines données disponibles en mémoire vive ne sont pas nécessaires, le système peut écrire des pages sur une unité de stockage. C’est ce qu’on appelle la mémoire virtuelle ( « virtual memory » ou encore « swap » en anglais). Haut de page
- D. Le BIOS et l’EFI Le BIOS (Basic Input/Output System) a été introduit il y a 25 ans par IBM. Fonctionnant sur 16 bits et disposant d’un espace d’adressage mémoire de 1 Mo, il n’est donc plus adapté aux machines actuelles. C’est dans ce contexte que l’EFI (pour « Extensible Firmware Interface ») est apparu dans les années 1990 avec l’Itanium, le processeur 64 bits d’Intel. Actuellement en version 2, il possède une multitude d’avantages sur son prédécesseur mais n’est disponible que sur les Mac Intel pour le grand public. Haut de page
-
E.
Le gestionnaire de démarrage
Que le système soit équipé d’un BIOS ou d’un EFI, la procédure de démarrage se résume à l’enchaînement de plusieurs étapes aboutissant au chargement du système d’exploitation. Le BIOS lit le MBR (« Master Boot Record ») du disque de démarrage pour déterminer l’emplacement du gestionnaire d’amorçage. De son côté, l’EFI est capable d’afficher une liste des systèmes installés, propose des outils et se charge de lancer le gestionnaire d’amorçage du système sélectionné.
Le gestionnaire d’amorçage, et plus précisément le gestionnaire d’amorçage de niveau 2 (« Second-level boot loader »), est l’un des tous premiers programmes qui se lancent à l’allumage de la machine. C’est lui qui lance le système d’exploitation. Microsoft proposait, jusqu’à récemment, NTLDR avec les versions de Windows antérieures à Windows Vista. Il livre désormais Bootmgr, beaucoup plus puissant mais aussi plus compliqué. Pour Linux, vous aurez le choix entre deux gestionnaires : GNU GRUB (« GRand Unified Bootloader ») et LILO (« LInux LOader »). Tous les deux sont capables de démarrer Linux, mais aussi Windows ou OS/2, et peuvent afficher de la couleur. Leur configuration se base sur un fichier texte qu’il est aisé de modifier. GRUB intègre en plus une ligne de commandes, utile en cas de mauvaise configuration
Haut de page -
F.
DirectX et OpenGL
Si vous jouez sur votre PC, DirectX et OpenGL doivent vous être familiers. Et pour cause, ce sont deux technologies concurrentes qui aident les développeurs à réaliser les jeux vidéo.
DirectX
DirectX est la technologie de Microsoft dédiée aux jeux vidéo. Elle n’est disponible que sous Windows. Après quelques évolutions assez légères au fil des versions sous le règne de Windows XP, Microsoft a décidé de revoir entièrement son API. Vista est donc arrivé avec deux nouvelles versions de DirectX : DirectX 9L, appelé WGF 1.0 (pour « Windows Graphics Foundation ») et DirectX 10, connu sous le nom de WGF 2.0. WGF 1.0 est une amélioration de la version précédente, à savoir la 9, tandis que la version 10 est totalement nouvelle, aussi bien dans le code que dans son architecture. Elle n’est d’ailleurs pas compatible avec les versions antérieures et uniquement réservée à Windows Vista. Si un jeu actuel veut tirer parti des nouveautés de cette version, il devra être totalement réécrit.OpenGL
OpenGL est une spécification définissant une API multi-plateforme pour l’écriture des applications gérant les graphismes en 2D ou en 3D. Cela signifie qu’on le trouve aussi bien sous Windows que sous Linux et Mac OS X. Apparue dans les années 1990 et concurrente Open Source de Direct3D (la partie qui s’occupe du graphisme dans DirectX), cette API a été introduite pour la première fois dans Windows avec la version OSR2 (« OS Release 2 ») de Windows 95. Microsoft favorise cependant (et fort logiquement) sa propre solution, au dépend d’OpenGL.Sous Linux et Mac OS X, la question se pose moins puisqu’OpenGL est la seule technologie disponible.
Haut de page -
G.
La composition du bureau
Qui n’a jamais attendu que le système daigne rafraîchir la fenêtre d’une application restée désespérément blanche ? Qui n’a jamais constaté que déplacer rapidement une fenêtre sur une autre effaçait la fenêtre à l’arrière-plan ? Ce phénomène apparaît lorsque le rafraîchissement du bureau se fait trop lentement. Les systèmes actuels ont trouvé la parade : la composition. Son fonctionnement est simple : au lieu de se dessiner directement sur le bureau, chaque application se dessine sur une surface dédiée du gestionnaire de bureau. Ce dernier n’a plus qu’à combiner les différentes images pour afficher le bureau. Lors d’un rafraîchissement, seules les zones ayant subi des changements sont modifiées à l’écran. Le fait de mettre tous ces affichages en cache a aussi d’autres applications : vignette animée de l’application, la fonction Flip 3D de Windows Vista, Exposé de Mac OS X...
Haut de page -
H.
Les protocoles IP version 4 et 6 (IPv4 et IPv6)
Le protocole IP, utilisé conjointement avec le protocole TCP, permet aux ordinateurs de communiquer entre eux. Il gère l’identification des machines sur le réseau grâce à l’attribution d’une adresse logique. Actuellement, la version la plus répandue d’IP est la version 4 qui encode les adresses sur 32 bits (4 octets). Cependant, la version 4 montre de plus de plus ses limites, notamment en ce qui concerne la sécurité et le nombre d’adresses encore disponibles. Evolution récente de la version 4, la version 6 apporte plusieurs avantages :
- Le passage de 2^32 à 2^128 adresses disponibles grâce au codage des adresses sur 128 bits (16 octets) au lieu des 32 bits (4 octets) antérieurs ;
- L’intégration d’IPsec (protocole de chiffrement et d’authentification des données) et de QoS (technologie de gestion des ressources réseau) ;
- La simplification des en-têtes des paquets pour faciliter le routage.
La migration des réseaux vers cette nouvelle version n’est cependant pas encore à l’ordre du jour.
Haut de page -
I.
Les systèmes de fichiers
Un bon système de fichiers est le garant de la fiabilité des données et des performances. Les trois OS lisent et écrivent sur plusieurs systèmes de fichiers, mais ils ont néanmoins une affinité plus forte avec certains. Les systèmes de fichiers utilisés actuellement supportent la journalisation des opérations, la gestion des droits d’accès et des droits utilisateur. Certains proposent en plus la compression des données à la volée, la gestion des droits d’exécution, ou encore les liens symboliques.
Dans un futur proche, le classement des fichiers au sein des répertoires devrait être remplacé par l’utilisation de métadonnées stockées dans les fichiers eux-mêmes. Un moteur de base de données serait alors utilisé pour effectuer des recherches avec une efficacité redoutable.
Haut de page - J. Les standards POSIX POSIX est le nom d’une famille de standards définie à partir 1988 par l’IEEE dans le but de standardiser les API des logiciels fonctionnant sur des variantes d’UNIX. Cet acronyme (Portable Operating System Interface, plus le X pour l’héritage UNIX) a été proposé par Richard Stallman, fondateur de la Free Software Foundation, initiateur du projet GNU et rédacteur de la licence GPL. A travers plusieurs documents, POSIX définit les caractéristiques des interfaces utilisateur et des interfaces logicielles. Ces standards ne sont pas réservés aux seuls systèmes UNIX ou Linux. Effectivement, Windows NT est conforme aux standards POSIX 1. C’est suffisant pour des petits programmes et, pour les programmes nécessitant une compatibilité plus grande, il existe des surcouches logicielles telles que Cygwin ou Windows Services for UNIX. Haut de page
- K. La licence GNU GPL (GNU General Public License) Cette licence fixe les conditions de distribution et d’utilisation des logiciels libres du projet GNU. La première version a été écrite par Richard Stallman, un grand acteur de la « Free Software Foundation » (FSF). La dernière version en date, à savoir la version 3, a été publiée le 29 juin 2007. Elle est mentionnée dans ce guide car c’est celle qui est la plus utilisée pour les logiciels libres. Toute personne qui adhère à la licence peut utiliser une copie du produit licencié, modifier et distribuer ce produit ou le redistribuer après modification. Dans ce cas, l’auteur de la version modifiée doit en fournir le code source. Enfin, et contrairement à d’autres, cette licence autorise la commercialisation du produit. Haut de page
-
Page suivante
2. Windows















