psDooM (1999, Dennis L. Chao)Chi ha un po' di esperienza dei sistemi Unix, ricorderà sicuramente il comando ps (Process Status), il cui effetto era quello di elencare lo stato dei processi attivi su una macchina. Ai tempi delle scuole superiori era il mio comando preferito, perché insieme ai comandi kill e grep si potevano identificare e chiudere i programmi aperti e le shell remote dei compagni di scuola. Proprio in quegli anni un ambizioso progetto vedeva la luce: psDooM. Trattavasi di un'interfaccia grafica basata su Doom per la gestione e il monitoraggio dei processi di una macchina.

Nel dicembre 1997 la Id Software rilasciò i codici sorgenti di Doom sotto licenza GPL e da allora nuove versioni furono create da sviluppatori indipendenti. Una di queste era psDooM.

Dennis L. ChaoNell'ottobre del 1999, presso l'università del Nuovo Messico, Dennis L. Chao utilizzò i sorgenti di XDoom, una versione di Doom per ambieti Unix, per creare un programma di monitoraggio dei processi di sistema. Il software scandiva i processi attivi sulla macchina locale mediante il comando ps e per ciascun processo di essi istanziava un mostro. Il mostro girava liberamente per il livello ma poteva essere identificato perché sopra di esso era visibile una scritta che riportava il PID (Process ID) del processo e gli ultimi sette caratteri del suo nome.

Fare fuoco su di esso equivaleva ad eseguire il comando renice +5 <pid>, il quale diminuisce la priorità del processo, mentre l'uccisione comportava un bel kill -9 <pid> e la terminazione istantanea del processo. psDooM nasce ufficialmente quando David Koppenhofer incappa in un articolo su Slashdot.org e appresa la storia visita la pagina di Dennis sul sito dell'università del Nuovo Messico e decide di apportare alcuni miglioramenti al progetto che lo stesso Chao suggeriva.

Essendo basato sul codice di XDoom, psDooM incorpora quasi tutte le funzioni del gioco, tuttavia i processi-mostro possono essere incontrati solo in alcune zone nel primo livello del primo episodio e la scansione dei processi attivi viene eseguita ad intervalli regolari. Quando un processo viene rilevato per la prima volta in una data scansione, questo viene istanziato come mostro, mentre i processi uccisi vengono rimossi anche dal gioco e non saranno più incontrati.

Shell di UNIXC'è una considerazione da fare, psDooM gira con i permessi dell'utente che lo ha lanciato. Questo significa che le chiamate di sistema di renice e kill possono fallire se si cerca di agire su un processo che non appartiene all'utente. In questo caso il processo-mostro sarà ucciso senza influenzare il processo sottostante, ed il mostro resuscitato alla prossima scansione dei processi attivi. Il software può essere configurato per mostrare solo i processi di un particolare utente. In assenza di specifiche psDoom farà del suo meglio per compiere la scelta migliore. Il massimo del divertimento è eseguire il programma da superuser!

Sono inoltre disponibili alcune configurazioni per evitare che i processi vengano effettivamente uccisi, questo se si vuole usare psDooM come monitor di sistema.

Nella versione originale di psDooM, i processi potevano anche uccidersi tra di loro, caratteristica in seguito limitata ma non completamente rimossa.