タスクスケジューラーとして生き残ってみろ
インターフェースが固まったり、アプリケーションが黙って「応答なし」になったりすると、私たちはOSを呪うことに慣れっこだ。 десятокのプログラムにCPU時間とメモリを分配するのは、些細な作業のように思える。だが、 task managerの前に座っているのがあなただったらどうだろうか?
開発者Pier-Luc BraultによるYou're the OS!プロジェクトは、コンピュータサイエンスの基本概念をハードコアアーケードゲームに変える。在这里、あなたはまさにシステムカーネルになる。メモリを手動で割り当て、プロセスコンテキストを切り替え、I/O割込みを処理する必要がある。数秒遅れるだけで — 怒ったユーザーがリセットボタンを押してくる。

ゲームの仕組み
システムのキューが画面上で絶えず回転している。各プロセスはCPU時間、RAM上のブロック、またはディスクからの応答を必要としている。
同時にいくつかのパラメータを追跡する必要がある:
- 実行可能スレッドキューの負荷。
- RAMページの割り当てとクリーンアップ。
- プログラム実行をブロックするI/Oリクエスト。
- ユーザーの忍耐力計 — アイドル時間ごとに減少する。
タスクを待機モードに放置しすぎると、プロセスは「沸騰し始める」。ユーザーの忍耐力がなくなると、ゲームはクラッシュでリブートし終わる。
なぜプログラマーがOSをプレイすべきか
純粋なゲーム興奮以外にも、このプロジェクトはタネンバウムの教科書を抽象として扱うことの多いものを、手を動かして理解できる。
1. スケジューリングの実体験的理解
Round RobinやFair Shareなどのアルゴリズムがなぜそのように設計されているかをリアルタイムで感じられる。ヘビーなバックグラウンドスレッドがパイプラインを完全に占有し、小さなインタラクティブなユーザークリックが応答なしでハングする中で、スターベーション状況を手動で回避してみてください。
2. カスタムシナリオのサンドボックス
リポジトリにはサンドボックスモードが含まれている。Pythonで独自のワークロードプロファイルを記述できる:タスク生成の強度、必要なメモリ量、I/O操作の種類を設定できる。これにより、ゲームはストレステストベンチに変身する。
3. 自動化とボット作成用のAPI
デスクトップ版で最も興味深い部分は、手ではなくコードでシステムを制御できることだ。リポジトリにはautomation/skeleton.pyモジュールが含まれており、ここから独自のスケジューラースクリプトを接続できる。
Pythonでリソース割り当てアルゴリズムを書き、シミュレーションを実行し、ゲームのイベントジェネレータに対して自分のスケジューラーが何サイクル持つかを確認しよう。
起動と技術的な詳細
このプロジェクトはPythonとPygameライブラリを使用して書かれており、Web版はWebAssemblyにコンパイルされている。GitHub Pagesまたはitch.ioでブラウザ内で直接プレイできる。
自動化APIを通じてボットを作成したい場合は、プロジェクトをローカルで実行する必要がある。
リポジトリには厳密なバージョン要件が記載されている:著者はPython 3.14とパッケージマネージャーpipenvを使用している。隔離のためには、最初から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
カスタムサンドボックス設定をビルドするには、src/sandbox/ディレクトリにファイルを作成し、次のコマンドを実行する:
pipenv run sandbox sandbox.myConfig
見る価値はあるか
OSの基礎を教えている人、週末に頭を鍛える方法を探している人、またはPythonで独自のスケジューラーボットを書きたい人であれば、このプロジェクトは確かに30分は試す価値がある。すぐに謙虚な気持ちにさせ、信頼性の高いタスクマネージャーを作るためにエンジニアたちが何年もかかった理由を明確に教えてくれる。
関連プロジェクト