Code alignment of binary files
First Claim
1. A method for reducing a number of changes between an original file and a new file on a processor-based device, comprising:
- sorting code blocks of the original file and generating a largest increasing subsequence (LIS) of code blocks according to index values;
generating a list of original order numbers of the code blocks of the original file affected by code block movement; and
moving the code blocks of the original file to locations in the original file according to the LIS, wherein the code blocks of the original file are aligned in the same order as code blocks of the new file.
5 Assignments
0 Petitions
Accused Products
Abstract
A file differencing and updating system is provided that includes a file differencing component and a file updating component. The file differencing component, or file differencing engine, generates a difference file in a first processor-based or computer system from an original or old version and a new version of an electronic file. Generation of the difference files includes processing to reduce the number of file changes introduced by code block swaps. The processing uses an alignment algorithm, which includes a sorting algorithm, to align the code blocks of the original version in the same order as those of the new version, thereby eliminating the increase in the number of byte-level file differences due to code block swaps. During the alignment operations, the block movements are dynamically recorded at a minimum cost level and encoded for transmission to the file updating component for use in code recovery.
107 Citations
23 Claims
-
1. A method for reducing a number of changes between an original file and a new file on a processor-based device, comprising:
-
sorting code blocks of the original file and generating a largest increasing subsequence (LIS) of code blocks according to index values; generating a list of original order numbers of the code blocks of the original file affected by code block movement; and moving the code blocks of the original file to locations in the original file according to the LIS, wherein the code blocks of the original file are aligned in the same order as code blocks of the new file. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A computer readable medium including executable instructions which, when executed in a processing system, reduce a number of changes between an original file and a new file by:
-
sorting code blocks of the original file and generating a largest increasing subsequence (LIS) of code blocks; generating lists of original order numbers of the code blocks of the original file affected by code block movements; and moving the code blocks of the original file to locations in the original file according to the LIS, wherein the code blocks of the original file are aligned in the same order as code blocks of the new file.
-
-
10. An apparatus comprising:
-
a processor; and a code block alignment system coupled to the processor, wherein the code block alignment system is configured to reduce a number of byte-level file differences between an original file and a new file by sorting and moving code blocks of the original file to align the code blocks of the original file in the same order as code blocks of the new file, wherein the code block alignment system is configured to dynamically record data describing the moving of the code blocks, wherein the code block alignment system is configured to transfer the data describing the moving to a remote device. - View Dependent Claims (11, 12, 13, 14)
-
-
15. A device comprising:
-
a processor; and a differencing system coupled to the processor, the differencing system configured to generate differences between an original version and a new version of an electronic file, wherein the differencing system is configured to determine an order of code blocks of the new version using index values, wherein the differencing system is configured to sort code blocks of the original version and generate a largest increasing subsequence (LIS) of code blocks according to the index values, wherein the differencing system is configured to move the code blocks of the original version to locations in the original version according to the LIS so that the code blocks of the original version are aligned in the same order as code blocks of the new version. - View Dependent Claims (16, 17, 18, 19)
-
- 20. A system for updating electronic files of remote devices, comprising a first device including a processor coupled to a differencing system that generates differences between an original version and a new version of an electronic file, wherein the differencing system is configured to determine an order of code blocks of the new version using index values, sort code blocks of the original version and generating a largest increasing subsequence (LIS) of code blocks according to the index values, move the code blocks of the original version to locations in the original version according to the LIS so the code blocks of the original version are aligned in the same order as code blocks of the new version, and generate a list including data of the code block moves.
Specification