Prova a sopravvivere nei panni di uno scheduler
Siamo abituati a maledire il sistema operativo quando l'interfaccia si blocca o un'applicazione va in un silenzioso "Non risponde". Sembra che distribuire il tempo della CPU e la memoria tra una dozzina di programmi sia un compito banale. Ma cosa succede se sei tu quello seduto davanti al task manager?
Il progetto You're the OS! dello sviluppatore Pier-Luc Brault trasforma i concetti fondamentali dell'informatica in un gioco arcade hardcore. Qui diventi letteralmente il kernel del sistema. Il tuo obiettivo è allocare manualmente la memoria, cambiare i contesti dei processi e gestire gli interrupt I/O. Qualche secondo di ritardo — e un utente arrabbiato premerà il pulsante Reset.

Come funziona il gameplay
Le code di sistema girano continuamente sullo schermo. Ogni processo ha bisogno di tempo CPU, di un blocco in RAM o di una risposta dal disco.
Devi tenere d'occhio diversi parametri contemporaneamente:
- Carico sulle code di thread pronti all'esecuzione.
- Allocazione e pulizia delle pagine RAM.
- Richieste I/O che bloccano l'esecuzione del programma.
- Il misuratore di pazienza dell'utente, che si svuota ad ogni ciclo di tempo inattivo.
Se lasci un task in modalità di attesa troppo a lungo, il processo inizia a "ribollire". Quando la pazienza dell'utente finisce, il gioco termina con un riavvio da crash.
Perché un programmatore dovrebbe giocare al sistema operativo
Oltre alla pura eccitazione del gioco, il progetto offre una comprensione pratica di cose che di solito trattiamo come astrazioni nei libri di testo di Tanenbaum.
1. Comprensione pratica dello scheduling
Senti in tempo reale perché algoritmi come Round Robin o Fair Share sono progettati così come sono. Prova a evitare manualmente una situazione di starvation quando un thread pesante in background intasa completamente la pipeline mentre i piccoli click interattivi dell'utente restano appesi senza risposta.
2. Sandbox per scenari personalizzati
Il repository include una modalità sandbox. Puoi descrivere il tuo profilo di carico di lavoro in Python: imposta l'intensità di spawn dei task, i volumi di memoria richiesti e i tipi di operazioni I/O. Questo trasforma il gioco in un banco di prova per stress test.
3. API per l'automazione e la scrittura di bot
La parte più interessante della versione desktop è la possibilità di controllare il sistema non con le mani, ma con il codice. Il repository contiene il modulo automation/skeleton.py, attraverso il quale puoi connettere il tuo script scheduler personalizzato.
Scrivi un algoritmo di allocazione delle risorse in Python, esegui la simulazione e vedi per quanti cicli il tuo scheduler resiste contro il generatore di eventi del gioco.
Avvio e dettagli tecnici
Il progetto è scritto in Python usando la libreria Pygame, e la versione web è compilata in WebAssembly. Puoi giocare direttamente nel browser su GitHub Pages o itch.io.
Se vuoi scrivere bot attraverso l'API di automazione, dovrai eseguire il progetto in locale.
Il repository indica un requisito di versione rigoroso: l'autore usa Python 3.14 e il gestore di pacchetti pipenv. Per l'isolamento, è meglio usare subito pyenv:
# Клонируем проект
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
Per creare una configurazione sandbox personalizzata, basta creare un file nella directory src/sandbox/ ed eseguire il comando:
pipenv run sandbox sandbox.myConfig
Vale la pena dedicargli tempo
Se insegni fondamenti di sistemi operativi, stai cercando un modo per allenare il cervello nei fine settimana, o vuoi scrivere il tuo bot scheduler in Python, il progetto vale sicuramente la pena di provare per mezz'ora. Ti umilia rapidamente e spiega chiaramente perché creare task manager affidabili ha richiesto agli ingegneri decenni.
Progetti correlati