Pour plus de détails sur les systèmes d’exploitation, vous pouvez télécharger un livre complet sur le sujet ici.
Fonction du système d’exploitation
Le système d’exploitation (Operating System en anglais, ou OS) est un logiciel destiné à présenter à l’utilisateur d’un calculateur (utilisateur qui peut d’ailleurs être un autre programme) une vue simplifiée et stylisée de ce calculateur ; cette vue simplifiée peut être vue comme une machine virtuelle. En effet, le système d’exploitation d’un ordinateur physique doit effectuer des opérations sur des disques durs, écrans, imprimantes et autres dispositifs matériels, dits périphériques, dont il existe une grande variété. Il est indispensable d’interposer une couche d’abstraction entre ces matériels et l’utilisateur : je peux recopier le texte de mon programme sur mon disque dur sans savoir combien celui-ci possède de pistes et combien il peut stocker de caractères par piste. Le système d’exploitation me cache ces détails, qui n’ont aucun intérêt pour moi, mais que l’ingénieur qui écrit le sous-programme du système chargé d’écrire sur le disque doit connaître (ce sous-programme se nomme un pilote d’appareil périphérique, en anglais driver). Incidemment, la prise réseau est un périphérique comme un autre.
De même, le système d’exploitation cache à l’utilisateur les méthodes complexes grâce auxquelles il peut exécuter simultanément sur son ordinateur plusieurs logiciels : naviguer sur le Web, y copier des données pour les recopier dans la fenêtre du traitement de texte, imprimer un autre texte, etc.
En fait, tous les autres programmes sont des sous-programmes du système d’exploitation.
Complexité et taille du système d’exploitation
On mesure en général la taille d’un programme par le nombre de lignes qu’il comporte (lignes de code). Un programmeur peut écrire, en moyenne et en comptant le temps passé à la documentation de son programmes, aux réunions de projet, etc., entre 5 et 10 000 lignes de code par an ; cela dépend bien sûr de la complexité du projet, du nombre d’intervenants à coordonner, etc.
Un système d’exploitation tel que Windows compte de 30 à 40 millions de lignes de code, soit au moins 3000 années-homme, en fait beaucoup plus parce qu’un projet de cette taille nécessite une division du travail qui implique des tâches considérables de planification, de coordination, de réception des travaux. Le système d’exploitation est sans doute l’objet technique le plus complexe de notre époque.
De surcroît, le système d’exploitation doit évoluer en permanence. Chaque jour arrivent sur le marché de nouveaux dispositifs matériels tels que cartes graphiques, caméras, disques durs, mémoires Flash, qui nécessitent l’écriture de nouveaux pilotes. L’apparition de nouveaux virus ou la découverte de nouvelles failles de sécurité oblige à corriger de système pour qu’il y résiste. Le travail de maintenance, de ce fait, exige le maintien d’équipes importantes.
Marché des systèmes d’exploitation
Le marché mondial des systèmes d’exploitation commerciaux est réparti aujourd’hui entre trois fournisseurs : Microsoft avec Windows, Apple avec macOS et iOS, et Google avec Android. À quoi s’ajoutent quelques systèmes très spécialisés qui occupent des niches minuscules.
À côté des systèmes commerciaux on trouve les systèmes distribués sous forme de logiciels libres, qui obéissent à des règles de diffusion et de commercialisation complètement différentes.
Le logiciel libre obéit à quatre règles :
– la liberté d’utiliser le logiciel ;
– la liberté de copier le logiciel ;
– la liberté d’étudier le logiciel ;
– la liberté de modifier le logiciel et de redistribuer les versions modifiées.
Le principal système d’exploitation libre est Linux, mais il faut mentionner également les trois versions d’Unix BSD. Notons que macOS et iOS sont basés sur BSD, cependant qu’Android utilise un noyau Linux, c’est-à-dire que les systèmes commerciaux tirent parti du logiciel libre. Pour l’accès au réseau tous les systèmes ont repris les logiciels libres TCP/IP développés initialement à Berkeley.
Le principal obstacle à la diffusion des systèmes d’exploitation libres dans le grand public est que lorsqu’un particulier achète un ordinateur dans un magasin, il est déjà équipé d’un système commercial, dont le remplacement par un autre système est une opération technique complexe.
Par contre, les systèmes d’exploitation libres sont très répandus dans les centres de calcul administrés par des professionnels. La totalité des 500 supercalculateurs les plus puissants du monde fonctionnent sous Linux.
Les systèmes d’Apple et de Google, nous l’avons dit, reposent sur une base de systèmes libres (Unix BSD pour Apple, Linux pour Google).
Opportunités européennes dans ce domaine
Nous voyons que l’Europe est aujourd’hui totalement absente du marché des systèmes d’exploitation commerciaux, ce qui est grave parce que c’est un des deux principaux postes de création de valeur de la filière informatique avec les microprocesseurs, et que l’absence européenne se traduit par la disparition des compétences correspondantes.
La meilleure possibilité de redresser cette situation réside dans le recours aux systèmes d’exploitation libres, pour lesquels subsistent des compétences européennes.
Le moyen d’utiliser ce levier possible de redressement passe par les politiques publiques : choix des logiciels libres pour les administrations et dans le système éducatif, encouragement aux développeurs, etc.
En France la Gendarmerie nationale est sur cette voie, mais l’Éducation nationale et la Défense nationale se sont complètement inclinées devant Microsoft.
Recommandations de politique
Pour ce domaine des systèmes d’exploitation nous pouvons formuler les recommandations suivantes :
– Mise en place d’une task force européenne consacrée au logiciel libre, appuyée sur les ministères en charge de l’Éducation nationale, de l’Industrie et de l’Administration publique, avec pour missions le soutien à la R&D en logiciel libre et l’incitation à l’usage des logiciels libres par les services publics.
– Introduction dans les programmes de l’enseignement secondaire, au plus tard dans le deuxième cycle de l’enseignement secondaire (CITE 3 dans la Classification Internationale type de l’éducation 2011) et progressivement dès l’enseignement primaire (CITE 1), de l’enseignement de l’informatique obligatoire pour toutes les spécialités : programmation des ordinateurs, système d’exploitation, réseau.
– La constitution d’un corps enseignant d’informatique ne pourra pas atteindre immédiatement les effectifs nécessaires par les voies habituelles : il est donc recommandé d’instaurer un dispositif de formation pédagogique adapté pour recruter dans le système éducatif des informaticiens professionnels prêts à se consacrer à l’enseignement.
– Création d’un Institut européen pour la promotion de l’informatique, de son enseignement et du logiciel libre dans les pays membres. Il existe déjà des structures consacrées à ces questions, par exemple le laboratoire IRILL (Initiative pour la recherche et l’innovation sur le logiciel libre) de l’université Paris VII-Denis-Diderot, dirigé par le professeur Roberto di Cosmo.