Essayez de survivre en tant qu'ordonnanceur de tâches
On a l'habitude de maudire le système d'exploitation lorsque l'interface se fige ou qu'une application reste silencieusement en mode « Non répondu ». Distribuer le temps CPU et la mémoire entre une douzaine de programmes semble être une tâche triviale. Mais qu'en est-il si vous étiez celui qui gérait le gestionnaire de tâches ?
Le projet You're the OS! du développeur Pier-Luc Brault transforme les concepts fondamentaux de l'informatique en un jeu d'arcade hardcore. Ici, vous devenez littéralement le noyau du système. Votre objectif est d'allouer manuellement la mémoire, de basculer les contextes de processus et de gérer les interruptions E/S. Quelques secondes de retard — et un utilisateur furieux appuiera sur le bouton Réinitialiser.

Comment fonctionne le jeu
Les files d'attente du système tournent en permanence à l'écran. Chaque processus a besoin de temps CPU, d'un bloc en RAM ou d'une réponse du disque.
Vous devez suivre plusieurs paramètres à la fois :
- La charge des files d'attente de threads prêts à s'exécuter.
- L'allocation et le nettoyage des pages RAM.
- Les requêtes E/S qui bloquent l'exécution des programmes.
- La jauge de patience de l'utilisateur, qui se vide à chaque cycle de temps d'inactivité.
Si vous laissez une tâche en mode attente trop longtemps, le processus commence à « déborder ». Une fois la patience de l'utilisateur épuisée, le jeu se termine par un redémarrage crash.
Pourquoi un développeur devrait-il jouer à être le système d'exploitation
Au-delà du simple plaisir de jeu, le projet offre une compréhension pratique de choses que nous traitons habituellement comme des abstractions dans les manuels de Tanenbaum.
1. Compréhension pratique de l'ordonnancement
Vous ressentez en temps réel pourquoi des algorithmes comme Round Robin ou Fair Share sont conçus comme ils le sont. Essayez d'éviter manuellement une situation de famine lorsqu'un lourd thread d'arrière-plan obstrue complètement le pipeline tandis que les petits clics interactifs de l'utilisateur restent sans réponse.
2. Bac à sable pour les scénarios personnalisés
Le dépôt inclut un mode bac à sable. Vous pouvez décrire votre propre profil de charge de travail en Python : définir l'intensité d'apparition des tâches, les volumes de mémoire requis et les types d'opérations E/S. Cela transforme le jeu en banc de test de stress.
3. API pour l'automatisation et l'écriture de bots
La partie la plus intéressante de la version bureau est la possibilité de contrôler le système non pas avec vos mains, mais avec du code. Le dépôt contient le module automation/skeleton.py, à travers lequel vous pouvez connecter votre propre script d'ordonnancement.
Vous écrivez un algorithme d'allocation de ressources en Python, lancez la simulation et voyez combien de cycles votre propre ordonnanceur tient face au générateur d'événements du jeu.
Lancement et détails techniques
Le projet est écrit en Python avec la bibliothèque Pygame, et la version web est compilée en WebAssembly. Vous pouvez jouer directement dans le navigateur sur GitHub Pages ou itch.io.
Si vous voulez écrire des bots via l'API d'automatisation, vous devrez exécuter le projet en local.
Le dépôt indique une exigence stricte de version : l'auteur utilise Python 3.14 et le gestionnaire de paquets pipenv. Pour l'isolation, il est préférable d'utiliser pyenv directement :
# Клонируем проект
git clone https://github.com/plbrault/youre-the-os.git
cd youre-the-os
# Устанавливаем зависимости
pipenv sync --dev
# Запуск десктопной версии
pipenv run desktop
# Запуск собственного скрипта автоматизации
pipenv run auto automation/your_bot.py
Pour créer une configuration de bac à sable personnalisée, créez simplement un fichier dans le répertoire src/sandbox/ et exécutez la commande :
pipenv run sandbox sandbox.myConfig
Est-ce que ça vaut le coup
Si vous enseignez les fondamentaux des systèmes d'exploitation, si vous cherchez un moyen de faire travailler votre cerveau le week-end, ou si vous voulez écrire votre propre bot ordonnanceur en Python, le projet mérite certainement qu'on y passe une demi-heure. Il vous remet rapidement à votre place et explique clairement pourquoi la création de gestionnaires de tâches fiables a autrefois pris des décennies aux ingénieurs.
Projets similaires