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"

s-matyukevich/raspberry-pi-os
Learning operating system development using Linux kernel and Raspberry Pi - s-matyukevich/raspberry-pi-os

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ême 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

À bientôt !


À propos de l'auteur

Hello, je suis Nicolas Brondin-Bernard, ingénieur web indépendant depuis 2015 passionné par le partage de d'expériences et de connaissances.

Aujourd'hui je suis aussi coach pour développeurs web juniors, tu peux me contacter sur nicolas@brondin.com, sur mon site ou devenir membre de ma newsletter "JAW : de Junior à Warrior" pour recevoir 1 conseil par semaine par email.


Photo par Alexandre Debiève sur Unsplash