Kill -9 With a Doom Shotgun
Herschel Krustofsky writes "A researcher at the University of New Mexico has modified the Doom source to visualize processes and kill them! Finally you can really enjoy killing that Netscape process that just won't die!" Allright, I'm impressed.
"I can guarantee that I will be releasing the Quake source code, the only question is the timing. I don't intend to release it until all of the initial licensee projects have shipped. Anachronox looks to be the last one out, so pull for their completion..." - John Carmack
The only link I could find quickly was to a cached Google page and it's towards the bottom, but it matches what I've read other places.
Quake levels have to be designed to play well. If you have more than about ten complex models in view rendering slows down a lot. DOOM allows a hundred or more sprites in view without much impact. Not saying you're wrong, just that there *are* tradeoffs. :)
Sysadmin NetHack!
The Netscape summons help! --More-- ...
The Netscape hits! --More--
The Netscape hits! --More--
The Netscape hits! --More--
You feel yourself slowing down. --More--
You kill -9 the csh! --More--
You feel wise. --More--
The sendmail breathes SPAM! --More--
You are hit by a blast of SPAM! --More--
But it reflects from your filter
Now where's that DevTeam when you need it...?
-- Arm yourself when the Frog God smiles.
I just wrote the code a couple of days ago and have not had a chance to try it in other environments. I was intending to post this doom thing to slashdot next week, but you just can't stop the speed of the internet. Nadeem Riaz made a suggestion that might fix the code on some platforms. I just changed my patch to reflect this. In response to some of the comments: The doom process itself is not in the game. I thought it would be too weird for the program to kill itself. However, I did not filter out other processes, so everything is fair game. Yes, the player can die, but this is to ensure that an over-eager sysadmin does not get in over her head. Dennis
su = iddqd
What I find interesting is all those wall panels that don't seem to serve any useful purpose. Wouldn't it be interesting if those panels could be xterms?
slashdot broke my sig
Doesn't this look like exactly the kind of sysadmin tool that needs to be bundled with Jesux?
--
grappler
Vidi, Vici, Veni
now if he can add 3d card support, you can finally have a good(?!?) reason to ask your boss for a 3d card in your pc... and a sound card with good speakers... ;)
Large print giveth, and the small print taketh away
So you don't accidentally kill your computer, you could make Init and csh into chain gunmen, or those goat-people... that way you couldn't accidentally kill them, well, unless you had the BFG ;-)
I love it!
I have been waiting for something like this forever! HEHEHE. Now, if we can just get this ported to another engine, say q2/q3test, throw in some Mesa, and we can have a really pointless interface to linux thast would be even more fun than hacking ~/.steprc files.
wolf31o2 Developer, Gentoo Linux Games Team
No, seriously...
Well, maybe not the Doom model, but something like Ultima.. Think about it. To change directories, you go to a different room. The objects in it are files. The 'people' are processes.
Killing a process is just the beginning. Imagine a man process that will have a conversation with you. Or a grep, that looks like a dog, which you send into a village to thrash around and bring back that file (scroll) that you forgot...
I like the fact that rm -Rf * is there when I need it, but a OO, interactive, VR interface to Unix (Linux) would be a Gates killer.
-- What you do today will cost you a day of your life.
:Certain processes are vital to the computer's operation and should not be killed. For example, :after I took the screenshot of myself being :attacked by csh, csh was shot by friendly fire from :behind, possibly by tcsh or xv, and my session was abruptly terminated.
The best laugh I've had all day 8-). Pass the BFG...
Just imagine the horrific carnage of killing a parallel computation process on a Beowulf cluster!
---------------------
---------------------
John 3:16 - God's Public License
An eight year old could become the next system administrator of a company!
;-)
Yeah. Just like NT.
dragonhawk@iname.microsoft.com
I do not like Microsoft. Remove them from my email address.
The way to make this truly useful, and a new way to compute a la Neuromancer, is to not clamp down on the metaphor. Don't make rooms be processes or machines or any other fixed metaphor, and don't make "weapons" be tools from some vast and complicated "stateful" array.
Make each room you are in able to have it's own metaphor, and have the objects in the room be manipulable via some simple message passing tools in your hand.
So, starting with the kill processes room as described, make the doorways be "portals" to other rooms (but don't limit it...) which may contain other metaphors. So, I can enter the spreadsheets room where I can calculate, or I can enter the Beowulf maze where I can get performance stats, or I can enter the weather forecasting room which is just the metaphor for the processes that're running on the Beowulf cluster.
I.E., the "dungeon" is just your desktop as you know and love it, with a 3d-visual cartoon rendering whenever you roll your mouse somewhere and launch something. And make it be that easy: screw complicated maneuvering in favor of point-and-click only. Give the visual appearance of doing cool stuff, but make the user only point and click.
P.S. by the way, I proposed a similar scheme a while ago to some VRML vermin who were looking in a discussion group for "how to make VRML" more appealing to business users. The whole problem I saw with VRML was that it was visually cool, but too hard to use. Gamers may be familiar with lots of controls, but some of us aren't interested in that and they just create barriers to entry. Give me a point and click VRML UI with cool visuals, or an Id engine, and I can get people to click on your ads, guaranteed: Oooh! that tickles, stop it, you rascal!
set DOOMWADDIR=/usr/local/games/xdoom in your environment. Copy your old doom wad to that directory.
should not be there. If it is, that would be the first /. poll that covered all possible choices: just not allowed:)
Bill - aka taniwha
--
Leave others their otherness. -- Aratak
time for all of you old doom mappers out there to ressurect that map of where you work, so you can easily know which machine you're about to shutdown with that BFG you're holding...
Can it be added to to remove users as well?
I'll see your Constitution and raise you a Queen.
Accually
it exist
But it only runs on IRIX.
Imagine the possibilities if it was used under NT or something where processes die an a regular basis... (naah - you'd need a body bag for all the dead admins)
On a more serious note, the idea of using a 3-D interface of some sort has been around for a long time. Using Doom (or any 1PS engine) as a front end is a fairly novel and potentially useful way to take advantage of 3-D for a limited set of tasks. I'm not sure how you'd -HUP a process (visually, that is), and there's other places the idea needs refining, but the idea is quite interesting.
I think you'd use Q3 to kill processes on someone else's machine, not your own, wouldn't you? After all, that's what "team play" is about, right?
- -Josh Turiel
-- Josh Turiel
"2. Do not eat iPod Shuffle."
A group of networked computers, a few users logged into each computer. The computers are personified as forts or bases or something on a map.
The goal? Kill others' processes while defending your own. Lots of room for strategy by starting huge ones that whomp on intruding sysadmins, or surgically zapping shells to get rid of users. Each team can have a set number of weapons, which some mastermind distributes among his teammates.
Who wins? the last team with a working computer.
Finally, computer software starts to catch
up ridiculous Hollywood portrayals of computer
software. Now if I could just run a program
to let me break the world's toughest encryption
in 30 key strokes or less.
Those who can do. Those who can't sue.
be taken a step further to make a totally 3D interface for systems. Now is probably the best time in computing history to attempt such a project. Processors are pushing the gigahertz range and 3D accelerators are spitting out 1600x1200x32 resolutions at 30fps and up. A 3D interface would be a hundred times more intuitive than the desktop environment a majority of users have in front of them. It would be the REAL revolution in computing that's been promised for years by different people. This concept has a good deal of potential.
I'm a loner Dottie, a Rebel.
Image how a shutdown sequence would look with this environment...All the monsters in the room would start to kill themselves in a quiet orderley fashion until a screen comes up says
"Level Complete. Kills 32/32 Secret 1/10". Press Enter To Continue"
Hang on...NT already does that whole enter to continue thingy...I've changed my mind, that would actually be really anoying!
With a new breed of flashy interfaces on sysadmin/hacking tools, this makes the perfect answer to the earlier discussion about movies. Somebody doing some kind of hacking job could have it shown visually in the movie by having the person move in 3D through a room.
And it wouldn't give up anything in the way of realism.
--
grappler
Vidi, Vici, Veni
Personally, I'd like to see more applications like that. Not a mandatory feature of an OS, but cool toys you can use to impress people. Stuff like:
Daemon processes: Visit the Infernal Realms (again, a la Doom) and meet your Daemons in person!
Login: Finally! We can have a giant 'ACCESS DENIED' when we're denied login! Alternately, you could see a locked door as in Doom.
Network architecture: Imagine being able to navigate your network as in all those Gibsonian worlds... In a Doom environment, no less. A room is a particular server, and doors are gateways. You get that moving skyline when you're about to go on the Internet.
Antivirus software: pump that shotgun with the latest shells, and go hunt for some bugs, as you navigate your file system and kill infected files!
Well, alright, that's humorous. But I still think there's plenty of potential with 'over-visualising' processes and commands. It's fun, and it helps the layman understand what's going on.
However:
Making it "mandatory" is just plain wrong. Microsoft is the champion in the over-visualisation. There's some times when you just need a bloody command prompt to do something. It's silly to always have graphics everywhere, and it bugs down your performance.
So... Cool toys, yes. Features? Please, no!
"There is no surer way to ruin a good discussion than to contaminate it with the facts."
No, that's the kind of research you would be doing, Spiny. :) I think it's called 'zoom,' of all the uncreative things out there. I dunno, and I'm too tired to look it up on the UNM CS website (too tired to even see if that's the right URL for the department). This is an interface project that's been going on for, like, 10 years now (I know they had a lot of work put in when I was in middle school). When I saw it running on an SGI Indigo back then, it was the coolest thing ever, aside from 'ant: the movie' running in the background. :)
---
"'Is not a quine' is not a quine" is a quine.
"'Is not a quine' is not a quine" is a quine.
Quine "quine?
..that nothing innovative comes out of the free software community? At least I've never heard of anything quite like this before..
However..
I'm not sure I exactly like the idea of my processes beating each other up. I already had the problem of processes dying for no apparent reason under Windows. Why would I want to relive one of its worst "features"?
~ Kish
I had this idea of feeding all of my manpages into a local megahal to make a virtual UNIX guru...
Unfortunately, it ate up my 96M of ram before I could even interact. Perhaps this would work on one of those insane machines with gigs of ram and altogether too much processing power.
F0 07 C7 C8
I modified the Doom process-killing thingy to print the first 14 characters of the process' name to make em easier to spot: http://raq.linux-florida.com/users/chris/xdoomsrc- cshepher.tar.gz -Chris Shepherd
-----------------------
Nicotine free Amish .sig.
Look, I'll explain what the point of this.
The first time I read this, I thought this was the funniest thing I'd heard in weeks.
But you gotta wonder -- in all seriousness -- if this isn't actually a pretty importent moment.
The idea of this -- us verus them, the users versus the processes they (could/should/ought to) control -- is metaphorically quite interesting.
I mean, the notion of allowing processes to fight back -- or wounding but not killing a process -- is pretty fascinating -- especially when everything is played out on a virtual battlefield.
It's quite frightening when you stop and think about it. Yeah, it's funny: but imagine somehow if artificial intelligence (on the part of the machines) is slipped in here and this whole thing is played out on a much larger scale -- on a much larger, much different sort of virtual battlefield.
It's funny, but the implications of this are pretty overwhelming.
Very cool.
The page was really an exploration of an idea, not an advertisement for the program, which was a simple proof-of-concept. I wanted to see if the basic things could be done easily. And they can be! I also wanted to inspire people to implement cyberspace.
Advice for people who want to see this work on their machines:
- Make sure that the unpatched Doom source will compile on your machine, then add the patch. I hope that the port is portable with only minor adjustments necessary.
- I didn't change the Makefile, just the GNUmakefile. So if you are using the Makefile, add the object file "pr_process.o" to the dependencies.
- Look at lines near the markers "--pid--". These are the lines of code that I added. I hacked them into the code in a day. And it shows. You can do better!
I am surrounded by Debian Linux boxes, so I really can't help those who can't get stuff to compile. DennisI think you meant MCP (Master Control Program). But, yeah, cool. Hrmm, all we need now is a Tron level for doom....
Bill - aka taniwha
--
Leave others their otherness. -- Aratak
Ok, so this seems like a viable option. Some modification is needed, but it is a work in progress.
Wasn't there a question in the Ask Carmack post about appllying quake code to cyberspace uses?
My question is, how does this translate into the security arena? Can the program be modified to detect/track users as well as processes?
Myabe each room defines a user's space. The user is a boss monster of some sort (depends on their user privledges), and all of their processes are soldiers in the room with them. The more privledges, the more access cards you have, and the bigger your avatar.
So, you would be able to track whatever users are on your system, and know if they should be there or not. Pretty much instantly you would know if an intruder is in your system. Becuase suddenly there's another root avatar running around. Much easier than looking through logs and other traces. And you can literally blow the guy away.
And maybe you could use the system to visually playback the actions taken by a user over the course of their login?
"You want to kiss the sky? Better learn how to kneel." - U2
"It was like trying to herd cats..." - Robert A. Heinlein
Sig:
Barbeque is a noun. Not a verb.
Along similar lines :
In the text adventure embedded inside Emacs (M-x dunnet) you can find a circuit board for a VAX lying around. If you find the cabinet, you can insert the board and the machine boots up and gives you a login prompt. You can log into the VAX and look at the filesystem. Any objects you had with you appear as 'objects' in the file system
(e.g. shovel.o). There is also paper.o.Z.
"Wait a minute" you think,"I didn't have a piece of paper", so you uncompress the file and then
log out and, lo and behold, there is a slip of paper with a clue written on it.
Things get even weirder later when you telnet from the VAX somewhere else and your body in the adventure is transported to another room with no way back...
but this would certainly add some drama to an exploit once you are in.- -------------
--------------------------------------------
So let me get this straight...
If this would be fully developed, we would be able to control system administration through playing a souped up game of DOOM! Do you know what this means?
An eight year old could become the next system administrator of a company!
CEO: "Johnny, my computer locked up again, what do I do?"
Administrator: "Hold on a sec...gotta whip out my BFG for this one...DIE YOU ALIEN SCUM!!!"
Is it just me or would it be a Bad Thing (tm) to let anyone wander around with a BFG in "process killing mode"? One itchy trigger finger and 75 processes bite the dust.
"Sorry I kill'd ya', Fidget." - Time Bandits
At http://ultracool.net/xdoom-proc-pnames.gz you'll find a patch that displays process names + pids instead of just the pids. Makes it a lot more fun :). It's a quick hack, but, hey - so was the original patch. Apply it after you applied the original patch, same method.
to "zombie process".
... my quota's full so autosave stopped working, and someone kills xemacs after an all night coding session. "XEmacs was fragged by [31337 Cl4nn3r]"
this patch could conceivably be very dangerous. what if someone compromises root and gets a hold of a BFG ? or if someone took a chainsaw to your shell session. i'm getting queasy already.
they should send kill messages to owners of the killed processes. i could see it now
The real question here is what are they "researching" down there at the University if New Mexico?
Hotnutz.com
Okay, you asked for it, here it goes :) - last night I quickly hacked together a patch for the process.patched xdoom so that if you are root, it displays users instead of processes. If you wound a user, all her/his processes get reniced. If you kill a user, boom go her/his processes - *evil grin*.
Get the patch at http://ultracool.net/xdoom-userfun.patc h.gz. Apply it after you patched xdoom with xdoom-process.patch, in the same way. This includes my pnames patch btw, so don't apply it over that one if you have that (this also means that user/process-names are displayed in addition to the uid/pids).
A neat idea would be to build a file manager out of the doom source; each room would be a directory (tastefully decorated according to its use), with corridors connecting them as per the directory tree. All the files would be things lying around and you could implement other equipment besides guns to operate on them. Processes would show up as monsters in their working directory. Their using files would of course also be represented by them using the file objects.
/usr/bin and waking it up), give the file to it, and the contents will scroll across its belly (think teletubbies here).
No more 'mv' -- just pick that file up, walk to another room and drop it there! You want to read a text file? Just invoke the 'ls' monster (possibly by walking down to
Trust the Computer. The Computer is your friend.
What I'd really like to see is not process management, but USER management. When some sniviler gets out of line, it's time to go sniping!
Brings a whole new meaning to:
"What's your user name again? *Clickity-click*"
--
Does narcissism count as a hobby? --Shawn Latimer
One interesting idea this leads to is the adoption of Doom as the basis for a 3-D visulaization interface for network and system management.
.WAD files represtenting network maps, zonefiles, LDAP directories, SNMP agents and so forth, and using a modified Doom interface to select and perform actions on objects.
.WAD design back in the day, but surely there are tools out there for turning architectural floorplans into .WADs, too.
Imagine extending things like Ganymede, Scotty and relational asset databases to auto-generate
I never got into
The big issues would be (1) the one-map-at-a-time design of Doom, which would make it hard to toggle between physical and logical views of networks, and (2) the fixed-target UI of Doom, which is good for the game, less good for this. Marathon, with its mouse-positioned gunsight, may not have been as good a game, but it would have made a bettern WAN visualization tool out of the box.
Okay, now here's what we have to do...
:-)
:-)
Come up with a map structure to allow visualization of your network by the room layout (this would rock)..
Make the maps be dynamic, so that when other machines come on the network, other rooms can be added for those machines (this is probably the most important thing to do)..
Make important processes unkillable.. make processes that probably shouldn't be killed fight back harder..
Processes that die naturally should wink out of existance rather than dying.. Don't want to end up with bodies lying all over the place for no good reason..
Is there a way to kill a process remotely short of using ssh or something similar? No big deal if not. You could use something to the effect of when you open the door (that has the machine name written on it), it ssh's to that machine in order to give you process control or gives you "ACCESS DENIED" and shoots at you a few times if you don't have access...
Also, machines running windows would be represented by empty rooms with the Bill Gates Head in the middle (sort of like Romero's Head in Doom2).. Kill the head and the windows machine crashes..
For Windows NT there is remote process control, but I don't know if there's an implementation on Linux.. Must check into it. Then you could, at least partially, kill NT processes remotely..
---
- Give a man a fire and he's warm for a day, but set him on fire and he's warm for the rest of his life.
It might be, but not in the semi-paranoid manner you meant (e.g. runaway processes fighting back).
One of those predicitions for the future from a couple weeks ago included a revolutionary 3D user interface on Linux. This could potentially be the start of it. I'm not entirely sure that's what the creator of this little hack intended - he could have just intended to make something cool and not been thinking about the implications for the future.
Admittedly, Doom is a technologically dated engine, but this is where it'll start. Who knows, in 5-10 years, we might all be reminiscing about "that antique 2.5D 'kill -9' interface", all the while working in more realistic and fully realized 3D interfaces.
If you like doom processes, you might want to check out lavaps . It provides a somewhat more peaceful way to visualize processes, including how much memory and CPU they consume. (Just recently posted to freshmeat.)
Everything but the lowlevel sound/music code and the game artwork. There are available substitutes for both, but clearly this program requires you to have purchased DOOM.WAD or DOOM2.WAD previously.
IIRC, Quake 1 is supposed to be released this Christmas or so. However, you *still* might want to use DOOM, just because not everyone has supported 3D acceleration yet, and frame rates are an issue. DOOM is also far more compact, and requires much less memory and time to develop levels.
I used to dismiss the idea of a navigable/immersive cyberspace as a workable metaphor as naive, but I'm beginning to think that Gibson et al were really on to something.
I can imagine encapsulating a wide number of functions into this sort of interface; if, ultimately, every aspect of a system, and the data that they host, is made accessible or inaccessible using these sort of metaphors, the Gibsonian vision of cyberspace might be viable.
(One of my favorite Gibson quotes is this reality check: "Cyberspace is where they keep your money.")
It was only a couple weeks after I dismissed the idea of 'virtual spaces' as hokum among my friends that I really started getting into multiplayer Quake - and even looking for friends on servers.
We'll all have a little egg on our face if the "Hollywood O.S." turns out to have a grain of prophetic truth to it, no?
Quite a few years ago I worked with an ISP that maintained most of it's admin information(non-server stuff) through BBS software.. we would each log into a terminal and spend the next half hour or so killing each others admin accts, changing passwds, creating new accounts to battle the others with, and so on..
_ _____________
I see this as a potential extension of that good ol' game.. could play something like a varient of Capture the General, where each player tries his damndest to protect his csh monster, while trying to kill the shell of every other player..or perhaps defending your network, attempting to take out the machines of the opposing network.. imagine that, your csh dies and POOF, you're gone..slide your chair over and jump onto the other machine before he hits that as well...
_______________________________________________
--
driph
Interesting possibilities:
:)
;-)
* Interface improvements: perhaps add a '?' command that identifies what you're aiming at.
* Changing it so you represent your current shell, or perhaps the Doom process itself... (or, alternately, Deathmatch -- and you've got to protect your own processes as well.
* Think _Doom II_. What happens with Arch-viles, and the cubes that spawn monsters?
* Perhaps different rooms could represent different priorities, or alternately UIDs. With the latter, keys can be used to limit power (lock the doors).
* Cyberdaemons with 10x rate-of-fire (and invisible rockets!) and hit points might be able to seek-and-destroy unauthorized processes on their own.
Only the dead have seen the end of war.
Of course you don't see yourself using it in any real situation. It's just a "for fun" thing to do. Lighten up, okay?
Some responses make you think this is expected to replace top.
-Brent--
Network architecture: Imagine being able to navigate your network as in all those Gibsonian worlds... In a Doom environment, no less. A room is a particular server, and doors are gateways. You get that moving skyline when you're about to go on the Internet.
"It's a UNIX system! I know this!!!"
"If one is really a superior person, the fact is likely to leak out without too much assistance" -- John Andrew Holmes
I'm not sure if wounding processes or letting them kill each other is such a good idea, but this model does appear to have some interesting and potentially useful applications-- especially for large distributed systems (Beowulf clusters, etc.) or systems that are very dynamic (by dynamic, I essentially mean networks that have boxes entering and leaving the network regularly). For instance, let's say we have the latter situation and we've used our DoomUI (DUI? *grin*)to construct some sort of level (probably some sort of large central room with a bunch of corridors branching off of it) with a series of doors, one for each host. Then, when a host is online and open, the door that corresponds to the host will open for users allowing them to enter, use the resources (Consider the amusing image of marching distributed Beowulf processes into a compute node at gunpoint (or cattleprod or whatever)!) and then leave. (Continuing on the Beowulf vein, a queuing system could manifest itself as an entity in the main room and direct processes to the appropriate compute node, or if you had a Globus type of thing going on you could ship processes between nodes by marching them over-- this would, of course, require some good agent-style technology). Also, on multi-admin systems you could easily tell if another administrator was using a particular node if, say, you needed to reboot it or even the current user population for that matter.
:-)
At any rate, at least its entertaining
Will this be a Bonobo component?
It's 10 PM. Do you know if you're un-American?
:)
http://www.iinet.net.au/~bofh/
I think it has most of them. Do it, do it now!
InThane
Bash started to attack me! I was forced to kill it!
I guess that's what happens when you use that OpenSource stuff, huh?
Linux Myth: Bash, even though it sounds painful, is actually very safe.
Truth: Bash processes attack you when you don't expect it.
This message is copyright 1999 by Microsoft Corp. and paid for by Microsoft Corp. However, the research was conducted independantly by the Gartner Group.
I've downloaded all the files you need and put them up at
ftp://foof.org/pub
--
Ian Peters