You're the OS!

Os jogos salvos ficam apenas neste navegador.

Sobre o jogo

You're the OS! ("Você é o sistema operacional!") põe você no comando de um computador, não como usuário, mas como o próprio sistema operacional. No alto da tela ficam as CPUs; embaixo delas, uma lista crescente de processos ociosos, cada um com uma carinha que mostra como ele está. Todo processo quer tempo de CPU, e há sempre mais processos que CPUs, então o jogo inteiro é colocar e tirar processos dos processadores, dando a vez a cada um antes que ele fique com fome demais.

O processo que espera demais muda de cor e de humor, do amarelo satisfeito ao vermelho furioso, e se ninguém o atende o usuário perde a paciência e o mata. Com dez processos mortos o usuário reinicia a máquina: fim de jogo. A pontuação sobe enquanto os processos estão bem atendidos e cai a cada processo que o usuário precisa matar, então o objetivo é ficar no ar o máximo de tempo e com o mínimo de sofrimento.

E não é só escalonamento. Os processos em execução às vezes travam esperando entrada ou saída, e só você pode entregar os eventos de E/S pendentes. Eles também enchem a memória de páginas, e quando a RAM acaba as páginas novas vão para o disco, onde os processos não conseguem usá-las até você trazê-las de volta. Processos prioritários, marcados com uma coroa, passam fome mais depressa que os outros. Manter tudo isso em equilíbrio enquanto a carga aumenta é o jogo.

Pier-Luc Brault escreveu o jogo em Python com o pygame-ce e o lançou em 2023 como software livre, e continua a atualizá-lo. Sem uma linha de teoria, ele transforma ideias de livro de sistemas operacionais (escalonamento, inanição, E/S bloqueante e paginação) em algo que se sente na ponta dos dedos.

Jogando aqui

Clique em Play e espere o Python e o jogo carregarem na página (o download tem uns 25 MB, então a primeira partida demora alguns segundos para abrir). Se o carregador mostrar "Ready to start!", clique no jogo mais uma vez; depois escolha a dificuldade e aperte PLAY. O menu principal também tem um tutorial curto com imagens (HOW TO PLAY) e a lista de atalhos (HOTKEYS). O jogo é em inglês.

São cinco níveis de dificuldade, de Easy a Insane, além de um modo Custom em que você escolhe o número de CPUs, o número de processos, o tamanho da RAM, a lentidão das trocas com o disco e a frequência de processos novos, prioritários e bloqueantes. O jogo não guarda pontuações entre sessões: cada partida começa do zero.

Esta versão roda exatamente como o autor a escreveu. A única diferença está na entrega: o runtime de Python que o jogo normalmente carrega de um servidor de terceiros é servido por este site junto com o jogo.

Controles

Entrada Ação
Clique num processo ocioso põe o processo numa CPU livre
Clique num processo em execução tira o processo da CPU
Clique na barra de eventos de E/S, ou Espaço entrega os eventos de E/S pendentes
Clique numa página de memória move a página entre a RAM e o disco
Shift + clique numa página move uma fileira inteira de páginas
1 a 9, 0 tira o processo da CPU 1 a 9, ou 10
Shift + 1 a 6 tira o processo da CPU 11 a 16
S ordena os processos (quando o botão Sort aparece)
Botão MENU reinicia a partida ou volta ao menu principal (Esc fecha o menu)

O jogo foi feito para mouse e teclado.

Dicas

Reveze, não estacione. O processo na CPU se recupera, mas todos os outros continuam passando fome enquanto isso. Tire os processos assim que voltarem a parecer contentes e dê a CPU ao mais desesperado.

Fique de olho nos processos bloqueados. Um processo esperando E/S desperdiça a CPU. Tire-o, entregue os eventos de E/S e ponha-o de volta depois.

Mantenha na RAM as páginas em uso. Páginas brancas estão em uso, as cinzas estão paradas. Quando a RAM enche, mande as paradas para o disco para caberem as ativas, e traga de volta logo as páginas de um processo que pisca.

Coroas primeiro. Processos prioritários passam pelos níveis de fome mais depressa, então atenda-os antes dos outros.

Créditos e licença

You're the OS! foi criado por Pier-Luc Brault e é software livre sob a GNU General Public License, versão 3 ou posterior. O ícone do jogo é uma versão modificada de uma imagem de Muhammat Sukirman (CC BY 3.0), os emojis vêm do OpenMoji (CC BY-SA 4.0), a foto da tela de Game Over é de Aleksandar Cvetanović (publicada no Pixabay em 2018 sob CC0) e as fontes VT323 (Peter Hull) e Victor Mono (Rune Bjørnerås) estão sob a SIL Open Font License. Ele roda no runtime do pygbag (MIT), com o CPython (licença PSF) e o pygame-ce (GNU LGPL 2.1). Os textos das licenças e o código-fonte completo desta build, incluindo o pygame-ce, estão nos links desta página.