1. A computer system comprising: a processor; random access memory; read only memory containing a first program executed by said processor upon resetting of the computer system; first storage means for storing first operating system and user programs executed by said processor, said first storage means including a region for storing a second program loaded and executed by said processor to commence booting the computer system from said first storage means; second storage means for storing second operating system and user programs executed by said processor, said second storage means including a region for storing a third program loaded and executed by said processor to commence booting the computer system from said second storage means; and a non-volatile memory device having locations for storing first and second code values and accessible to said processor, said first code value being a modification detection code of said second program and said second code value being a modification detection code of said third program, said locations being readable and writable by said processor after a first reset of the computer system, being write protected after receipt of a designated signal from said processor and being made writable again only after a second reset of the computer system, wherein said first program includes: means to determine if either of said second or third programs is present and loading said second or third program into said random access memory; means to compute the modification detection code of the program loaded into said random access memory; means to determine if said computed modification code is equal to said first code value stored in said non volatile memory device, to provide said designated signal to said non-volatile memory device if said computed modification detection code is equal to said first code value and to cause execution of the program loaded into said random access memory after providing said designated signal; means to determine if said computed modification detection code is equal to said second code value stored in said non-volatile memory device and to cause execution of the program loaded into said random access memory without providing said designated signal to said non-volatile memory device if said computed modification detection code is equal to said second code value; and means to halt operation of the computer system if said computed modification code is not equal to either said first code value or said second code value.