WO2001013221A2 - Method and apparatus for embedding operating system in rom - Google Patents

Method and apparatus for embedding operating system in rom Download PDF

Info

Publication number
WO2001013221A2
WO2001013221A2 PCT/US2000/020556 US0020556W WO0113221A2 WO 2001013221 A2 WO2001013221 A2 WO 2001013221A2 US 0020556 W US0020556 W US 0020556W WO 0113221 A2 WO0113221 A2 WO 0113221A2
Authority
WO
WIPO (PCT)
Prior art keywords
operating system
storage medium
read
rom
computer
Prior art date
Application number
PCT/US2000/020556
Other languages
French (fr)
Other versions
WO2001013221A3 (en
Inventor
Bill Rommerdahl
Arthur Donovan
Original Assignee
Gamecraft, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Gamecraft, Inc. filed Critical Gamecraft, Inc.
Priority to AU63869/00A priority Critical patent/AU6386900A/en
Publication of WO2001013221A2 publication Critical patent/WO2001013221A2/en
Publication of WO2001013221A3 publication Critical patent/WO2001013221A3/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system

Definitions

  • This invention relates to the field of computer operating systems and, more specifically, to a method and apparatus for embedding an operating system in read-only memory (ROM).
  • ROM read-only memory
  • computers have been integrated into gaming machines replicating what had formerly been strictly mechanical or hard-wired electrical devices.
  • gaming machines have the capability of providing a user with a variety of sophisticated computer based games, such as Poker, Black Jack, etc.
  • the games are typically programmable computer applications that, like other computer applications, run "on top" of an operating system that controls the basic operation of the computer system. While the programmability of computer based gaming systems allows for easy modification of the games presented, that same programmability also has the disadvantage of making such systems vulnerable to undesired alterations.
  • a persisting problem with a publicly available computer system is that it is susceptible to attack by information technology intruders (hackers). It is desirable to prevent damage from any attack by ensuring that the software and the hardware installed on the system remain intact. Specifically, a method for maintaining the integrity of software installed on a computer system, including the operating system and other executable programs, is highly desirable.
  • ROM non-volatile read-only memory
  • a ROM is generally a data storage device that is programmed at the time of its manufacture and cannot be reprogrammed by a computer user.
  • ROM is a solid state ROM integrated circuit chip.
  • CD-ROM Compact Disk Read-Only Memory
  • a boot routine is automatically executed when the computer is turned on or reset.
  • the boot routine provides basic input/ output capabilities allowing the rest of the operating system to be loaded.
  • the operating system is an advanced operating system such as Windows 95
  • certain files normally stored on a hard drive e.g., registry files, swap files, .INI files, etc.
  • This state information is carried over from the last time the operating system was loaded.
  • the operating system modifies the initialization files to update the computer system's state information that is recorded in those files.
  • initialization files must reside on a read /write storage medium so that they can be read and modified during startup or shutdown. Because of this requirement, if such an advanced operating system is stored on read-only media, it will not boot and operate properly, because the system is unable to write to and update the initialization files.
  • ROM readonly memory
  • a computer system can be booted from a read-only non-volatile memory device such as a CD-ROM.
  • a read-only non-volatile memory device such as a CD-ROM.
  • an advanced operating system is installed onto a hard disk temporarily connected to a computer for which the system is desired to be embedded.
  • a boot floppy disk is made using the utilities of the operating system.
  • the boot floppy includes a basic operating system.
  • the system files on the boot floppy are modified to include instructions to the computer system to ignore certain error messages during loading of the advanced operating system.
  • instructions are included on the floppy disk (e.g. in start-up or configuration files such as AUTOEXEC.BAT and CONFIG.SYS) to create a RAM disk and to assign a boot up hard drive letter (e.g.
  • C "C:" to the RAM disk, using the utilities of the basic operating system on the floppy disk, and to copy the image of the advanced operating system as stored on the hard drive (which has been burnt onto the CD-ROM) from the CD-ROM to the RAM disk. Thereafter, images of the modified floppy and the hard disk are burnt onto a CD-ROM, and the CD- ROM is made bootable. The hard disk is then disconnected from the computer.
  • the basic operating system from the floppy image burnt onto the CD- ROM boots first.
  • a RAM disk is created using the utilities of the basic operating system, and the image of the advanced operating system burnt onto the CD-ROM is copied to the RAM disk.
  • the advanced operating system is then loaded from the RAM disk into the computer's memory.
  • the CD-ROM also contains one or more application programs that are loaded and executed once the advanced operating system has been booted.
  • Figure 1 illustrates a general purpose computer, according to one or more embodiments of the invention.
  • Figure 2 is a block diagram of a general purpose computer in connection with various memory storage components, according to one or more embodiments of the invention.
  • Figure 3 is a flow diagram illustrating the method of embedding an operating system onto ROM, according to one or more embodiments of the invention.
  • Figure 4 is a flow diagram illustrating the method of booting a computer system from ROM, according to one or more embodiments of the invention.
  • Figure 5 is a flow diagram illustrating the method of embedding Windows 95 operating system onto CD-ROM media, according to one or more embodiments of the invention.
  • the invention provides a method and apparatus for embedding an operating system in read-only memory (ROM).
  • ROM read-only memory
  • numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be apparent, however, to one skilled in the art that the present invention may be practiced without these specific details.
  • this invention in one or more embodiments is described with respect to certain features and requirements of Microsoft Windows Operating Systems and CD ROM storage media. However, this is by way of example only. It will be understood that this invention is applicable to other operating systems and/or other ROM storage media in a similar manner. Further, in some instances, well-known features of the invention have not been described in detail so not to unnecessarily obscure the present invention.
  • Figure 1 illustrates an example of a general purpose computer system for which an operating system may be embedded using one or more embodiments of the invention.
  • a general purpose computer such as computer 100 may also be used to implement one or more embodiments of the invention.
  • a keyboard 110 and mouse 111 are coupled to a system bus 118. The keyboard and mouse are for introducing user input to the computer system and communicating that user input to processor 113.
  • Other suitable input devices may be used in addition to, or in place of, mouse 111 and keyboard 110.
  • the input devices used include a touch sensitive video screen and a plurality of user input keys.
  • I/O (input/output) unit 119 coupled to system bus 118 represents such I/O elements as a printer, A/V (audio/ video) I/O, etc.
  • Computer 100 includes a video memory 114, main memory 115 and mass storage 112, all coupled to system bus 118 along with keyboard 110, mouse 111 and processor 113.
  • the mass storage 112 may include both fixed and removable media, such as magnetic, optical or magnetic optical storage systems or any other available mass storage technology. In one or more embodiments, mass storage 112 is limited to ROM mass storage media, such as, for example CD- ROM.
  • Bus 118 may contain, for example, thirty- two address lines for addressing video memory 114 or main memory 115.
  • the system bus 118 also includes, for example, a 64-bit data bus for transferring data between and among the components, such as processor 113, main memory 115, video memory 114 and mass storage 112. Alternatively, multiplex data/address lines may be used instead of separate data and address lines.
  • the processor 113 is a microprocessor manufactured by Intel, such as the 80X86, or Pentium processor. However, any other suitable microprocessor or microcomputer may be utilized.
  • Main memory 115 is comprised of dynamic random access memory (DRAM).
  • Video memory 114 is a dual-ported video random access memory. One port of the video memory 114 is coupled to video amplifier 116.
  • the video amplifier 116 is used to drive the cathode ray tube (CRT) raster monitor 117.
  • Video amplifier 116 is well known in the art and may be implemented by any suitable apparatus. This circuitry converts pixel data stored in video memory 114 to a raster signal suitable for use by monitor 117.
  • Monitor 117 is a type of monitor suitable for displaying graphic images.
  • Computer 100 may also include a communication interface 120 coupled to bus 118.
  • Communication interface 120 provides a two-way data communication coupling via a network link 121 to a local network 122.
  • ISDN integrated services digital network
  • communication interface 120 provides a data communication connection to the corresponding type of telephone line, which comprises part of network link 121.
  • LAN local area network
  • communication interface 120 provides a data communication connection via network link 121 to a compatible LAN.
  • Wireless links are also possible.
  • communication interface 120 sends and receives electrical, electromagnetic or optical signals, which carry digital data streams representing various types of information.
  • Network link 121 typically provides data communication through one or more networks to other data devices.
  • network link 121 may provide a connection through local network 122 to local server computer 123 or to data equipment operated by an Internet Service Provider (ISP) 124.
  • ISP 124 in turn provides data communication services through the world wide packet data communication network now commonly referred to as the "Internet" 125.
  • network link 121 provides a connection among a plurality of computer devices that utilize one or more embodiments of the invention.
  • Local network 122 and Internet 125 both use electrical, electromagnetic or optical signals, which carry digital data streams.
  • the signals through the various networks and the signals on network link 121 and through communication interface 120, which carry the digital data to and from computer 100, are exemplary forms of carrier waves transporting the information.
  • Computer 100 can send messages and receive data, including program code, through the network(s), network link 121, and communication interface 120.
  • remote server computer 126 might transmit a requested code for an application program through Internet 125, ISP 124, local network 122 and communication interface 120.
  • the received code may be executed by processor 113 as it is received, and/or stored in mass storage 112, or other non-volatile storage for later execution.
  • computer 100 may obtain application code in the form of a carrier wave.
  • Application code may be embodied in any form of computer program product.
  • a computer program product comprises a medium configured to store or transport computer readable code, or in which computer readable code may be embedded.
  • Some examples of computer program products are CD-ROM disks, ROM cards, floppy disks, magnetic tapes, computer hard drives, servers on a network, and carrier waves.
  • Embodiments of the invention may be implemented for and /or using any type of computer system or programming or processing environment.
  • the present invention allows a computer system to be safely booted and operated according in a manner that ensures that any software installed on the system remains intact and safe from modification.
  • system integrity is preserved by storing the operating system and other software on unalterable read-only media, such as, for example, a read-only CD ROM.
  • FIG 2 is a block diagram of various storage components that are utilized to embed an operating system onto ROM 230, according to one or more embodiments of the invention.
  • Processor 200 of a computer system e.g. computer system 100 of Figure 1 is connected to storage media components, such as floppy disk 210, hard drive 220, CD ROM 230, and RAM disk 240 via bus 218.
  • storage media contains digital data.
  • floppy disk 210 includes boot sector 212 that stores data comprising the loading routines for a basic operating system, such as MSDOS, for initial booting of the system, as well as other data (as will be described below).
  • system files on floppy disk 210 are modified to allow certain boot up instructions to be included in the system files.
  • the system files on floppy disk 210 are so modified by replacing them with system files normally used only on hard disks.
  • Floppy disk 210 also contains the basic operating system 215, including drivers 217 for configuring various devices attached to computer 100, such as hard drive 220, CD ROM 230, RAM disk 240, etc.
  • hard drive 220 has been loaded with advanced operating system 222 and one or more other application programs 225 that utilize operating system 222.
  • CD ROM 230 and RAM disk 240 have been loaded with necessary software and system files for loading operating system 222, as further described below.
  • Figure 3 is a flow diagram showing the steps for embedding operating system 222 in ROM 230, according to one or more embodiments of the invention.
  • operating system 222 is installed on hard drive 220 while hard drive 220 is temporarily connected to computer 100.
  • the installed operating system is then loaded into the computer system at step 315.
  • virtual memory is turned off after the system is loaded.
  • the virtual memory option when selected, emulates a portion of the hard disk space as RAM memory. Turning off this option disables any memory write operation to that portion of the hard disk associated with the virtual memory option. After virtual memory has been turned off, the system is once again rebooted.
  • step 320 extraneous files installed as a part of the operating system that are not needed for the particular use for which the operating system is being installed are removed from operating system 222 to reduce its size and the amount of storage space it requires. For example, if the computer system for which the operating system is installed will not be connected to the Internet, then Internet related files may be removed. In embodiments of the invention, where installation of additional software (e.g., gaming software such as Poker, Black Jack, etc.) is desired, the additional software and the necessary device drivers are loaded onto hard drive 220 at step 325.
  • additional software e.g., gaming software such as Poker, Black Jack, etc.
  • the operating system files and /or application program files are stored on hard drive 220 in compressed form to reduce storage requirements.
  • the added software is installed in the same partition of hard drive 220 into which operating system 222 has been installed (typically the "C" drive). In one or more embodiments, some or all of the additional software is installed into a different partition.
  • bootable floppy disk 210 is prepared utilizing the utilities of the installed operating system.
  • a bootable floppy disk is a formatted storage medium that includes a basic operating system and that can be used to boot the computer system with the basic operating system when it is turned on or restarted. Due to the small storage capacity of floppy disk 210, only a basic operating system, such as MSDOS, is installed on bootable floppy disk 210.
  • floppy disk 210 includes boot sector 212 that includes routines for loading a basic operation system.
  • Floppy disk 210 also includes basic operating system 215, device drivers 217 and other files needed for initially booting and setting up computer system 100.
  • the basic operating system that is copied onto floppy disk 210 is MSDOS
  • certain executable files are added to floppy disk 210 to provide additional functionality over the basic operations available via the basic operating system.
  • such files include HIMEM.SYS, MSCDEX.EXE, RAMDRIVE.SYS, SETVER.EXE, and PKUNZIP.EXE.
  • certain system files stored on floppy disk 210 are modified to allow additional instructions to the computer system to be included.
  • MSDOS is the basic operating system installed on floppy disk 210
  • MSDOS.SYS allows a user to add certain computer system instructions to the MSDOS.SYS file that are read by the computer system when MSDOS is loaded, while the floppy version of MSDOS.SYS does not allow such instructions to be added.
  • instructions are added to the MSDOS.SYS file telling computer system 100 to disregard certain error messages during loading of the advanced operating system.
  • instructions are included in the MSDOS.SYS file instructing the computer system to disregard error messages indicating missing or corrupted Windows 95 registry files.
  • system configuration files such as CONFIG.SYS and AUTOEXEC.BAT are also created and/or modified to include commands for loading device drivers (e.g., drivers 217) necessary for locating and operating a CD ROM device, for creating and assigning a drive letter to a RAM disk, for copying data from a CD-ROM to the RAM disk, and for executing one or more programs that have been copied to the RAM disk.
  • device drivers e.g., drivers 217
  • floppy disk 210 is prepared as a bootable floppy and after all the necessary files and drivers are included thereon, at step 340, in one or more embodiments, a compressed image 223 of operating system 222 is created and stored separately from operating system 222 on hard drive 220.
  • images of floppy disk 210 and operating system 222 are copied onto ROM 230 creating floppy image 235 and operating system image 237.
  • operating system image 237 may be of operating system 222 in compressed or uncompressed form.
  • one or more application programs 225 are also copied onto ROM 230.
  • operating system 222 and application programs 225 are stored on hard drive 220 and an image of hard drive 220 is copied onto ROM 230.
  • ROM 230 is a CD-ROM that is made bootable, for example, according to industry standards, such as the El Torito Standard for bootable CD-ROM's. It includes boot sector 232, floppy image 235, and operating system image 237.
  • floppy image 232 is configured as the boot partition of CD- ROM 230, and is assigned a floppy drive letter, for example, drive "A”, while operating system image 237 is configured as a separate partition and given a drive designation other than "C”.
  • hard drive 220 and floppy disk 210 are disconnected from computer 100, leaving ROM 230 as the only bootable device connected to computer 100.
  • ROM 230 utilizes information stored on ROM 230 to boot.
  • a method for embedding operating system 222 onto ROM 230 has been described.
  • the invention as described utilizes images of storage media such as floppy disks and hard drives, it should be understood that such storage media are described by way of example only, and that the invention is equally applicable to other types of storage media that can provide similar bootable functions.
  • ROM 230 is the storage medium on which the operating system and application software code for booting and running computer 100 are stored. Some operating systems (e.g., Microsoft Windows 95) are designed to boot from a storage medium onto which write operations are allowed. As such, in one or more embodiments of the invention, all or a portion of the operating system is first copied from ROM 230 onto RAM disk 240 and is then loaded and executed from RAM disk 240.
  • a RAM disk simulates a hard drive and therefore any necessary rite operations can take place on the RAM disk the same way they take place on a hard drive. Unlike a hard drive that can be used for permanent storage of data, however, a RAM disk is volatile and holds the data only so long as the system remains powered.
  • Embodiments of the invention are designed to take advantage of the volatile nature of RAM disk 240. Any write operations during execution of operating system 242 and any other installed program take place on RAM disk 240. Due to the volatile nature of RAM disk 240, once the system is rebooted or reset any modifications made to the software stored on RAM disk 240, whether made by a legitimate system operation, or by an illegitimate source, such as an unauthorized system intruder, are deleted. The code stored on ROM 230, however, remains unchanged from its original configuration because ROM 230 is a read-only storage medium. Hence, at start up, the system is booted from an intact copy of the operating system originally stored in ROM 230, and any application programs are loaded from original copy of the application program as originally stored in ROM 230.
  • FIG. 4 is a flow diagram illustrating a method of booting computer 100 from ROM 230, according to one or more embodiments of the invention.
  • a basic operating system is loaded into the computer system's memory from floppy image 235 stored on ROM 230.
  • the basic operating system is MS-DOS.
  • a virtual hard disk is created using the utilities of the basic operating system according to the instructions in floppy image 235.
  • the virtual hard disk is created in the form of RAM disk 240.
  • operating system image 237 is stored in ROM 230 in compressed format. In such case, it is decompressed either before, during or after it is copied onto virtual hard disk 240 to form operating system 242.
  • one or more other applications e.g., application 239 stored on ROM 230 are copied onto virtual hard disk 240 and, if appropriate, are decompressed.
  • the entire image of hard drive 220 is stored on ROM 230
  • the entire image is copied onto RAM disk 240, and, if appropriate, is decompressed.
  • virtual hard disk 240 is assigned a drive letter that allows an advanced operating system to be loaded into the computer system from virtual hard disk 240, using the utilities of the basic operating system. In one or more embodiments, the virtual hard disk 240 is designated as the "C" drive.
  • operating system 242 is loaded from virtual disk 240.
  • control of computer system 100 is transferred from the basic operating system installed from floppy image 235 to (the more advanced) operating system 242 installed from RAM disk 240.
  • other applications such as applications 245 stored on RAM disk 240, are executed on top of operating system 242.
  • RAM disk 240 acts as a virtual hard drive for operating system 242 and other running applications 245. Disk write operations are performed on RAM disk 240, not ROM 230. As a result, the software on ROM 230 remains intact in its original form.
  • Windows 95 is the operating system that is embedded onto CD-ROM storage media.
  • Figure 5 is a flow diagram illustrating a method of embedding a Windows 95 operating system onto CD-ROM media, according to one or more embodiments of the invention.
  • the computer system for which Windows 95 is being embedded is a new system for which no operating system has yet been installed.
  • the Windows 95 operating system is installed on a hard drive temporarily connected to the computer system for which the Windows 95 operating system is being embedded.
  • the hard drive is partitioned such that it contains a boot partition, designated the "C” drive, and a second partition, designated the "F” drive.
  • a bootable MSDOS system disk is inserted onto the computer's floppy drive.
  • the computer system is booted from the bootable disk, loading a basic operating system, such as MSDOS.
  • the "C" hard drive is formatted as a bootable system disk using utilities of the basic operating system (e.g. the "FORMAT/ s" command under MSDOS.)
  • the floppy disk is removed and the computer system is rebooted from the hard drive.
  • Windows 95 is installed on the "C" drive in the normal manner, for example using a Windows 95 installation CD- ROM.
  • the computer system is rebooted.
  • any checkboxes for any dialog boxes or windows displaying a message indicating "Display next time Windows boots" or a similar message are unchecked or otherwise deactivated.
  • the virtual memory option accessible from the System Properties control panel window under the "Performance” tab is turned off by checking the "Disable virtual memory (not recommended)" check box and clicking the "OK" button.
  • step 526 the computer system is restarted.
  • extraneous operating system files not needed for the specific application for which the operating system is being embedded such as, for example, any internet communication files for an application that does not require internet communications
  • step 528 extraneous operating system files not needed for the specific application for which the operating system is being embedded (such as, for example, any internet communication files for an application that does not require internet communications) are deleted from the "C" drive.
  • step 530 any required drivers needed for the application for which the operating system is being embedded and that were not installed during installation of Windows 95 are installed on the "C” drive.
  • any required application software is installed. In the embodiment of Figure 5, the application software is installed in the partition that has been designated the "F" drive.
  • step 534 it is verified that the application software is operating properly off of the "F” drive.
  • a new boot floppy is formatted by placing a blank floppy disk into the floppy disk drive using the command "FORMAT A:/s.”
  • the following Windows 95 system files are added to the boot floppy at the root level
  • file compression software such as PKUNZIP.EXE, version 5 or a similar compression/ decompression program is also copied onto the boot floppy.
  • the CONFIG.SYS file on the boot floppy is modified to include the following lines:
  • the AUTOEXEC.BAT file on the floppy is modified to include the following lines:
  • additional batch commands may be inserted after the above described commands, with any system output from such commands being redirected to NULL.
  • the MSDOS.SYS file is copied from the "C" drive to the boot floppy, for example using the following commands:
  • step 548 amount of disk space used by Windows 95 is reduced by using a cleaning /uninstaller program such as CLEAN UP.
  • batch files are created that contain batch commands for deleting files that have been identified as not being needed.
  • a floppy disk containing three such batch files (called CLEAN1.BAT, CLEAN2.BAT and CLEAN3.BAT) is inserted in the floppy drive and the following commands are entered:
  • Windows 95 operating system is being embedded. These files are initially stored on the hard drive, and include images of the boot floppy, Windows 95 operating system as installed on the "C” drive, the application programs installed on the "F” drive, and certain directory and header files needed to make the CD-ROM bootable.
  • an image of the bootable floppy is created and stored on the hard drive.
  • the image is created using a utility such as Norton DISKEDIT as follows: From the Norton DISKEDIT menu the "Physical disk” option is selected from menu item “Object,” the sub-menu “Drive” is selected, and thereafter the "A" drive is selected. Next, from the “Tools” menu, the entry "Write object to” is selected, and the drive path where the floppy image is to be copied to is specified and the name for the floppy image, for example "FLOPPYl.BIN.” The "OK” button is selected, and, if queried, the "overwrite” option is the selected.
  • a compressed image of the Windows 95 operating system as installed on the C drive is created using the a compressing utility such as, for example, PKZIP version 2.50.
  • PKZIP version 2.50 a compressing utility
  • the following command is used for compressing the operating system into a compressed ZIP file:
  • a bootable CD directory is created.
  • a file of zeros with the size of exactly 2048 bytes is created. Then the file is altered to appear as follows (except for "XX" which remains "00". The XX is used to indicate a position, as will be explained below.):
  • the "88 02" byte indicates that it is a 1.44 MByte floppy.
  • the directory is then written to a file.
  • the file is named "CAT4144.BIN.”
  • a CD-ROM image is created of the CD-ROM as a whole. This image will be used to create the actual CD-ROM, using a CD-RW (read-write) CD-ROM drive.
  • the computer system is booted with Windows 95 and the software program Easy-CD pro is started.
  • the "New CD” option is selected from the menu and CAT4144F.BIN, FLOPPYl.BIN, and RAMDISK1.ZIP are selected for being added to the CD being created, for example by dragging the icons for these files from their storage locations to the Easy-CD pro icon.
  • volume name for the CD being created is changed to WINDOWS 95.
  • “General” tab “Write real ISO image only to . . .” is selected.
  • the location to which the CD image is to be temporarily stored is entered, and the name of the image, for example "WINDOWS.ISO.”
  • the CD-ROM image stored in WINDOWS.ISO is altered to make the resulting CD-ROM is bootable.
  • the system is booted to DOS, and the Norton DISKEDIT program is run to edit the WINDOWS.ISO file (for example by entering the command "DE WINDOWS.ISO at the DOS command prompt).
  • the DISKEDIT editing window opens, the cursor is positioned at offset 34,816.
  • the file is altered to appear as follows (except for the "YY" entry, which remains “00.”
  • the "YY” is used to indicate a position, as explained below): Offset 34.816, hex 8800
  • the cursor is placed on the F of FLOPPYl.BIN.
  • the up arrow is pressed twice and the right arrow once (Note the four hex values at this location, which is the XX value.
  • the cursor is positioned at offset 34,887(8847h).
  • the YY values are entered at this location.
  • the YY value is multiplied with 800h (YY*800h) to get the YY offset in bytes.
  • the cursor is positioned at the YY byte offset plus 28h.
  • the XX values are entered and the modified WINDOWS.ISO file is saved to disk.
  • the WINDOWS.ISO CD-ROM image is written to a blank writable CD-ROM.
  • the CD-ROM is written as follows. Windows 95 is booted, and Easy-CD pro is run. The "New CD from ISO” menu option is selected. Under the "General” tab “test before write” option is deselected, and the "close session” option is checked. A blank writable CD is inserted into the burner drive, and the "write” button is pressed. The CD image from WINDOWS.ISO is written to the CD, and a CD-ROM in which the Windows 95 operating system has been embedded according to the present invention is created. Thus, one or more embodiments of the invention have been described.
  • the storage media such as floppy disks, hard drives, RAM disks, and CD ROM's, described above are provided by way of example only, it being understood that the present invention has broad application to other types of storage media and /or devices.
  • the operating software used in conjunction with the invention can be of any type and is not limited to the example operating systems or other software described above. The invention is defined by the full scope of the following claims.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

A method for embedding an operating system in read-only memory (ROM) is presented. In one or more embodiments of the invention, an operating system is installed onto a hard disk temporarily connected to a computer for which the system is desired to be embedded. After the system is installed, a boot floppy is made. The system files on the boot floppy are changed to indicate that the boot floppy is a hard disk and to ignore certain operating system error messages. In addition, the boot-up files are modified to include commands to create a RAM disk and to load the image of the hard disk onto the RAM disk. After the hard disk image is loaded, the boot up drive letter is assigned to the RAM disk, and the operating system is instructed to boot up from the RAM disk.

Description

METHOD AND APPARATUS FOR EMBEDDING OPERATING SYSTEM IN ROM
BACKGROUND OF THE INVENTION
Portions of the disclosure of this patent document contain material that is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure as it appears in the Patent and Trademark Office file or records, but otherwise reserves all copyright rights.
A. FIELD OF INVENTION
This invention relates to the field of computer operating systems and, more specifically, to a method and apparatus for embedding an operating system in read-only memory (ROM).
With the advancement of the computer technology and the substantial reduction in the price of microprocessors and computers, it is now economically feasible to integrate computer systems into many machines and devices to provide improved performance and added functionality. For example, computers have been integrated into gaming machines replicating what had formerly been strictly mechanical or hard-wired electrical devices. These gaming machines have the capability of providing a user with a variety of sophisticated computer based games, such as Poker, Black Jack, etc. The games are typically programmable computer applications that, like other computer applications, run "on top" of an operating system that controls the basic operation of the computer system. While the programmability of computer based gaming systems allows for easy modification of the games presented, that same programmability also has the disadvantage of making such systems vulnerable to undesired alterations. If a user can gain access to the storage media on which the operating system and/or game program code of such systems are stored, it may be possible for the user to make alterations to the code, changing the systems' operation. For obvious reasons, in certain industries maintaining the integrity of the computer system and the way it operates is not only desirable, but is also a mandatory legal requirement. For example, where computer systems are utilized in the gaming industry, state and federal regulations have mandated specific standards regarding the security and operational features of the computer systems used.
A persisting problem with a publicly available computer system is that it is susceptible to attack by information technology intruders (hackers). It is desirable to prevent damage from any attack by ensuring that the software and the hardware installed on the system remain intact. Specifically, a method for maintaining the integrity of software installed on a computer system, including the operating system and other executable programs, is highly desirable.
B. BACKGROUND ART
One way to maintain software integrity is to design a system in which the operating system and application software is stored in non-volatile read-only memory (ROM). A ROM is generally a data storage device that is programmed at the time of its manufacture and cannot be reprogrammed by a computer user. One common type of ROM is a solid state ROM integrated circuit chip. Another common type is a CD-ROM (Compact Disk Read-Only Memory). Utilizing read- only memory for software storage can prevent an intruder from altering or modifying the software because the intruder will not be able to write onto the medium on which the software is stored.
Up till now, however, it has not been possible to store and properly run certain advanced operating systems from ROM devices. This is because these operating systems are designed not only to read but also to write data to certain files during loading ("booting") and operation.
The normal process for loading an operating system is as follows. A boot routine is automatically executed when the computer is turned on or reset. The boot routine provides basic input/ output capabilities allowing the rest of the operating system to be loaded. After the boot routine is loaded, it searches for the storage location of the operating system, loads it into the computer's memory, and then passes control of the computer system over to the operating system.
If the operating system is an advanced operating system such as Windows 95, during startup certain files normally stored on a hard drive (e.g., registry files, swap files, .INI files, etc.) are accessed to initialize certain values and to configure the computer system based on the state of the computer system recorded in those files. This state information is carried over from the last time the operating system was loaded. When a computer system using this kind of operating system is shut down, the operating system modifies the initialization files to update the computer system's state information that is recorded in those files. For the operating system to function properly, such initialization files must reside on a read /write storage medium so that they can be read and modified during startup or shutdown. Because of this requirement, if such an advanced operating system is stored on read-only media, it will not boot and operate properly, because the system is unable to write to and update the initialization files.
Most prior art methods for booting operating systems fall into two categories. Some prior art systems embed a basic, limited function operating system, such as MSDOS, or a portion of the operating system in ROM chips, while storing a more advanced operating system or the bulk of the operating system on a read/write storage device, typically a hard drive. More commonly, the entire operating system is stored on read/write storage media. With both of these prior art methods, the part of the operating system stored on the read/write storage media is vulnerable to undesired modification. The prior art systems cannot provide an advanced operating system that is designed to require reading and writing of initialization and state data in an environment that is immune to undesired modifications. A method is therefore needed for providing an operating system to a computer system in manner that protects the integrity of the operating system code yet allows the operating system to load and execute properly.
SUMMARY OF THE INVENTION
A method and apparatus for embedding an operating system in readonly memory (ROM) is described. In embodiments of the invention, a computer system can be booted from a read-only non-volatile memory device such as a CD-ROM. As a result, tampering with the files stored on the system and the possibility of any alteration in system functionality is substantially reduced.
In one or more embodiments of the invention, an advanced operating system is installed onto a hard disk temporarily connected to a computer for which the system is desired to be embedded. After the system is installed, a boot floppy disk is made using the utilities of the operating system. The boot floppy includes a basic operating system. The system files on the boot floppy are modified to include instructions to the computer system to ignore certain error messages during loading of the advanced operating system. In addition, instructions are included on the floppy disk (e.g. in start-up or configuration files such as AUTOEXEC.BAT and CONFIG.SYS) to create a RAM disk and to assign a boot up hard drive letter (e.g. "C:") to the RAM disk, using the utilities of the basic operating system on the floppy disk, and to copy the image of the advanced operating system as stored on the hard drive (which has been burnt onto the CD-ROM) from the CD-ROM to the RAM disk. Thereafter, images of the modified floppy and the hard disk are burnt onto a CD-ROM, and the CD- ROM is made bootable. The hard disk is then disconnected from the computer.
In one or more embodiments of the invention, when the computer is restarted, the basic operating system from the floppy image burnt onto the CD- ROM boots first. According to the instructions contained in the floppy image, a RAM disk is created using the utilities of the basic operating system, and the image of the advanced operating system burnt onto the CD-ROM is copied to the RAM disk. The advanced operating system is then loaded from the RAM disk into the computer's memory. In one or more embodiments, the CD-ROM also contains one or more application programs that are loaded and executed once the advanced operating system has been booted.
BRIEF DESCRIPTION OF THE DRAWINGS
Figure 1 illustrates a general purpose computer, according to one or more embodiments of the invention.
Figure 2 is a block diagram of a general purpose computer in connection with various memory storage components, according to one or more embodiments of the invention.
Figure 3 is a flow diagram illustrating the method of embedding an operating system onto ROM, according to one or more embodiments of the invention.
Figure 4 is a flow diagram illustrating the method of booting a computer system from ROM, according to one or more embodiments of the invention.
Figure 5 is a flow diagram illustrating the method of embedding Windows 95 operating system onto CD-ROM media, according to one or more embodiments of the invention.
DETAILED DESCRIPTION OF THE INVENTION
The invention provides a method and apparatus for embedding an operating system in read-only memory (ROM). In the following description, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be apparent, however, to one skilled in the art that the present invention may be practiced without these specific details. For example, this invention in one or more embodiments is described with respect to certain features and requirements of Microsoft Windows Operating Systems and CD ROM storage media. However, this is by way of example only. It will be understood that this invention is applicable to other operating systems and/or other ROM storage media in a similar manner. Further, in some instances, well-known features of the invention have not been described in detail so not to unnecessarily obscure the present invention.
Description of General Purpose Computer System
Figure 1 illustrates an example of a general purpose computer system for which an operating system may be embedded using one or more embodiments of the invention. A general purpose computer such as computer 100 may also be used to implement one or more embodiments of the invention. A keyboard 110 and mouse 111 are coupled to a system bus 118. The keyboard and mouse are for introducing user input to the computer system and communicating that user input to processor 113. Other suitable input devices may be used in addition to, or in place of, mouse 111 and keyboard 110. In one or more embodiments, the input devices used include a touch sensitive video screen and a plurality of user input keys. I/O (input/output) unit 119 coupled to system bus 118 represents such I/O elements as a printer, A/V (audio/ video) I/O, etc. Computer 100 includes a video memory 114, main memory 115 and mass storage 112, all coupled to system bus 118 along with keyboard 110, mouse 111 and processor 113. The mass storage 112 may include both fixed and removable media, such as magnetic, optical or magnetic optical storage systems or any other available mass storage technology. In one or more embodiments, mass storage 112 is limited to ROM mass storage media, such as, for example CD- ROM. Bus 118 may contain, for example, thirty- two address lines for addressing video memory 114 or main memory 115. The system bus 118 also includes, for example, a 64-bit data bus for transferring data between and among the components, such as processor 113, main memory 115, video memory 114 and mass storage 112. Alternatively, multiplex data/address lines may be used instead of separate data and address lines.
In one embodiment of the invention, the processor 113 is a microprocessor manufactured by Intel, such as the 80X86, or Pentium processor. However, any other suitable microprocessor or microcomputer may be utilized. Main memory 115 is comprised of dynamic random access memory (DRAM). Video memory 114 is a dual-ported video random access memory. One port of the video memory 114 is coupled to video amplifier 116. The video amplifier 116 is used to drive the cathode ray tube (CRT) raster monitor 117. Video amplifier 116 is well known in the art and may be implemented by any suitable apparatus. This circuitry converts pixel data stored in video memory 114 to a raster signal suitable for use by monitor 117. Monitor 117 is a type of monitor suitable for displaying graphic images.
Computer 100 may also include a communication interface 120 coupled to bus 118. Communication interface 120 provides a two-way data communication coupling via a network link 121 to a local network 122. For example, if communication interface 120 is an integrated services digital network (ISDN) card or a modem, communication interface 120 provides a data communication connection to the corresponding type of telephone line, which comprises part of network link 121. If communication interface 120 is a local area network (LAN) card, communication interface 120 provides a data communication connection via network link 121 to a compatible LAN. Wireless links are also possible. In any such implementation, communication interface 120 sends and receives electrical, electromagnetic or optical signals, which carry digital data streams representing various types of information.
Network link 121 typically provides data communication through one or more networks to other data devices. For example, network link 121 may provide a connection through local network 122 to local server computer 123 or to data equipment operated by an Internet Service Provider (ISP) 124. ISP 124 in turn provides data communication services through the world wide packet data communication network now commonly referred to as the "Internet" 125. In one or more embodiments, network link 121 provides a connection among a plurality of computer devices that utilize one or more embodiments of the invention.
Local network 122 and Internet 125 both use electrical, electromagnetic or optical signals, which carry digital data streams. The signals through the various networks and the signals on network link 121 and through communication interface 120, which carry the digital data to and from computer 100, are exemplary forms of carrier waves transporting the information. Computer 100 can send messages and receive data, including program code, through the network(s), network link 121, and communication interface 120. In the Internet example, remote server computer 126 might transmit a requested code for an application program through Internet 125, ISP 124, local network 122 and communication interface 120.
The received code may be executed by processor 113 as it is received, and/or stored in mass storage 112, or other non-volatile storage for later execution. In this manner, computer 100 may obtain application code in the form of a carrier wave. Application code may be embodied in any form of computer program product. A computer program product comprises a medium configured to store or transport computer readable code, or in which computer readable code may be embedded. Some examples of computer program products are CD-ROM disks, ROM cards, floppy disks, magnetic tapes, computer hard drives, servers on a network, and carrier waves.
The computer systems described above are for purposes of example only.
Embodiments of the invention may be implemented for and /or using any type of computer system or programming or processing environment.
Embedding Operating System in ROM
Sometimes it is desirable to provide special purpose computer systems for use by customers for particular purposes, such as computer-based gaming machines, for example. It is important that the operation of such a computer system is consistent and is protected against any purposeful or unintentional modification or corruption by a user. However, computer systems are susceptible to attack by various sources, including direct user intervention, viruses, and Trojan horses. Viruses are deliberately designed malignant software that damage or corrupt the file system or the security system of a computer. A Trojan horse type application, on the other hand, resides within a computer system and in one way or the other covertly takes over the management and the processing of data transmitted within the system. A publicly accessible computer system is specially susceptible to the above attacks, as various users may have the opportunity to either intentionally or unintentionally install or transmit a virus or a Trojan horse onto the system, or otherwise manipulate the system's software.
To address the above concerns, the present invention allows a computer system to be safely booted and operated according in a manner that ensures that any software installed on the system remains intact and safe from modification. In embodiments of the invention, system integrity is preserved by storing the operating system and other software on unalterable read-only media, such as, for example, a read-only CD ROM.
Figure 2 is a block diagram of various storage components that are utilized to embed an operating system onto ROM 230, according to one or more embodiments of the invention. Processor 200 of a computer system (e.g. computer system 100 of Figure 1) is connected to storage media components, such as floppy disk 210, hard drive 220, CD ROM 230, and RAM disk 240 via bus 218. Each storage media contains digital data. For example, in the state of the system shown in Figure 2, floppy disk 210 includes boot sector 212 that stores data comprising the loading routines for a basic operating system, such as MSDOS, for initial booting of the system, as well as other data (as will be described below). The data stored in certain media may change over time according to the state and /or operation of the computer system, while the data stored in other media may remain intact. In one or more embodiments of the invention, system files on floppy disk 210 are modified to allow certain boot up instructions to be included in the system files. In one or more embodiments, the system files on floppy disk 210 are so modified by replacing them with system files normally used only on hard disks. In Figure 2, Floppy disk 210, also contains the basic operating system 215, including drivers 217 for configuring various devices attached to computer 100, such as hard drive 220, CD ROM 230, RAM disk 240, etc. In the embodiment of Figure 2, hard drive 220 has been loaded with advanced operating system 222 and one or more other application programs 225 that utilize operating system 222. CD ROM 230 and RAM disk 240 have been loaded with necessary software and system files for loading operating system 222, as further described below.
Figure 3 is a flow diagram showing the steps for embedding operating system 222 in ROM 230, according to one or more embodiments of the invention.
According to one or more embodiments of the invention, to embed operating system 222 in ROM 230, at step 310 operating system 222 is installed on hard drive 220 while hard drive 220 is temporarily connected to computer 100. The installed operating system is then loaded into the computer system at step 315. In one or more embodiments of the invention, in which Windows 95 is the operating system being embedded, virtual memory is turned off after the system is loaded. The virtual memory option, when selected, emulates a portion of the hard disk space as RAM memory. Turning off this option disables any memory write operation to that portion of the hard disk associated with the virtual memory option. After virtual memory has been turned off, the system is once again rebooted. At step 320, extraneous files installed as a part of the operating system that are not needed for the particular use for which the operating system is being installed are removed from operating system 222 to reduce its size and the amount of storage space it requires. For example, if the computer system for which the operating system is installed will not be connected to the Internet, then Internet related files may be removed. In embodiments of the invention, where installation of additional software (e.g., gaming software such as Poker, Black Jack, etc.) is desired, the additional software and the necessary device drivers are loaded onto hard drive 220 at step 325.
In one or more embodiments, the operating system files and /or application program files are stored on hard drive 220 in compressed form to reduce storage requirements. In one or more embodiments, the added software is installed in the same partition of hard drive 220 into which operating system 222 has been installed (typically the "C" drive). In one or more embodiments, some or all of the additional software is installed into a different partition.
At step 330, bootable floppy disk 210 is prepared utilizing the utilities of the installed operating system. A bootable floppy disk is a formatted storage medium that includes a basic operating system and that can be used to boot the computer system with the basic operating system when it is turned on or restarted. Due to the small storage capacity of floppy disk 210, only a basic operating system, such as MSDOS, is installed on bootable floppy disk 210.
As described above, floppy disk 210 includes boot sector 212 that includes routines for loading a basic operation system. Floppy disk 210 also includes basic operating system 215, device drivers 217 and other files needed for initially booting and setting up computer system 100. In one or more embodiments in which the basic operating system that is copied onto floppy disk 210 is MSDOS, certain executable files are added to floppy disk 210 to provide additional functionality over the basic operations available via the basic operating system. In one or more embodiments of the invention, such files include HIMEM.SYS, MSCDEX.EXE, RAMDRIVE.SYS, SETVER.EXE, and PKUNZIP.EXE.
As mentioned above, in one or more embodiments of the invention, certain system files stored on floppy disk 210 are modified to allow additional instructions to the computer system to be included. In one or more embodiments in which MSDOS is the basic operating system installed on floppy disk 210, this is accomplished by replacing the MSDOS.SYS file of the floppy (MSDOS.SYS is one of the system files that is installed on a floppy drive when it is formatted for MSDOS) with the version of MSDOS.SYS normally installed on hard drives. This is done because the hard drive version of MSDOS.SYS allows a user to add certain computer system instructions to the MSDOS.SYS file that are read by the computer system when MSDOS is loaded, while the floppy version of MSDOS.SYS does not allow such instructions to be added. For example, in one or more embodiments, instructions are added to the MSDOS.SYS file telling computer system 100 to disregard certain error messages during loading of the advanced operating system. Specifically, in one or more embodiments, instructions are included in the MSDOS.SYS file instructing the computer system to disregard error messages indicating missing or corrupted Windows 95 registry files. In addition to modifying the MSDOS.SYS file, in one or more embodiments, system configuration files such as CONFIG.SYS and AUTOEXEC.BAT are also created and/or modified to include commands for loading device drivers (e.g., drivers 217) necessary for locating and operating a CD ROM device, for creating and assigning a drive letter to a RAM disk, for copying data from a CD-ROM to the RAM disk, and for executing one or more programs that have been copied to the RAM disk.
After floppy disk 210 is prepared as a bootable floppy and after all the necessary files and drivers are included thereon, at step 340, in one or more embodiments, a compressed image 223 of operating system 222 is created and stored separately from operating system 222 on hard drive 220.
At step 350, images of floppy disk 210 and operating system 222 are copied onto ROM 230 creating floppy image 235 and operating system image 237. Depending on the embodiment, operating system image 237 may be of operating system 222 in compressed or uncompressed form. In one or more embodiments of the invention, one or more application programs 225 are also copied onto ROM 230. In one or more embodiments, operating system 222 and application programs 225 are stored on hard drive 220 and an image of hard drive 220 is copied onto ROM 230.
Referring to Figure 2, in one or more embodiments of the invention, ROM 230 is a CD-ROM that is made bootable, for example, according to industry standards, such as the El Torito Standard for bootable CD-ROM's. It includes boot sector 232, floppy image 235, and operating system image 237. In one or more embodiments, floppy image 232 is configured as the boot partition of CD- ROM 230, and is assigned a floppy drive letter, for example, drive "A", while operating system image 237 is configured as a separate partition and given a drive designation other than "C". At step 360, hard drive 220 and floppy disk 210 are disconnected from computer 100, leaving ROM 230 as the only bootable device connected to computer 100. Accordingly, at startup, computer 100 utilizes information stored on ROM 230 to boot. Thus, a method for embedding operating system 222 onto ROM 230 has been described. Even though the invention as described utilizes images of storage media such as floppy disks and hard drives, it should be understood that such storage media are described by way of example only, and that the invention is equally applicable to other types of storage media that can provide similar bootable functions.
Mode of Operation
In embodiments of the invention, ROM 230 is the storage medium on which the operating system and application software code for booting and running computer 100 are stored. Some operating systems (e.g., Microsoft Windows 95) are designed to boot from a storage medium onto which write operations are allowed. As such, in one or more embodiments of the invention, all or a portion of the operating system is first copied from ROM 230 onto RAM disk 240 and is then loaded and executed from RAM disk 240. A RAM disk simulates a hard drive and therefore any necessary rite operations can take place on the RAM disk the same way they take place on a hard drive. Unlike a hard drive that can be used for permanent storage of data, however, a RAM disk is volatile and holds the data only so long as the system remains powered.
Embodiments of the invention are designed to take advantage of the volatile nature of RAM disk 240. Any write operations during execution of operating system 242 and any other installed program take place on RAM disk 240. Due to the volatile nature of RAM disk 240, once the system is rebooted or reset any modifications made to the software stored on RAM disk 240, whether made by a legitimate system operation, or by an illegitimate source, such as an unauthorized system intruder, are deleted. The code stored on ROM 230, however, remains unchanged from its original configuration because ROM 230 is a read-only storage medium. Hence, at start up, the system is booted from an intact copy of the operating system originally stored in ROM 230, and any application programs are loaded from original copy of the application program as originally stored in ROM 230. Thus, after every reboot the system returns to the same configuration as specified as the information stored in ROM 230. Figure 4 is a flow diagram illustrating a method of booting computer 100 from ROM 230, according to one or more embodiments of the invention. When computer 100 is restarted, at step 410, a basic operating system is loaded into the computer system's memory from floppy image 235 stored on ROM 230. In one or more embodiments, the basic operating system is MS-DOS. At step 420, a virtual hard disk is created using the utilities of the basic operating system according to the instructions in floppy image 235. In one or more embodiments, the virtual hard disk is created in the form of RAM disk 240.
Once the virtual hard disk is created, at step 430, operating system image
237 is copied onto the virtual hard disk. In one or more embodiments of the invention, operating system image 237 is stored in ROM 230 in compressed format. In such case, it is decompressed either before, during or after it is copied onto virtual hard disk 240 to form operating system 242. Likewise, depending on the instructions in floppy image 235, one or more other applications (e.g., application 239) stored on ROM 230 are copied onto virtual hard disk 240 and, if appropriate, are decompressed. In embodiments of the invention, in which the entire image of hard drive 220 is stored on ROM 230, the entire image is copied onto RAM disk 240, and, if appropriate, is decompressed. In one or more embodiments, virtual hard disk 240 is assigned a drive letter that allows an advanced operating system to be loaded into the computer system from virtual hard disk 240, using the utilities of the basic operating system. In one or more embodiments, the virtual hard disk 240 is designated as the "C" drive.
At step 440, operating system 242 is loaded from virtual disk 240. At step
450, control of computer system 100 is transferred from the basic operating system installed from floppy image 235 to (the more advanced) operating system 242 installed from RAM disk 240. At step 460, other applications, such as applications 245 stored on RAM disk 240, are executed on top of operating system 242.
During execution, RAM disk 240 acts as a virtual hard drive for operating system 242 and other running applications 245. Disk write operations are performed on RAM disk 240, not ROM 230. As a result, the software on ROM 230 remains intact in its original form.
Detailed Example Method for Embedding Windows 95 Operating System onto a CD-ROM
In one or more embodiments, Windows 95 is the operating system that is embedded onto CD-ROM storage media.
Figure 5 is a flow diagram illustrating a method of embedding a Windows 95 operating system onto CD-ROM media, according to one or more embodiments of the invention. In the embodiment of Figure 5, the computer system for which Windows 95 is being embedded is a new system for which no operating system has yet been installed.
First, the Windows 95 operating system is installed on a hard drive temporarily connected to the computer system for which the Windows 95 operating system is being embedded. The hard drive is partitioned such that it contains a boot partition, designated the "C" drive, and a second partition, designated the "F" drive.
At step 510, a bootable MSDOS system disk is inserted onto the computer's floppy drive. At step 512, the computer system is booted from the bootable disk, loading a basic operating system, such as MSDOS. At step 514, the "C" hard drive is formatted as a bootable system disk using utilities of the basic operating system (e.g. the "FORMAT/ s" command under MSDOS.)
At step 516, the floppy disk is removed and the computer system is rebooted from the hard drive. At step 518, Windows 95 is installed on the "C" drive in the normal manner, for example using a Windows 95 installation CD- ROM. At step 520, the computer system is rebooted. At step 522, during start up, any checkboxes for any dialog boxes or windows displaying a message indicating "Display next time Windows boots" or a similar message are unchecked or otherwise deactivated. At step 524, the virtual memory option accessible from the System Properties control panel window under the "Performance" tab, is turned off by checking the "Disable virtual memory (not recommended)" check box and clicking the "OK" button.
At step 526 the computer system is restarted. After the system has rebooted, at step 528, extraneous operating system files not needed for the specific application for which the operating system is being embedded (such as, for example, any internet communication files for an application that does not require internet communications) are deleted from the "C" drive. At step 530, any required drivers needed for the application for which the operating system is being embedded and that were not installed during installation of Windows 95 are installed on the "C" drive. At step 532, any required application software is installed. In the embodiment of Figure 5, the application software is installed in the partition that has been designated the "F" drive. At step 534, it is verified that the application software is operating properly off of the "F" drive.
At step 536, a new boot floppy is formatted by placing a blank floppy disk into the floppy disk drive using the command "FORMAT A:/s." At step 538, the following Windows 95 system files are added to the boot floppy at the root level
(the paths shown in parenthesis indicate where these files may be found on the
"C" drive in one or more embodiments):
(C:\WINDOWS\)HIMEM.SYS
(C:\WINDOWS\COMMAND\)MSCDEX.EXE
(C:\WINDOWS\)RAMDRIVE.SYS
(C:\WINDOWS\)IFSHLP.SYS (C:\WINDOWS\)SETVER.EXE
(C:\WINDOWS\)MSCDEX.EXE Further, in the embodiment of Figure 5, file compression software, such as PKUNZIP.EXE, version 5 or a similar compression/ decompression program is also copied onto the boot floppy. At step 540, the CONFIG.SYS file on the boot floppy is modified to include the following lines:
DEVICE=HIMEM.SYS
DEVICEHIGH= [name of appropriate CD-ROM driver]
/D:MSCD001 DEVICEHIGH=RAMDRIVE.SYS 32767512/E
Instructions for loading any additional drivers that may be needed are added after the above lines, and are followed by the following commands: DEVICEHIGH=IFSHLP.SYS
DEVICEHIGH=SETVER.EXE
At step 542, the AUTOEXEC.BAT file on the floppy is modified to include the following lines:
©ECHO OFF
CLS
MSCDEX.EXE/D:MSCD001 /L:F»NULL
C: A:PKUNZIP -d -Jhrs F:RAMDISK1 »NULL
In one or more embodiments of the invention, additional batch commands may be inserted after the above described commands, with any system output from such commands being redirected to NULL.
At step 544, the MSDOS.SYS file is copied from the "C" drive to the boot floppy, for example using the following commands:
ATTRIB -R -H -S MSDOS.SYS COPY MSDOS.SYS A: ATTRIB +R +H +S MSDOS.SYS At step 546, the MSDOS.SYS file that has been copied to the "A" drive is modified, using an appropriate editing program, to include the following lines under the "[Options"] heading:
BootWarn=0 DisableLog=l
In addition, if a "Network=l" entry exists, it is changed to "Network=0."
At step 548, amount of disk space used by Windows 95 is reduced by using a cleaning /uninstaller program such as CLEAN UP. In one or more embodiments, batch files are created that contain batch commands for deleting files that have been identified as not being needed. In one or more embodiments, a floppy disk containing three such batch files (called CLEAN1.BAT, CLEAN2.BAT and CLEAN3.BAT) is inserted in the floppy drive and the following commands are entered:
A:\CLEAN1 A:\CLEAN2 A:\CLEAN3
Next, files are created that will be burned onto the CD-ROM on which the
Windows 95 operating system is being embedded. These files are initially stored on the hard drive, and include images of the boot floppy, Windows 95 operating system as installed on the "C" drive, the application programs installed on the "F" drive, and certain directory and header files needed to make the CD-ROM bootable.
At step 550 an image of the bootable floppy is created and stored on the hard drive. In one or more embodiments, the image is created using a utility such as Norton DISKEDIT as follows: From the Norton DISKEDIT menu the "Physical disk" option is selected from menu item "Object," the sub-menu "Drive" is selected, and thereafter the "A" drive is selected. Next, from the "Tools" menu, the entry "Write object to" is selected, and the drive path where the floppy image is to be copied to is specified and the name for the floppy image, for example "FLOPPYl.BIN." The "OK" button is selected, and, if queried, the "overwrite" option is the selected.
At step 552 a compressed image of the Windows 95 operating system as installed on the C drive is created using the a compressing utility such as, for example, PKZIP version 2.50. In one or more embodiments of the invention the following command is used for compressing the operating system into a compressed ZIP file:
PKZIP -p -r -Jhrs -whs D:RAMDISK1 C:*
At step 554, a bootable CD directory is created. In embodiments of the invention, to create a bootable CD a file of zeros with the size of exactly 2048 bytes is created. Then the file is altered to appear as follows (except for "XX" which remains "00". The XX is used to indicate a position, as will be explained below.):
Offset 0, hex 0
00000000: 01 0000004761 6D 65 - 63 7261 66 742049 6E ...Gamecraft In 00000010: 636F 72 706F 72 61 74 - 65 64 00 006B FC 55 AA corporated..k.U. 00000020: 88 02 00 00 00 00 01 00 - XX 00 00 00 00 00 00 00
The "88 02" byte indicates that it is a 1.44 MByte floppy. The directory is then written to a file. In one or more embodiments, the file is named "CAT4144.BIN." At step 556 a CD-ROM image is created of the CD-ROM as a whole. This image will be used to create the actual CD-ROM, using a CD-RW (read-write) CD-ROM drive. To create the CD-ROM image, in one or more embodiments of the invention, the computer system is booted with Windows 95 and the software program Easy-CD pro is started. The "New CD" option is selected from the menu and CAT4144F.BIN, FLOPPYl.BIN, and RAMDISK1.ZIP are selected for being added to the CD being created, for example by dragging the icons for these files from their storage locations to the Easy-CD pro icon.
Next, under the "Volume Information" tab the volume name for the CD being created is changed to WINDOWS 95. Under the "General" tab "Write real ISO image only to . . ." is selected. The location to which the CD image is to be temporarily stored is entered, and the name of the image, for example "WINDOWS.ISO."
At step 558, the CD-ROM image stored in WINDOWS.ISO is altered to make the resulting CD-ROM is bootable. To accomplish this, the system is booted to DOS, and the Norton DISKEDIT program is run to edit the WINDOWS.ISO file (for example by entering the command "DE WINDOWS.ISO at the DOS command prompt). After the DISKEDIT editing window opens, the cursor is positioned at offset 34,816. The file is altered to appear as follows (except for the "YY" entry, which remains "00." The "YY" is used to indicate a position, as explained below): Offset 34.816, hex 8800
00000000: 004344303031 0145 - 4C 20544F 5249544F .CD001.EL TORITO
00000010: 2053504543494649 - 434154494F 4E 0000 SPECIFICATION..
00000020: 0000000000000000 - 0000000000000000
00000030: 0000000000000000 - 0000000000000000 00000040: 00000000000000 YY - 0000000000000000 The catalog position and first file position in the WINDOWS.ISO file are updated as follows. The XX and YY as shown above are used as references to the relative position of the data to be inserted into the file. YY will always be inserted at 8847h, and XX will be inserted at the sector YY + offset 28h. The byte location of sector YY is YY*800h. Under the "Tools, Find. . ." menu of DISKEDIT, a search for CAT4144F.BIN is performed. When found the cursor is placed on the C of CA4144F.BIN. The up arrow is pressed twice, and the right arrow once (Note the four hex values at this location, which is the YY value).
Next, the location of FLOPPY1.BIN within WINDOWS.ISO is located. The cursor is placed on the F of FLOPPYl.BIN. The up arrow is pressed twice and the right arrow once (Note the four hex values at this location, which is the XX value. The cursor is positioned at offset 34,887(8847h). The YY values are entered at this location. The YY value is multiplied with 800h (YY*800h) to get the YY offset in bytes. The cursor is positioned at the YY byte offset plus 28h. The XX values are entered and the modified WINDOWS.ISO file is saved to disk.
At step 580, the WINDOWS.ISO CD-ROM image is written to a blank writable CD-ROM. In an embodiment in which Easy CD pro is used as the CD authoring software, the CD-ROM is written as follows. Windows 95 is booted, and Easy-CD pro is run. The "New CD from ISO" menu option is selected. Under the "General" tab "test before write" option is deselected, and the "close session" option is checked. A blank writable CD is inserted into the burner drive, and the "write" button is pressed. The CD image from WINDOWS.ISO is written to the CD, and a CD-ROM in which the Windows 95 operating system has been embedded according to the present invention is created. Thus, one or more embodiments of the invention have been described. The storage media, such as floppy disks, hard drives, RAM disks, and CD ROM's, described above are provided by way of example only, it being understood that the present invention has broad application to other types of storage media and /or devices. Likewise, the operating software used in conjunction with the invention can be of any type and is not limited to the example operating systems or other software described above. The invention is defined by the full scope of the following claims.

Claims

1. A method of embedding an operating system onto read-only media, comprising: installing a first operating system on a first storage medium; creating an image of said first operating system on a read-only storage medium; making said read-only storage medium bootable; designating said read-only medium as the medium from which said computer is to be booted; copying said image of said first operating system from said read-only storage medium onto a read-writable medium.
2. The method of claim 1 further comprising removing extraneous files from said first operating system installed on a first storage medium.
3. The method of claim 1 further comprising: installing a second operating system on a second storage medium; modifying said second operating system files to copy an image of said first operating system onto said read-writable medium; creating an image of said second operating system on said read-only storage medium.
4. The method of claim 1 further comprising disconnecting said first storage medium from said computer.
5. The method of claim 4, wherein said first storage medium is a nonvolatile storage medium.
6. The method of claim 3, wherein said second storage medium is a bootable non-volatile storage medium.
7. The method of claim 3, wherein said read-only medium is a nonvolatile storage medium.
8. The method of claim 3, wherein said read-writable medium is a volatile storage medium.
9. The method of claim 3, wherein said first operating system is an advanced operating system.
10. The method of claim 3, wherein said second operating system is a basic operating system.
11. A method of booting a computer from read-only media comprising: booting a computer system; copying an image of a first operating system stored on a read-only storage medium onto a read-writable storage medium; executing said first operating system code from said read-writable storage medium; transferring the control of said computer to said first operating system.
12. The method of claim 11, wherein said image of said first operating system is decompressed and stored onto said read-writable storage medium.
13. The method of claim 11, wherein the computer system is initially booted from an image of a second operating system stored on said read-only storage medium.
14. The method of claim 11, further comprising copying an image of said read-only storage medium onto said read-writable storage medium.
15. The method of claim 11, wherein said read-only storage medium is a non-volatile storage medium.
16. The method of claim 11, wherein said read- writable storage medium is a volatile storage medium.
17. The method of claim 11, wherein said first operating system is an advanced operating system.
18. The method of claim 13, wherein said second operating system is a basic operating system.
19. The method of claim 11, wherein said read-only storage medium is a CD-ROM.
20. The method of claim 16, wherein said read-writable storage medium is a RAM disk.
PCT/US2000/020556 1999-08-16 2000-07-28 Method and apparatus for embedding operating system in rom WO2001013221A2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU63869/00A AU6386900A (en) 1999-08-16 2000-07-28 Method and apparatus for embedding operating system in rom

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US37503499A 1999-08-16 1999-08-16
US09/375,034 1999-08-16

Publications (2)

Publication Number Publication Date
WO2001013221A2 true WO2001013221A2 (en) 2001-02-22
WO2001013221A3 WO2001013221A3 (en) 2001-12-13

Family

ID=23479230

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2000/020556 WO2001013221A2 (en) 1999-08-16 2000-07-28 Method and apparatus for embedding operating system in rom

Country Status (2)

Country Link
AU (1) AU6386900A (en)
WO (1) WO2001013221A2 (en)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003023611A1 (en) * 2001-08-22 2003-03-20 Mauchai Chan The x86-compatible computer and the method of the generation of the operating system
WO2005029325A1 (en) * 2003-08-21 2005-03-31 Ti Technologies Limited (A New Zealand Company) Method and apparatus for booting a computer system
US7313684B2 (en) 2002-08-14 2007-12-25 T1 Technologies Limited Method and apparatus for booting a computer system
CN100377085C (en) * 2006-03-31 2008-03-26 浙江大学 Method for implementing hardware image starting optimizing of embedded operating system
CN102760063A (en) * 2011-04-25 2012-10-31 联想(北京)有限公司 File loading method and device
US20130031597A1 (en) * 2011-07-25 2013-01-31 Da Silveira Jorni Santana Method and equipment for security isolation of a client computer
CN103593226A (en) * 2013-11-04 2014-02-19 国云科技股份有限公司 Method for improving IO performance of disc of virtual machine
US9454384B2 (en) 2007-07-05 2016-09-27 Microsoft Technology Licensing, Llc Custom operating system via a web-service
CN108446189A (en) * 2018-06-12 2018-08-24 中国科学院上海技术物理研究所 A kind of fault-tolerant activation system of spaceborne embedded software and method

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0464988A2 (en) * 1990-06-25 1992-01-08 International Business Machines Corporation Personal Computer system
US5418918A (en) * 1993-09-10 1995-05-23 Compaq Computer Corp. Scanning initial CD-ROM sectors for a boot record and executing said boot record to load and execute floppy disk image corresponding to the existing floppy drive
EP0726518A2 (en) * 1995-02-13 1996-08-14 International Business Machines Corporation A method and apparatus for booting a computer system without pre-installing an operating system
US6122734A (en) * 1996-12-23 2000-09-19 Samsung Electronics Co., Ltd. Bootable CD-ROM disk and a system for manufacturing bootable CD-ROM disks with recorded operating system programs and application programs

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0464988A2 (en) * 1990-06-25 1992-01-08 International Business Machines Corporation Personal Computer system
US5418918A (en) * 1993-09-10 1995-05-23 Compaq Computer Corp. Scanning initial CD-ROM sectors for a boot record and executing said boot record to load and execute floppy disk image corresponding to the existing floppy drive
EP0726518A2 (en) * 1995-02-13 1996-08-14 International Business Machines Corporation A method and apparatus for booting a computer system without pre-installing an operating system
US6122734A (en) * 1996-12-23 2000-09-19 Samsung Electronics Co., Ltd. Bootable CD-ROM disk and a system for manufacturing bootable CD-ROM disks with recorded operating system programs and application programs

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003023611A1 (en) * 2001-08-22 2003-03-20 Mauchai Chan The x86-compatible computer and the method of the generation of the operating system
CN100367238C (en) * 2001-08-22 2008-02-06 深圳市索普卡软件开发有限公司 X-86 serial compatible machine and generation method for its operation system
US7313684B2 (en) 2002-08-14 2007-12-25 T1 Technologies Limited Method and apparatus for booting a computer system
WO2005029325A1 (en) * 2003-08-21 2005-03-31 Ti Technologies Limited (A New Zealand Company) Method and apparatus for booting a computer system
CN100377085C (en) * 2006-03-31 2008-03-26 浙江大学 Method for implementing hardware image starting optimizing of embedded operating system
US9454384B2 (en) 2007-07-05 2016-09-27 Microsoft Technology Licensing, Llc Custom operating system via a web-service
CN102760063A (en) * 2011-04-25 2012-10-31 联想(北京)有限公司 File loading method and device
US20130031597A1 (en) * 2011-07-25 2013-01-31 Da Silveira Jorni Santana Method and equipment for security isolation of a client computer
CN103593226A (en) * 2013-11-04 2014-02-19 国云科技股份有限公司 Method for improving IO performance of disc of virtual machine
CN108446189A (en) * 2018-06-12 2018-08-24 中国科学院上海技术物理研究所 A kind of fault-tolerant activation system of spaceborne embedded software and method
CN108446189B (en) * 2018-06-12 2023-09-12 中国科学院上海技术物理研究所 Satellite-borne embedded software fault-tolerant starting system and method

Also Published As

Publication number Publication date
WO2001013221A3 (en) 2001-12-13
AU6386900A (en) 2001-03-13

Similar Documents

Publication Publication Date Title
US6546489B1 (en) Disk drive which provides a secure boot of a host computer system from a protected area of a disk
US6266809B1 (en) Methods, systems and computer program products for secure firmware updates
US6678741B1 (en) Method and apparatus for synchronizing firmware
EP1434135B1 (en) Method for backing up and recovering data in the hard disk of a computer
AU2002250453B2 (en) System and method for restoring computer systems damaged by a malicious computer program
US7281266B2 (en) Personal computer internet security system
US20050144609A1 (en) Methods and apparatus to provide a robust code update
US5537540A (en) Transparent, secure computer virus detection method and apparatus
US20060224794A1 (en) Using USB memory device to recover operating system
US20070283444A1 (en) Apparatus And System For Preventing Virus
EP1280058A2 (en) Method and system for creating and employing an operating system having selected functionality
US20030233558A1 (en) System and method for securely booting from a network
US7000231B1 (en) Method of manufacturing operating system master template, method of manufacturing a computer entity and product resulting therefrom, and method of producing a production version of an operating system
JP2005327275A (en) Efficient patching
US20080005472A1 (en) Running applications from removable media
CN101213557B (en) Anti-hack protection to restrict installation of operating systems and other software
US7917715B2 (en) Internet-safe computer
US20050055690A1 (en) System and method for communication between computers via an integrated hardware device
AU2005201434A1 (en) Efficient patching
EP1194850A1 (en) System and method for protecting shared system files
AU2005201407A1 (en) Efficient patching
US7383466B2 (en) Method and system of previewing a volume revert operation
CN101371228B (en) A procedure for booting a first computer using the operating system of a second computer
US6961833B2 (en) Method and apparatus for protecting data in computer system in the event of unauthorized data modification
CN1696911B (en) Patching method and computation system

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
AK Designated states

Kind code of ref document: A3

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A3

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase in:

Ref country code: JP