3 ms·
IBM 370 mainframe, 80+ programmers, running VM/370 which creates virtual machines, one for each programmer. I'm one of two systems programmers with "superuser"
by daly 3y ago
IBM 370 mainframe, 80+ programmers, running VM/370 which creates virtual machines, one for each programmer.
I'm one of two systems programmers with "superuser" privs.
In the virtual machine you normally ran CMS but you could run anything. Some machines ran MVS.
To direct a command to the virtual machine itself you would prefix the command with a special character which by default was #
but any chosen character could be the magic prefix. So #cp ... would be a command to the virtual machine.
Bored one day I wondered if a virtual machine could run VM itself, on the "second level". I booted it up, changed the prefix
character to ! (so, !cp). I could create new virtual machines inside this new VM.
So, could a second level virtual machine run VM? I booted it up on the "third level", changed the prefix to @ (so, @cp)...
I got 8 levels deep. So, yes, VM could run VM, could run VM, could run VM... etc.
Game over. Time to start shutting down these embedded levels.
Out of habit I typed "#cp shutdown" ... and it did. The REAL VM on the REAL machine shut down. Panic run to the machine room to push the start button on the console.
Of course the system keeps a log ... and the other systems programmer showed up at my door ... and said "don't do that again".
Fun times.
- rwmj 3y agoI wrote this for abusing qemu in the same way: http://git.annexia.org/?p=supernested.git;a=summary http://git.annexia.org/?p=supernested.git;a=summary
- deadbeeves 3y agoI don't understand. I thought # was the prefix for the level 1 VM, not for the level 0 OS (the host). If you used # to send commands to level 0, what was the prefix for level 1?
- daly 3y agoSystem admin privilege #cp shutdown works on the real machine (unless the prefix is changed). I set the first virtual level system prefix to be !cp, second level to @cp, third level to $cp (look at the top of your number keys to see the sequence). I SHOULD have walked backward $cp shutdown ... @cp shutdown ... !cp shutdown but habit caused me to type #cp shutdown. Sigh.
- nedt 3y agoSounds like us used to linux working on solaris. Process got stuck and we were too lazy to look up the PID. So we just called “killall procname”. Machine immediately went dead. When the sysadmin came over we learned that killall does something different on solaris and we should never use it again.