[comp.unix.wizards] Swapping Unix processes

mark@motcsd.UUCP (Mark Jeghers) (04/12/89)

In article <450@jolnet.ORPK.IL.US> acarter@jolnet.ORPK.IL.US (Alfonso Carter) writes:
>Is it possible to take a process between two users and switch them?
>Say user "joe" is editing a file, and "dan" is playing nethack.
>Is it possible to change it so in an instant, joe is playing
>nethack, and dan is editing that file?


If you had a sort of "process supervisor" which routed and controlled the
processes' terminal IO, you could do it.  Similar to a window manager.

Mark Jeghers
Motorola Computer Systems

chris@mimsy.UUCP (Chris Torek) (04/12/89)

In article <450@jolnet.ORPK.IL.US> acarter@jolnet.ORPK.IL.US
(Alfonso Carter) writes:
>Is it possible to take a process between two users and switch them?
>Say user "joe" is editing a file, and "dan" is playing nethack.
>Is it possible to change it so in an instant, joe is playing
>nethack, and dan is editing that file?

That would not be secure.

It might be made secure if the switch required that the uids be
equal, or the invoker were root.  This sort of thing is possible
if you replace vhangup with an `fswitch' system call.

More generally, cooperating user processes can do this by talking
with a server over one of the non-parent/child IPC facilities present
in later Unixes.  This tends to be less efficient than is desirable.
-- 
In-Real-Life: Chris Torek, Univ of MD Comp Sci Dept (+1 301 454 7163)
Domain:	chris@mimsy.umd.edu	Path:	uunet!mimsy!chris

acarter@jolnet.ORPK.IL.US (Alfonso Carter) (04/13/89)

Thanks for the reply mark.  At least now I know it can be done.  I suppose
It means one would have to access the kernel process table and re-arrange 
it? [probably a stupid question].  I haven't had much luck changing
kernel's tables.  Thanks for the reply.