A computer system and method that are useful for embedded operating
systems, thin client computing applications and the like, protects memory
blocks in a nonvolatile version of the system program used at startup
(reboot), for example in flash memory. Write operations to protected
memory blocks are intercepted. A potentially revised version of any
attempted re-written block is maintained in RAM and can be revised
further during runtime, the original protected block remaining unwritten.
A restriction process flags when or whether a revised block in the RAM is
to become permanent. During a write operation or at orderly system
shutdown, the revised blocks that were marked are written over the
protected blocks in the nonvolatile version. The process can be embodied
using file and directory attributes in variably sized Ramdisk virtual
drive in a Windows XP-embedded system, providing processes with read
access to the original protected block as well as the revisions, enabling
configuration changes and software installations without multiple
reboots.