[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Total recall undo and redo!



A few ideas at this historical moment when we have a chance to do things
which can only be done at a genesis of a new OS:

Idea 1 - A possibility to undo everything (except a luddite hammer blow)

An old idea of mine: a system which would let you undo anything, at the
level that it would track all changes to memory and disk, at some
reasonably low resolution to make it practical.

File "saves", "deletes" and "renames" would be undoable (=automatic
version control). Window functions (window size & location changes)
would be undoable. The total system state of any process, including
memory and corresponding file versions, would be monitored by a
background program which would, processor load and file space
permitting, save change deltas of memory images to a disk. 

The priority of the undo monitor could be made lower or higher,
depending on the desired level of "backupability". Priority could be
made higher for some desired processes, like those speaking with an
untrusted party like a human being or with any badly behaving
components. As a typically Inferno-genial idea the guys implemented
separate memory pools for different priority data. This gives a
possibility to handle them differently, say, to ignore screen graphics
which can be regenerated from the saved state.

There would naturally be a possibility to save and resume state of all
processes at shutdown so that you would never have to quit programs just
to shut down the machine. Only now we can dream of this when we have a
system like Inferno wich is not leaking memory and which is reliable
enough not needing to be restarted a couple of times a day.

This scheme always used to give me some provocative thoughts of why
"disk" should be any different from "memory", if both can made to appear
to survive a powerdown? Why not relate to all memory - RAM and disk - as
one pool of bits? Why not to equal the concepts of windows, documents
and files to a single concept, say, "object" and let the machine worry
if it is in the RAM or on the disk? Why to "save" anything, ever, if all
memory appears permanent?

Idea 2 - Never having to do same series of interactions twice

While I am at it, how about this: a keyboard driver which can recall any
previous "word" or a "phrase" by the user typing its first characters,
across user sessions? Detailed spesification is open for debate. You
could also pick up recallable history from output characters, e.g. the
words in the current window. We should probably include symbolic actions
done with mouse.

Yours,
Anssi
the global village fool