Apprendre à développer votre propre système d'exploitation
Ça vous parait impossible ? Et pourtant il existe des ressources gratuites et très bien expliquées sur le sujet !
Article publié le 30/06/2020, dernière mise à jour le 22/10/2024
Dans un précédent article, je vous parlais de la série "Halt and Catch Fire", dont la première saison traite de la création d'un ordinateur personnel dans les années 80.
On y voit notamment des ingénieur(e)s concevoir de zéro un BIOS (Basic Input Output System) ainsi qu'un système d'exploitation pour leur nouvelle machine.
Étant développeur web, plus habitué aux langages de haut niveau (par opposition au bas niveau, près de l'électronique), je me suis toujours dit que ce n'était pas le genre de choses qui m'attirait.
Créer un OS pour processeur ARM
Puis le hasard faisant bien les choses, Twitter m'a fait découvrir un projet Github s'intitulant : "Raspberry Pi OS : Learning operating system development using Linux kernel and Raspberry Pi"
Ce monde qui me paraissait alors inatteignable s'ouvrait à moi, semé d'embuches, certes, mais accessible.
Dans ce projet, divisé en plusieurs chapitres, eux-mêmes divisés en plusieurs leçons, chaque étape est détaillée, chaque ligne de code est expliquée, et même les instructions d'assembleur ARM sont commentées.
Mais attention, ne vous attendez pas à développer un clone de Linux, le but de ce projet est de vous guider dans la création d'un OS très simplifié, de manière à ce que vous puissiez comprendre comme fonctionne globalement un système d'exploitation comme Linux.
Soyons honnête, ce ne seront sûrement pas des connaissances que vous exploiterez de si tôt dans votre job de tous les jours, mais quelle satisfaction de pouvoir comprendre un peu mieux comment nos incroyables machines fonctionnent !
N'ayez pas peur
Bien que ce projet de vulgarisation soit très bien expliqué et détaillé, j'ai quand même vite ressenti mes lacunes en système et en assembleur me rattraper.
J'ai donc fait une pause dans la lecture afin de trouver un cours qui me permettrait de combler ces lacunes, et j'ai trouvé mon bonheur sur OpenClassroom : https://openclassrooms.com/fr/courses/1464031-en-profondeur-avec-lassembleur
Je suis actuellement dans la lecture de ce cours, mais je voulais absolument vous partager ces découvertes pour que peut-être d'autres développeurs puissent découvrir ce domaine, et surtout le fait qu'il soit rendu accessible par des ingénieurs talentueux, passionnés et pédagogues !
En bonus : Créer un OS pour processeur x86
Le projet que je vous ai présenté précédemment est valable uniquement pour les architectures ARM, que l'on retrouve dans nos smartphones, dans des projets embarqués ou encore sur les Raspberry Pi.
Mais si vous êtes plutôt intéressé par apprendre à développer un OS sur x86, soit l'architecture présente dans la majorité de nos ordinateurs aujourd'hui, il existe la même initiative, toujours disponible gratuitement sur Github à l'adresse : https://littleosbook.github.io/#about-the-book
Aucun commentaire pour l'instant