Trente petits pas à l’intérieur d’un ordinateur
Le cours OpenKernel
Comprenez une idée, essayez-la dans un processeur visible et résolvez un défi vérifié par la machine. Commencez avec trois instructions et terminez avec vos propres petits programmes.
Sans compte ni installation. Une leçon est terminée seulement quand votre programme réussit tous les cas du défi. Progression et badges restent dans ce navigateur.
Commencer la leçon 1 → Ouvrir le laboratoire gratuit
Votre progression
La progression est chargée dans votre navigateur.
Terminez une unité pour obtenir son badge. Les badges enregistrent les défis vérifiés, pas les visites.
La navigation privée, l’effacement des données du site ou un autre appareil peuvent supprimer votre suivi local. Vous pouvez suivre les leçons dans l’ordre de votre choix.
Unité 1 · environ 20 minutes
Découvrir la machine
Expliquez le cycle lecture/exécution, les registres, PC, la sortie et l’arrêt.
0 défis vérifiés sur 3 terminés
- Votre premier programme en émojis · 5 minutes
Chargez un nombre dans le processeur, affichez-le et arrêtez le programme.
- Comprendre les registres · 8 minutes
Utilisez les huit espaces de travail rapides sans perdre une valeur.
- Suivre le compteur ordinal · 7 minutes
Lisez une trace et distinguez les lignes du code source des adresses d’instructions.
Unité 2 · environ 28 minutes
Calculs et entrées
Construisez des calculs entiers avec des entrées sauvegardées et des cas de test.
0 défis vérifiés sur 3 terminés
- Calculs avec des émojis · 9 minutes
Enchaînez addition, soustraction et multiplication dans le bon ordre.
- Division et restes · 9 minutes
Expliquez la division arrondie vers le bas et le reste signé, même pour les nombres négatifs.
- Une calculatrice à deux entrées · 10 minutes
Construisez une calculatrice réutilisable plutôt qu’une réponse fixe.
Unité 3 · environ 28 minutes
La mémoire en octets
Distinguez les valeurs des adresses et lisez ou écrivez des octets en mémoire.
0 défis vérifiés sur 3 terminés
- La mémoire : le carnet de l’ordinateur · 10 minutes
Enregistrez un octet et relisez-le réellement après avoir remplacé R0.
- Des adresses dans les registres · 9 minutes
Utilisez une adresse comme donnée et consultez une table.
- Octets et limites · 9 minutes
Découvrez pourquoi la mémoire réduit les valeurs mais pas les registres.
Unité 4 · environ 29 minutes
Décisions et indicateurs
Exprimez des décisions avec des comparaisons, des restes et des chemins nommés.
0 défis vérifiés sur 3 terminés
- Logique conditionnelle : prendre une décision · 10 minutes
Comparez des valeurs puis choisissez un chemin selon un indicateur mémorisé.
- Pair ou impair · 9 minutes
Classez une entrée avec un reste et un branchement.
- Une décision fondée sur la mémoire · 10 minutes
Prenez une décision à partir d’une donnée enregistrée et conservez le résultat.
Unité 5 · environ 34 minutes
Répétitions et compteurs
Utilisez des boucles bornées, le cas zéro, des compteurs et des accumulateurs.
0 défis vérifiés sur 3 terminés
- Les boucles : répéter des actions · 10 minutes
Associez LOOP à RETURN et gérez correctement zéro répétition.
- Construire un compteur · 12 minutes
Affichez de 1 à 10, puis généralisez le comptage.
- La somme de un à N · 12 minutes
Gardez l’accumulateur séparé du compteur de boucle.
Unité 6 · environ 42 minutes
Des algorithmes avec un état
Décrivez et examinez les invariants de factorielle, de Fibonacci et de copie inversée.
0 défis vérifiés sur 3 terminés
- Factorielle et invariants de boucle · 12 minutes
Utilisez un accumulateur multiplicatif et expliquez pourquoi 0! vaut 1.
- La suite de Fibonacci · 15 minutes
Conservez deux valeurs précédentes et actualisez-les dans un ordre sûr.
- Inverser un tampon mémoire · 15 minutes
Copiez un tampon à l’envers avec des pointeurs source et destination.
Unité 7 · environ 39 minutes
La pile et les fonctions
Utilisez des données dernier entré/premier sorti, des cadres d’appel et des conventions de sauvegarde/restauration.
0 défis vérifiés sur 3 terminés
- La pile : dernier entré, premier sorti · 12 minutes
Sauvegardez des valeurs sur la pile de données et récupérez-les dans l’ordre inverse.
- Appeler un sous-programme · 12 minutes
Réutilisez du code et revenez à l’instruction située après CALL.
- Préserver l’état de l’appelant · 15 minutes
Utilisez une convention de sauvegarde et restauration quand une fonction a besoin d’un espace temporaire.
Unité 8 · environ 39 minutes
Bits et représentation
Sélectionnez et basculez des bits ; expliquez le fonctionnement des entiers signés sur 32 bits.
0 défis vérifiés sur 3 terminés
- Masques de bits et indicateurs · 12 minutes
Sélectionnez des bits avec AND et activez-les avec OR.
- Basculer des bits · 12 minutes
Utilisez la transformation réversible de XOR pour modifier un réglage enregistré.
- Bits signés et valeur maximale · 15 minutes
Comprenez NOT et testez une différence signée avec un masque de signe.
Unité 9 · environ 45 minutes
Ordonnancement, cœurs et événements
Distinguez politique d’ordonnancement, répartition du travail et restauration d’état par un gestionnaire.
0 défis vérifiés sur 3 terminés
- Ordonnancement coopératif · 15 minutes
Faites alterner des tâches et distinguez la politique d’exécution des instructions du processeur.
- Répartir le travail entre des cœurs · 15 minutes
Divisez des travaux indépendants et combinez leurs résultats.
- Interruptions et gestionnaires · 15 minutes
Traitez un événement et restaurez la valeur du programme interrompu.
Unité 10 · environ 56 minutes
Construire de petits programmes
Combinez les instructions pour créer un jeu, un utilitaire de tampon et un répartiteur de travaux.
0 défis vérifiés sur 3 terminés
- Un petit jeu de cible · 18 minutes
Construisez un jeu de trois tours avec un état enregistré et un score.
- Un utilitaire de tampon utilisant la pile · 18 minutes
Combinez entrées, boucles, pile et stockage indexé.
- Votre propre mini système d’exploitation · 20 minutes
Répartissez des travaux en attente vers des services réutilisables et enregistrez les résultats.