The present invention relates generally to the field of computers, and specifically to an emulated read-write disk drive implemented using a protected medium.
Protected, or read-only media devices, such as CD-ROM and DVD-ROM, have become ubiquitous parts of modern computer systems, with a CD-ROM and/or DVD-ROM drive standard equipment on the vast majority of computers. In addition, CD-ROM and DVD-ROM “burners,” or drives capable of writing data to these traditionally read-only media, have proliferated to the extent that nearly all personal computer manufacturers offer a CD-ROM burner or DVD-ROM burner as standard equipment on the machines they sell. The drives are additionally available as peripheral equipment, communicating with the computer via a variety of interfaces such as IDE, SCSI, and the like.
A cost effective means for a computer user to safely archive large quantities of computer programs and data is to use a CD-ROM or DVD-ROM burner and save the data onto Write Once Read Many (WORM) media, or alternatively, a “re-writable” media. In either case, after data has been burned onto the CD-ROM or DVD-ROM and the media session has been closed, the data is protected from any changes and will appear as a read-only disk to the computer's host operating system and to the computer user.
While archiving data in a read-only format on protected media is cost effective, it imposes fundamental limitations on the way the archived data may be used. The standard file-system formats used on CD-ROM and DVD-ROM media were designed with characteristics specific to read-only media. For example, they limit direct use of data archived on the media to computer programs that were explicitly written to work with read-only files. As such, programs that rely on native file-system security features unable to directly use files archived on protected media. The read-only characteristics of protected media also preclude many executable programs from running directly from the media. For example, an executable program may need to write temporary files to the directory from which it was started, such as for scratch space, semaphores to synchronize with other programs or threads, alterations to the operating system registry, or the like. As one consequence of the inability of many executable programs to run directly from protected media, most modern computer operating systems, which were designed to operate natively on a read-write storage device such as a hard drive, are unable to load and execute from a protected medium.
Methods are known in the art that allow data on protected, or read-only, media to be dynamically modified. These methods intercept file and directory read and write requests before they reach the operating system's native CD-ROM file-system driver, and dynamically change the appearance of the data in the directories and files located on the protected media. Such methods are useful, for example in “patching” a bug in a file distributed on a CD-ROM, without the necessity to send the user an updated CD-ROM disk. The file and directory access requests to effect the modifications must be intercepted before they reach the operating system's native CD-ROM file-system driver, because the native CD-ROM file-system driver typically does not normally support write operations and will fail such requests. These prior art methods change only the appearance of the directories, files and data on the protected media as seen by the operating system, and not the characteristics of the native file-system. That is, the operating system, and application programs, will still see a read-only device, with read-only files and directories; the modification changes only the appearance of the data returned.
Other prior art methods, such as those used in Embedded XP product from Microsoft Corporation, use device drivers to emulate a read-write hard drive, using the image of a hard drive on a CD-ROM or other protected media device, in combination with a write cache to emulate write operations to the emulated hard drive. Such methods provide the operating system with a device that has all of the characteristics of a read-write hard drive device. This method of providing read-write functionality using a protected media presents several disadvantages. The method dispenses with some advantages of the protected media, such as the enforcement of read-only file attributes. By emulating a generic read-write device, a user may remove the read-only attribute from a file and then delete that file. This would give the appearance of the file being deleted and of additional free space being created on the emulated hard drive. A related disadvantage of emulating a generic read-write device in this manner is that there is no way to accurately predict in advance the total amount writeable storage that will be needed (i.e., the size of the write cache is not bounded), and thus available resources may be exceeded. For example, a CD-ROM may hold an image file of a 650 megabyte read-write hard drive; if such a devices is emulated on a personal computer that has only 128 megabytes of writeable memory available, the system may run out of write space.