>_ DevTrendses

Idioma

Inicio

Lenguajes

Secciones

Frontend Backend Móvil DevOps AI / ML GameDev Blockchain Embebidos Seguridad
Python

Intenta sobrevivir como un programador de tareas

Estamos acostumbrados a maldecir al sistema operativo cuando la interfaz se congela o una aplicación entra en un silencioso "No responde". Parece que distribuir el tiempo de CPU y la memoria entre una docena de programas es una tarea trivial. ¿Pero qué pasa si eres tú quien está sentado frente al administrador de tareas?

El proyecto ¡Tú eres el SO! del desarrollador Pier-Luc Brault convierte los conceptos fundamentales de Ciencias de la Computación en un juego arcade hardcore. Aquí te conviertes literalmente en el núcleo del sistema. Tu objetivo es asignar memoria manualmente, cambiar contextos de procesos y manejar interrupciones de E/S. unos segundos de retraso — y un usuario furioso pulsará el botón de Reinicio.

Captura de pantalla del juego

Cómo funciona el juego

Las colas del sistema giran continuamente en pantalla. Cada proceso necesita tiempo de CPU, un bloque en RAM o una respuesta del disco.

Tienes que vigilar varios parámetros a la vez:

  • Carga en las colas de hilos listos para ejecutar.
  • Asignación y limpieza de páginas de RAM.
  • Solicitudes de E/S que bloquean la ejecución del programa.
  • El medidor de paciencia del usuario, que se agota con cada ciclo de tiempo inactivo.

Si dejas una tarea en modo de espera demasiado tiempo, el proceso comienza a "hervir". Una vez que la paciencia del usuario se agota, el juego termina con un reinicio por fallo.

¿Por qué debería un programador jugar al sistema operativo

Más allá de la emoción pura del juego, el proyecto proporciona una comprensión práctica de cosas que usualmente tratamos como abstracciones en los libros de texto de Tanenbaum.

1. Comprensión práctica de la planificación

Sientes en tiempo real por qué los algoritmos como Round Robin o Fair Share están diseñados de la manera que son. Intenta evitar manualmente una situación de inanición cuando un hilo pesado de segundo plano obstruye completamente la tubería mientras que los pequeños clics interactivos del usuario cuelgan sin respuesta.

2. Sandbox para escenarios personalizados

El repositorio incluye un modo sandbox. Puedes describir tu propio perfil de carga de trabajo en Python: establecer la intensidad de generación de tareas, los volúmenes de memoria requeridos y los tipos de operaciones de E/S. Esto convierte el juego en un banco de pruebas de estrés.

3. API para automatización y escritura de bots

La parte más interesante de la versión de escritorio es la capacidad de controlar el sistema no con tus manos, sino con código. El repositorio contiene el módulo automation/skeleton.py, a través del cual puedes conectar tu propio script de planificación.

Escribes un algoritmo de asignación de recursos en Python, ejecutas la simulación y ves cuántos ciclos dura tu propio programador contra el generador de eventos del juego.

Inicio y detalles técnicos

El proyecto está escrito en Python usando la biblioteca Pygame, y la versión web está compilada a WebAssembly. Puedes jugar directamente en el navegador en GitHub Pages o itch.io.

Si quieres escribir bots a través de la API de automatización, necesitarás ejecutar el proyecto localmente.

El repositorio indica un requisito estricto de versión: el autor usa Python 3.14 y el gestor de paquetes pipenv. Para aislamiento, lo mejor es usar pyenv directamente:

# Клонируем проект
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

Para construir una configuración sandbox personalizada, simplemente crea un archivo en el directorio src/sandbox/ y ejecuta el comando:

pipenv run sandbox sandbox.myConfig

¿Vale la pena tu tiempo

Si enseñas fundamentos de sistemas operativos, estás buscando una forma de ejercitar tu cerebro los fines de semana, o quieres escribir tu propio bot programador en Python, el proyecto definitivamente vale la pena ejecutar durante media hora. Te humilla rápidamente y deja claro por qué crear administradores de tareas confiables alguna vez les tomó a los ingenieros décadas.

Proyectos relacionados