Les systèmes d'exploitation
Qu'est ce qu'est un système d'exploitation ?
Un système d'exploitation est, par définition, une suite de programme permettant d'utiliser un ordinateur. En effet, ce n'est pas un seul programme, mais un ensemble de programmes permettant l'utilsation d'un ordinateur. Il agit à plusieurs niveaux de l'ordinateur, que ce soit très proche de l'hardware, comme proche de l'utilisateur.
Le premier programme lancé est un programme appelé le bootloader (ou chargeur d'amorçage en français). Le bootloader permet d'amorcer le système d'exploitation pour qu'il puisse démarer. Il est lancé par le logiciel le plus bas niveau de l'ordinateur : le BIOS. Le BIOS peut savoir où se situe le bootloader sur le disque grâce à un très précis système de cartographie du disque. Un des plus célèbres bootloader est le bootloader possible pour Linux : GRUB.
Le logiciel venant juste après est le kernel (ou noyau du système d'exploitation). Le kernel permet de faire l'interface entre les logiciels de l'ordinateur et l'hardware. C'est lui qui gère en vrac : la gestion de la mémoire, le travail du processeur, les interfaces IN / OUT... C'est lui qui rend l'ordinateur utilisable. Il est cependant très complexe, et doit gérer une quantité aberrante de choses.
Finalement, viens au dessus l'interface utilisateur. Elle permet l'utilisation de l'ordinateur par l'utilisateur. Plein de façons de faire existent, comme Unix (avec des lignes de commandes, dans un bien connu shell).
Les différentes tâches du Kernel
Comme nous l'avons vu plus haut, le kernel est l'interface entre les logiciels et l'hardware. Il doit donc permettre de faire une liaison des deux, et doic donc adopter l'extrême rigueur de l'hardware, comme l'adaptabilité des logiciels. Pour cela, il doit pouvoir réaliser plusieurs tâches, décrites en partie ici.
Distribuer les performances
Sur un ordianteur, vous pouvez lancer plusieurs logiciels en même temps. En effet, chaque logiciel fonctionne en même temps que tous les autres. Ceci est possible grâce au système de fil d'éxecution, aussi nommé "thread". Un thread représente une suite d'instructions à exécuter par l'ordinateur. Le rôle du kernel ici est de gérer plusieurs threads, de tel manière à exécuter une partie d'un thread, puis d'un autre, puis d'un autre... Grâce à cela, tous les threads s'exécutent petit à petit, en même temps. Chaque thread est exécuté pendant plus ou moins de temps selon son importance. Le thread primaire d'un programme est appelé un processus, et est visible via le gestionnaire de tâche (pour l'afficher, il faut saisir les touches contrôle + shift + échap). Le processus inclut ses sous-threads dans son exécution et les regroupe aux yeux du gestionnaire de tâche.
Le stockage de données
Le kernel permet de facilement gérer et stocker des données via des périphériques de stockage, interne ou externe. Pour cela, premièrement, il décompose chaque périphérique en partition de stockage. Pour manipuler les données dans ces partitions, il utilise des normes strictes nommées les systèmes de fichiers. Elles permettent d'oganiser proprement les données, stockées dans des groupes nommés "fichiers", pour rendre la partition utilisable. Il y a pas mal d'exemples de systèmes de fichiers célèbres, comme NTFS de Microsoft, ou FAT32. Pour créer un système de fichiers, il existe certains standards permettant de rendre les systèmes cross-plateforme, comme POSIX.
Cela représente la partie cachée de l'iceberg. Cependant, un utilisateur classique n'aura jamais besoin de tout ça. Le système est grandement simplifié pour lui, avec un système de stockage par fichiers, dossiers (pouvant contenir des fichiers) et chemins d'accés. Le chemin d'accés représente l'adresse d'un fichier pour y accéder via le système d'exploitation. Il est entièremement sour format textuel. La première partie du chemin représente la partition sur laquelle aller chercher le fichier, qui, dans ce cas là, est considérée comme un dossier. Sur Windows, un fichier commençant par "C:" se trouve sur la partition "C" (ici, celle où est installé Windows). Sur Linux, un fichier commençant par "./" se trouve sur la partition où est installé la distribution Linux. L'accés à l'intérieur d'un dossier est possible grâce au caractère "/" (ou "\" des fois sur Windows). L'avantage de ce système est la possibilité de l'utiliser, non en partant de la partition, mais en partant d'un autre chemin d'accés. Un chemin d'accés utilisé comme tel est appelé un chemin d'accés relatif. Par exemple, si vous partez du chemin d'accés vers le dossier "C:/documents/images/", le chemin d'accés relatif "photo.png" serez ici en entier "C:/documents/images/photo.png". En utilisant les caractères "../", vous pouvez accéder aux dossier contenant le chemin d'accés d'où vous partez. Par exemple, si vous partez du chemin d'accés vers le dossier "C:/documents/images/", le chemin d'accés relatif "../cours/science.pdf" serez ici en entier "C:/documents/cours/science.pdf".
L'intégration des périphériques
Un ordinateur peut être connecté à beaucoup de choses. En général, il s'agit de chose assez générale, ne posant aucun problèmes. Cependant, certains périphériques complexes peuvent nécessiter une communication spécifiques, via un programme spécifique. Ce programme est nommé un pilote (ou, en anglais, un driver). Les périphériques les plus communs utilise une fonctionnalité nommé "Plug-And-Play", pour très vite détecter le périphérique, sans chose à faire pour l'utilisateur. D'ailleurs, si vous avez une erreur de pilotes dans un logiciel, c'est que vous n'avez pas le pilote nécessaire d'installer (ils sont en général disponibles sur le site web du fabricant). Cette erreur arrive souvent aux utilisateurs de nouvelle carte graphique, car les pilotes de la carte graphique (AMD Software pour AMD et NVidia Geforce Experience pour NVidia) ne sont pas encore installés. De plus, utiliser les pilotes n'est pas chose facile, puis ce que chaque système d'exploitation utilise des techniques différentes, nécessitant un pilote par système d'exploitation. Ils sont trouvables dans le dossier "drivers" de System32 sous Windows, ou via le gestionnaire de périphériques. Sur Windows, les drivers sont généralement automatique mis à jour si nécessaire.
Les principaux systèmes d'exploitation
Si il n'y avait que 1 système d'exploitation mondial, la vie serait trop facile. Or, ce n'est pas le cas. Il existe une multitude de systèmes d'exploitation, plus ou moins différent.
DOS
DOS est un des systèmes d'exploitation les plus importants de l'histoire. Il s'agit du système d'exploitation installé sur le très célèbre ordinateur de IBM : le PC (personnal computer), et ses dérivés. En réalité, DOS, pour "disk operating system" n'est pas UN système d'exploitation, mais une famille de système d'exploitaiton, fonctionnant selon le système de terminal. Le plus connu de la famille est MS-DOS, ancêtre de Windows, développé par Microsoft. Les systèmes DOS contenaient une aberrante quantité de commande, disponible en partie ici. Ces commandes ont modelé le fonctionnement moderne des ordinateurs (chemin d'accés, tâches...), même si l'interface (seulement un simple terminal) est décrite comme assez inconfortable.
Windows
Bien évidemment, le système d'exploitation le plus connu est "Windows". Il est développé par Microsoft (une des plus grandes entreprises du monde). Pour être précis, "Windows" est une gamme de systèmes d'exploitation, contenant plusieurs systèmes (comme Windows 10 ou Windows 11) et familles de systèmes, détaillées plus bas. La première version de ce système est apparû en 1985 sous le nom de "Windows 1". En réalité, il s'agit de la suite d'un autre système d'exploitations vus plus haut : MS-DOS.
Si Windows est le système d'exploitation le plus utilisé de nos jours, il y a plusieurs raisons. Windows est fait pour être le plus simple d'utilisation possible pour le grand public (et aussi un des premiers systèmes à proposer une interface graphique avec MacOS). Pour cela, il dispose de toute une interface graphique et suite de logiciels, favorisant la simplicité. Ces logiciels vont de logiciels très accés utilisateur, comme OneDrive ou Microsoft 365 (nouveau nom de Microsoft Office), à des logiciels beaucoup plus axés vers l'appareil, comme le gestionnaire de périphérique ou le gestionnaire de disques. Malgré ça, il reste quand même assez peu demandant et très modulable, et donc utilisable à des prix très accessibles. De plus, il dispose d'une documentation et d'un centre d'aide particulièrement efficace. Tout cela on fait de lui le système le plus utilisé de nos jours, pour les utilisations du grand public, comme des professionels.
Il existe une grande quantité de version différentes de Windows. La famille de Windows plus utilisée actuellement est Windows NT. Elle représente les systèmes d'exploitation modernes : multitâche, multi-utilisateur, interface graphique... Elle commence avec Windows 2000 pour les serveurs et Windows XP pour le tout public, et regroupe tous les systèmes les plus connus : Windows 7, Windows 8, Windows 10... Elle englobe aussi les versions mobiles de Windows (car oui, Windows est disponible sur certains téléphones), comme Windows 10 Mobile. La famille précedant Windows NT est Windows 9x, regroupant les systèmes basés sur Windows 95 (Windows 98, Windows ME...). Des familles pour les systèmes embarquées existées aussi, avec Windows CE ou Windows RT, vite rendu obsolète par les progrés technologiques des systèmes embarquées.
Unix
Quand on parle de système d'exploitation, nous devons parler d'un des plus anciens qui existe : Unix. En effet, les premières version de Unix ont vu le jour au début des années 70. L'idée de ce système était de créer un système d'exploitation pour les ordinateurs d'une des plus grandes entreprises techs de l'époque : les Laboratoires Bell. À une époque où seules les universitaires avez accés aux ordinateurs, Unix fût très rapidement pris en main par ces derniers, s'imposant au fil de la décennie 70 comme un des systèmes les plus utilisées par les universitaires. Parallèlement, il accompagna toutes les avancées technologiques de l'époque (arrivée de la DARPA, ARPANET). Il est majoritairement écrit dans le langage C (d'ailleurs crée pour l'occasion par Dennis Ritchie). Comme DOS, son utilsation dépendait grandement d'un système de shell.
Au début des années 80, pleins de catégories différentes d'Unix sont crées. De plus, le standard "Unix" a été posé en tant que marque par l'Open Group, permettant à tous les systèmes validés de disposer du nom "Unix" (respectant les standards Unix). La première catégorie de systèmes Unix est la catégorie des BSD. Les systèmes BSD sont toutes les catégories de systèmes Unix, diffusées sous la license BSD, assez permissive pour l'époque. Cependant, cette liberté de lincese a mené à de nombreux problèmes juridiques, qui ont mit des années à se régler pour la plupart. De nombreuses versions BSD d'Unix sont toujours accessibles aujourd'hui, comme OpenBSD, FreeBSD ou même Solaris. Cependant, bien que BSD soit permissif, il pouvait ne pas être entièrement libre. Pour y remédier, Richard Stallman 1983 le systèmes d'exploitaiton GNU, entièrement libre En 1993, pour assister GNU, un jeune étudiant, Linus Torvalds, lui créa un noyau, nommé Linux. De nombreuses versions de GNU couplé avec Linux (ou GNU/Linux) sont disponibles de nos jours, comme Ubuntu ou Linux Mint. Pour finir, nous devons citer le deuxième système le plus utilisé sur ordinateur : MacOS, qui est devenu un système compatible aux standards Unix en 2007.