Differential file compression of software image versions
First Claim
1. A computing method for performing file differencing using at least one processor and a memory, comprising:
- identifying a plurality of regions in an original version of software image and in a new version of a software image using the at least one processor, wherein the plurality of regions comprise compact functional differences (CFD) preprocessing regions, wherein the CFD preprocessing regions comprise at least one table of pointers; and
preprocessing the plurality of regions using the at least one processor, comprising,examining the plurality of regions in the original version and the new version;
identifying matching paths in the new version and the old version using approximate matching techniques;
analyzing differences between corresponding regions in the new version and the old version; and
describing the differences using a transformation that depends on values of groups of N bytes in the corresponding regions.
3 Assignments
0 Petitions
Accused Products
Abstract
Embodiments include systems and methods for pre-processing and post-processing original and new versions of files as part of difference file generation between the original and new file versions. The systems and methods of an embodiment include a set of algorithms that reduce the difference file size by preprocessing a variety of regions in software images for embedded computing devices, an example of which is the compressed read-only memory (ROM) file system (CRAMFS) image. The algorithms treat a variety of types of data regions that are created by the compiler. Embodiments operate on the server side and the client side. On the server side, the preprocessing generates Compact Functional Differences (CFD) hint data directly from a pair of CRAMFS images, without the use of symbol files or log files generated by compiler/linker utilities.
45 Citations
19 Claims
-
1. A computing method for performing file differencing using at least one processor and a memory, comprising:
-
identifying a plurality of regions in an original version of software image and in a new version of a software image using the at least one processor, wherein the plurality of regions comprise compact functional differences (CFD) preprocessing regions, wherein the CFD preprocessing regions comprise at least one table of pointers; and preprocessing the plurality of regions using the at least one processor, comprising, examining the plurality of regions in the original version and the new version; identifying matching paths in the new version and the old version using approximate matching techniques; analyzing differences between corresponding regions in the new version and the old version; and describing the differences using a transformation that depends on values of groups of N bytes in the corresponding regions. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A computer system including at least one processor to perform file differencing by:
-
using the at least one processor and identifying portions in an original version of software image and in a new version of a software image, wherein the plurality of portions comprise at least one table of pointers that include compact functional differences; and using the at least one processor and preprocessing the plurality of portions comprising, identifying matching paths in the new version and the old version, including identifying matching file names; analyzing differences between corresponding portions in the new version and the old version; and describing the differences using a transformation that depends on values of groups of bytes in the corresponding portions. - View Dependent Claims (13, 14, 15, 16)
-
-
17. A computer system to generate difference information comprising:
a processor coupled to a preprocessing engine, the preprocessing engine operable to preprocess image information by; identifying a plurality of regions in an old version of software and in a new version of software, wherein the plurality of regions comprise compact functional differences (CFD) preprocessing regions, wherein the CFD preprocessing regions comprise at least one table of pointers; identifying matching paths in the new version and the old version, including using a matching technique based in part on file information in the new version and the old version; analyzing differences between corresponding regions in the new version and the old version; and describing the differences using a transformation function that depends in part on at least one value of a group of bytes in at least one corresponding region. - View Dependent Claims (18, 19)
Specification