Device and method for releasing an in-memory executable...

Data processing: software development – installation – and managem – Software program development tool – Testing or debugging

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C717S120000, C711S147000

Reexamination Certificate

active

06530077

ABSTRACT:

TECHNICAL FIELD OF THE INVENTION
This invention relates in general to computer software and, more specifically, to devices and methods for releasing an in-memory executable image (e.g., an executing partitioning program) from its dependence on a backing store (e.g., an executable file stored on a hard disk being partitioned by the partitioning program).
BACKGROUND OF THE INVENTION
“Partitioning” refers to a process by which a computer storage device, such as a hard disk, is divided into multiple logical devices. For example, a computer user wishing to run both the Windows NT® and Linux® operating systems from a single hard disk might partition the disk into two logical devices—one for running Windows NT®, and the other for running Linux®.
The assignee of this invention, PowerQuest Corporation, has developed partitioning software (referred to as “PartitionMagic®”) to assist computer users in the partitioning process described above. Various implementations of this software are described in detail in U.S. Pat. Nos. 5,675,769 and 5,706,472 to Ruff et al., and U.S. Pat. No. 5,930,831 to Marsh et al.
When running as a Win32 program (i.e., a 32-bit Windows® program) under the Windows NT® operating system, PartitionMagic® can only operate on partitions that have no open files. Since the Windows NT® operating system always has at least some open files running from its own partition, PartitionMagic® cannot operate on the Windows NT® partition when it runs as a Win32 program.
Accordingly, PartitionMagic® has been designed to also run in the Windows NT® boot mode, where it can operate on all partitions, including the Windows NT® partition. In this mode, the Windows NT® kernel loads first. The kernel then loads any device drivers. A portion of the kernel referred to as the “Session Manager” then executes any programs that require hard disk access before the Windows® user interface is loaded. In addition to PartitionMagic®, such programs include ‘autochk.exe’ (a utility for checking the condition of the hard disk) and ‘autoconv.exe’ (a utility for performing file system conversions), both from Microsoft® Corporation, and ‘autofat.exe’ and ‘autontfs.exe’ (utilities for file defragmentation), both from Executive Software, Inc. Once these programs have executed, the Session Manager generally loads the Windows® user interface to initiate the Windows NT® Win32 mode, although PartitionMagic® reboots instead.
As shown in
FIG. 1
, a program, such as PartitionMagic®, running in Windows NT® boot mode generally includes an in-memory executable image
10
stored in computer memory
12
, and an executable file
14
(referred to as a “backing store”) stored on a hard disk
16
. The in-memory executable image
10
is allocated a range of the memory
12
—referred to as its “working set” —that is something less than is required to load the entire program into the memory
12
from the executable file
14
. In order to run the entire program, the Windows NT® kernel pages (i.e., swaps) portions of the executable file
14
(e.g., a portion
20
) into the in-memory executable image
10
on demand, and in the process overwrites portions of the executable image
10
(e.g., a portion
18
) that aren't immediately needed.
This can be problematic during the partitioning process, because PartitionMagic® may corrupt the executable file
14
by copying the file
14
to a new location on the hard disk
16
and then overwriting the original location of the file
14
with other data. As a result, when the Windows NT® kernel attempts to page code from the original location of the executable file
14
into the executable image
10
, it is actually paging in foreign data that is not from the executable file
14
. This inevitably leads to execution errors in PartitionMagic® when an attempt is made to execute the foreign data paged into the executable image
14
.
Thus, there is a need in the art for a device and method that release an in-memory executable image from its dependence on a backing store, thereby avoiding the possibility of paging foreign data into the executable image.
SUMMARY OF THE INVENTION
In one embodiment of this invention, one or more pageable program sections contained in a Windows NT executable file are executed (i.e., run) by first booting into Windows NT boot mode. Then, while in Windows NT boot mode, an in-memory executable image is generated from the executable file, a working set of the executable image is adjusted so the image can accommodate all the pageable program sections of the executable file, all the pageable program sections are locked into the executable image, and the image is executed. This effectively releases the executable image from its dependence on the executable file as its backing store.
The working set of the executable image can be adjusted by, for example, calling a working set Windows NT Application Programming Interface (API) with the necessary working set parameters. Also, the pageable program sections can be locked into the executable image by, for example, passing a base address and a section size for each of the sections to a locking Windows NT API. The base address and section size for each section can be obtained, for example, from fields in a section header associated with each section and contained in the executable file.
In another embodiment of this invention, an in-memory executable image is released from its dependence on a Windows NT executable file containing one or more pageable program sections as its backing store. Specifically, while in Windows NT boot mode, a working set of the in-memory executable image is adjusted so the image can accommodate all the pageable program sections of the Windows NT executable file, and all the pageable program sections are then locked into the in-memory executable image.
In yet another embodiment of this invention, one or more pageable computer program portions contained in an executable file, and capable of corrupting the file upon execution, are executed by generating an in-memory executable image from the file. Enough memory is allocated to the executable image for the image to accommodate all the pageable computer program portions of the executable file. All the pageable computer program portions are then locked into the executable image, and the image is executed, thereby corrupting the executable file. The executable image continues to execute after corrupting the executable file by not paging program portions into the image from the corrupted file.
In still another embodiment of this invention, a storage medium in a computer system is partitioned by providing an executable file (e.g., a Windows NT executable file) on the storage medium containing one or more pageable computer program portions that partition the storage medium. An in-memory executable image is generated from the executable file, and enough memory in the computer system is allocated to the executable image for the image to accommodate all the pageable computer program portions of the executable file. All the pageable computer program portions are locked into the executable image, and the image is executed without paging program portions into the image from the executable file, thereby partitioning the storage medium.
In a further embodiment of this invention, a storage medium in a computer system is partitioned by providing a Windows NT executable file on the storage medium. The file contains pageable computer program sections (e.g., ‘.text’ and ‘data’ sections) that partition the storage medium, and one or more section headers corresponding to the pageable computer program sections, each of which includes a base address and a section size for its corresponding pageable computer program section. The computer system is booted into Windows NT boot mode and, while in Windows NT boot mode, an in-memory executable image is generated from the executable file. A working set Windows NT Application Programming Interface (API) is then called to adjust a working set of the executable image so the image can accommodate all the pageable computer program section

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Device and method for releasing an in-memory executable... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Device and method for releasing an in-memory executable..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Device and method for releasing an in-memory executable... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-3025612

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.