|Publication number||US6615224 B1|
|Application number||US 09/256,627|
|Publication date||Sep 2, 2003|
|Filing date||Feb 23, 1999|
|Priority date||Feb 23, 1999|
|Publication number||09256627, 256627, US 6615224 B1, US 6615224B1, US-B1-6615224, US6615224 B1, US6615224B1|
|Inventors||Lewis B. Davis|
|Original Assignee||Lewis B. Davis|
|Export Citation||BiBTeX, EndNote, RefMan|
|Patent Citations (9), Non-Patent Citations (1), Referenced by (100), Classifications (10), Legal Events (3)|
|External Links: USPTO, USPTO Assignment, Espacenet|
1. Field of the Invention
This invention relates to the UNIX computer operating system, specifically applying to the “rm” or file delete command, and how to undelete a file removed by the command.
2. Discussion of Related Art
UNIX operating systems have never had a simple file undelete command, one that can undo the operation of the “rm”, command**. From the UNIX command-line, if “rm <file>” is entered, then <file> is deleted. At the present time, among all UNIX operating system platforms, there exists no simple command, e.g. “unrm <file>”, which can restore the deleted file. There do exist some work-around programs that can be devised or work-around utilities that can be purchased as add-ons. But, all such methods are cumbersome and/or have drawbacks.
Because of the possibility of accidentally removing all of the files in a directory using the “rm *” command and even all of the files and all subdirectories in a directory using the “rm -r *” command, the UNIX operating system has long had an unprotected danger zone among its commands. There is probably no UNIX system administrator who has not made a serious error in file deletion resulting in loss of data that has taken hours if not days to replace, depending on how recently the system was backed up.
In the past, there have been complex and inefficient file undelete utilities and methods on the market for all operating systems including UNIX. They are essentially of the following types: (1) low-level file system scanning utilities, (2) trash directories, and (3) renaming files to hidden types. Some of these methods are described in the comprehensive and in-depth book UNIX Power Tools, pp. 399-407, authored by Jerry Peek and published by O'Reilly.
Regarding the first type of file undelete utility, Peter Norton introduced his Norton Unerase Utility for Microsoft's DOS Operating System in 1981. In essence, the latter product performs a complete scan of the file system on the hard disc for intact deleted files. Then it displays a list of them to the user from which to choose for file restoration. At present, there are many such file undelete utilities on the market for various operating systems, including some for UNIX operating systems. These products perform a thorough scan of the file system on the hard disc for intact deleted files, and present a list of them to all the user. However, there are several drawbacks to this type of file undelete utility. First, one must shut down all presently-running tasks on the computer in order to prevent the operating system from overwriting the now-unprotected deleted file's data. Thus, these type of undelete utilities are not fail-safe. A user may not realize he deleted an important file before it is too late, and by then it has been over-written by the operating system. Second, the user must run the undelete utility, which is a time-consuming scan of the complete file system. This operation may take several minutes. Third, in the case of UNIX file systems, such hard disc scans generally cannot provide the name of the deleted file, because the record of the name has been destroyed. Thus, the user can become involved in time-consuming guessing as to which available deleted file is the desired one to restore.
Trash directories have existed for quite some time on Microsoft Windows operating systems. More recently, as UNIX operating systems have added or improved GUI interfaces on their platforms, they too have provided trash directories to protect deleted files, until the user decides to empty the trash directory. This method of protecting files is associated with Windows or Windows-like GUI interfaces to operating systems, and a wastebasket icon is usually displayed for drag-and-drop operations in order to delete files or directories. Files or directories are not really deleted using this method, just moved to the trash directory. Command-line operations, e.g. “C:> del <file>” from the DOS prompt or “$ rm <file>” from the UNIX prompt generally do not move <file> to any trash directory. They destroy the file from the operating system standpoint. In recent years Norton Utilities from Symantec Corporation has provided a low-level “recycle-bin” to protect files removed at the command-line of the Microsoft DOS operating system: “C:> del <file>”. The regular DOS “del” command operations are intercepted before they destroy <file>, and instead <file> is moved to a “recycle-bin”.
However, to date, such a utility has not been successfully accomplished for UNIX operating systems. The reason for this is that UNIX operating systems are designed to be extremely high-performance. Moving a file to another directory every time the “rm” command is called uses extra system overhead, and can fill up the file system on the hard disc if not properly controlled. A system administrator must continually monitor the storage directory and periodically delete older files or the hard disc may become filled up with stored “deleted” files. Automatic monitoring of a UNIX storage directory would require the creation of a complex background task in order to guard its size. An even more complex background task would be required in order to protect different deleted versions of the same file. UNIX platform providers simply have not provided such programs with their systems, because they would take up too much system overhead.
A file protection method similar to the trash directory was created on the UNIX system at Purdue University as mentioned in the book UNIX Power Tools cited above. In this case the “$ rm <file>” command is always intercepted and <file> is copied to a backup machine on the network with very large capacity, before <file> is destroyed on the local machine. This is essentially a “trash directory” for an entire network of UNIX machines. However, the system overhead required in this case is even greater than creating local trash directories on separate machines as previously discussed. This “copy-file/delete-file” trash directory procedure uses many more operations than the simpler “move-file” trash directory procedure described above.
The third general method that has sometimes been used in order to protect “deleted files” on UNIX systems is to alias or substitute the “rm” command with another command that renames a file with a “.” prefix. For example, using the command “$ mv foo .foo” instead of “$ rm foo” will protect the file “foo”, yet it will not be visible to the “$ ls” command. The file remains in the same directory, but is hidden, because the UNIX “ls” command does not display files with a “.” prefix. This procedure is also described in the book UNIX Power Tools. However, it has obvious drawbacks. Unless more complexity is used in writing the alias command, so that different suffixes are added to each deleted version of a file with a given name, only one hidden file for each filename can ever exist. Furthermore, if a directory <dir> is “deleted” using this method and a hidden file or directory already exists with the name <.dir>, the UNIX operating system will complain with an error message.
Note**: At the time of this update to the patent application, there has been found on the market a UNIX operating system, SCO Open Server 5.0.6, which has developed an “undelete” command similar to the third method just described. It may be found on the internet:
It does not alias the “rm” command as mentioned above, but at a lower level, and in a similar manner as described above, seems to intercept the “unlink( )”, “truncate( )”, and “rename( )” system calls inside the UNIX operating system kernel and create hidden versions of files and directories which are deleted from the command-line using the “rm” command. Essentially, this file undelete method renames files targeted by the “rm” command with special suffixes, so that they are hidden from the “ls” command. Hence, the user does not see them when he lists the files in a directory: “$ ls *”. SCO's “undelete” command: “$ undelete <file>” simply renames a hidden version of <file> by removing its special suffix, and so <file> becomes visible to the “ls” command. Multiple versions of the same filename are also protected in the SCO operating system.
The SCO Open Server “undelete” command has similarities to the methods described in the present patent application, since it modifies low-level system calls inside the operating system kernel. Note that this software was produced after the date of my patent application, and years after the date of my initial publication of the “undelete” methods stated herein. However, SCO's “undelete” command still has drawbacks that likely will prevent other UNIX platform providers from implementing similar methods. First, SCO “undelete” actually renames files which are the target of the “rm,” command. There is system overhead required to locate a position available in a directory index and create a new entry there in order to rename the file. Second, SCO “undelete” must search the entire set of directory entries every time a file is targeted by the “rm” command in order to decide what suffix, i.e. version number, to apply to a filename in order to rename and hide it. In addition to the extra system overhead just described, the oldest version of a deleted file must also be completely destroyed by performing an absolute removal of the latter's inode and data.
Therefore, it is an object of the present invention to provide a method of file protection on UNIX platforms during file deletion processes, whereby no system performance is sacrificed.
Furthermore, it is an object of this invention to actually enhance UNIX operating system performance, because final destruction of the oldest deleted files is done in large batches.
Finally, it is an object of this invention to automate the cleanup procedures heretofore required by the less efficient trash directory and “hidden file” protection methods, so that cumbersome system administration maintenance and the accompanying system overhead is eliminated.
The present UNIX file undelete method is implemented through a change in the way the main UNIX core processor, or kernel, manages the file indexing system (inodes), and the general filesystem freelists. According to standard UNIX operating system kernel procedures, when a file is deleted using the “rm” command, three actions occur. First, the filename and pointer are removed from its directory block. Second, the kernel frees up file's data blocks for general use. Third, the kernel frees up the file's indexing record, or inode, for general use. Thus, the file is effectively destroyed from the operating system's standpoint. Only a low-level hard disc scan might piece together the file's information again, if this is done soon enough.
The preferred method for protecting a file from this destructive action is as follows. First, instead of removing the filename and pointer from the directory block upon deletion, simply set a “deleted” flag in the directory block record for the file, but let its record still remain there. The “deleted” flag is used to prevent the “is” command from displaying the file. Second, let the kernel continue to protect the file's inode and data blocks by keeping their freelist bits set. Third, add a record pointing to the file's metadata in a new structure called an EFQ, or end-of-freelist queue.
The EFQ is sequentially-ordered set of short records, each of which contains necessary information about a “deleted”, protected file. In order to prevent the UNIX filesystem from becoming over-loaded with hidden protected files, there must be an efficient method to remove the oldest of these protected files. That is where the EFQ comes in. When the total size of all of the files recorded in the EFQ surpasses a certain limit, say 10% of the total filesystem volume, then the operating system kernel will recognize this at the next use of the “rm” command. At that time, it automatically initiates a procedure which starts at the end of the EFQ whose records point to the oldest protected files. This procedure systematically frees up the protected files' records, data blocks, and metadata information for new use by the operating system. It is performed on enough of the oldest records in the EFQ, so that a lower limit, say only 7% of the total filesystem volume, remains under protection with records in the EFQ. Thus, the filesystem never fills up with hidden protected files. Without a high-performance, sequential record structure such as this EFQ, the system maintenance task of permanently removing protected files on a UNIX operating system becomes cumbersome and creates unnecessary system overhead. Note that the 7% and 10% limits mentioned above are examples only, and the system administrator may choose different parameters for the operation of the EFQ.
The following procedure is used to undelete a file protected with this method. First, the addition of a new option to the UNIX “ls” command, allows it to display all of the “deleted” files in a given directory, that is, all entries in the directory with the “deleted” flag set. Second, when the user types “$ unrm <file>” on the command-line, a system call in the UNIX operating system kernel unsets the “deleted” flag in the file's directory record. The “ls” command, using regular options, displays the file again as a normal entry in the directory. Since the file's data blocks and inode were never released, as would be the case using ordinary UNIX delete procedures, the file is now totally restored to the system. The kernel system call used by the “unrm” command also sets a flag in the EFQ's record for that file, indicating that it has been undeleted.
FIG. 1 is a flow chart for the process of file deletion, including the decision of whether to protect or destroy the file.
FIG. 2 is a flow chart for the process of undeleting a file.
FIG. 3 is a flow chart for the process of permanently removing the oldest files recorded in the EFQ.
FIG. 4 illustrates a typical UNIX filesystem layout on a hard disc.
FIG. 5 shows an enlarged diagram of a sample inode containing the metadata for a typical file on a UNIX filesystem.
FIG. 6 shows an enlarged diagram of a sample directory block containing records for files in the directory in a UNIX filesystem.
FIG. 7 is a diagram depicting a particular embodiment of an EFQ or end-of-freelist queue.
Many of the terms used in this description are in common use among those skilled in the use of the UNIX operating system. However, to definitely establish their context for this invention, the following terms are defined.
The UNIX “kernel” is the core operating system program, always maintained in the computer's memory. It performs the all of the low-level operating system functions which control the computer.
A file “pointer” is a numeric value contained in the file's record located in its directory block. This numeric value is the filesystem index number for the file's “inode”.
An “inode” is a small data structure containing all of the information about a file. Contained in this data is, for example, (1) the owner of the file, (2) the type of file, (3) permissions as to who may read, write, or execute the file, (4) locations of the file's data blocks on the hard disc. For most present UNIX filesystems, this data structure is generally less than 1 kilobyte (1 KB) long. On the Linux “ext2” filesystem, for example, an inode structure has 128 bytes of data, called “metadata”, describing the important file attributes.
“Metadata” is a general programming language term which is applied to data that is used to describe attributes of a structure which contains regular data, or user content.
“Freelists” are bitmap memory structures. Most present UNIX operating systems use bitmaps to determine whether filesystem inodes and data blocks are free to be used or not. If a bit is set to 0, then the associated inode or data block is available for use. If a bit is set to 1, then its associated inode or block is not available for use.
The following terms are related to a specific structure uniquely associated with this invention.
The “EFQ” or “end-of-freelist queue” is a structure comprised of a sequentially-ordered system of smaller “efq entries”, which make up the main information contained in the “queue”. Each “efq entry” contains important metadata about a deleted file: (1) the time the file was deleted, (2) the index number of the file's inode, (3) the index number of the directory containing the file, and (4) other necessary data particular to the embodiment of the invention. The EFQ structure has a header containing its configuration parameters. The EFQ may be maintained in the computer's RAM memory, it may be maintained as a file on the hard disc, or other media.
In a preferred embodiment, FIG. 1 is a flow chart showing the process for deleting a file. The user enters a command to delete a file 104. This may occur in several possible ways: (1) the user may enter “$ rm <file>” from the command line; (2) the user may enter “$ cp <file1> <file2>” from the command line, where <file2> is the name of an existing file; (3) the user may enter “$ mv <file1> <file2>” from the command line, where <file2> is the name of an existing file; (4) the user may run a “C” executable program, which contains an “unlink(<file>)” function call. These are many of the ways in which a file on a UNIX filesystem may be deleted by a user, though not necessarily an exhaustive list.
All of the previously-mentioned higher-level commands and programs that request the UNIX kernel to delete a file use a common lower-level system call, “sys_unlink(<file>)” 108, which is a function the kernel itself performs. Various UNIX operating systems may use different programming names for this function. In this preferred embodiment, “sys_unlink( )” is the name that the Linux operating system uses for this kernel function. At the point 104 when the user requests to delete a file, he may decide whether to protect the file or not. This is done by passing a parameter as an argument to his command. The kernel receives this parameter in the “sys_unlink( )” call 108 and then makes a decision as to which course to follow 112. If the decision is to protect the file, an adjusted “sys_unlink( ) kernel call is directed to set the “deleted” flag in the file's directory record 116, rather than remove the directory record 116 entirely. After this, the adjusted “sys_unlink( )” kernel call sequentially adds the file's “efq entry” to the EFQ 120.
Procedure 116 of FIG. 1 is described as follows. FIG. 4 illustrates in more detail the objects involved in this operation performed by the kernel. It depicts the layout of a Linux “ext2” filesystem on a hard disc. This filesystem consists of a sequence of cylindrical groups of hard disc blocks 410-1-410-n. The data blocks for a particular file 430 require an inode 440 containing the pointers to these blocks in its metadata. The inode groups 420-1-420-n for this filesystem lie at the beginning of each cylindrical group of hard disc blocks. A specific inode 440 for the particular file 430 is illustrated in FIG. 5. Note the pointers 520 in FIG. 5 to the individual data blocks for the file 430. These pointers are listed along with other metadata 510 contained in the inode 440. The name and inode pointer for the file 430 are listed in a directory block 450.
FIG. 6 illustrates a particular example of the directory block 450 with its records for various files and their inode pointers. The particular file 430 is recorded in its directory block 450 at the location 604 in FIG. 6. The inode pointer 608 in the file record 604 is displayed in the first field 616 of the directory block. This pointer 608, i.e. number 407664, is the same as inode #407664 depicted in FIG. 5. The filename 612 in the file record 604 is displayed in the sixth field 628 of the directory block. Other fields 620 in the directory block contain information about each record, for example the offset, record length, and name length. However, in the preferred embodiment of this invention, a new field 628 is added to each record in the directory block. It is the “deleted” flag, which states whether the file represented by the record is deleted or not. In FIG. 5 a “0” in field 624 signifies that the file is not deleted; a “1” signifies that the file is deleted yet still protected. Note that the file 430 whose name is “undelete.c” in record 604 is deleted, because its flag is set to “1”. The preceding has described procedure 116 of the flow diagram in FIG. 1. The UNIX “ls” command has been modified, so that it will not display files whose “deleted” flag is set. However, the file is still protected, because its inode pointer 608 is still contained in the directory record 604, and inode #407664 has not been freed up for other use by the kernel.
Procedure 120 of FIG. 1 is described as follows. FIG. 6 illustrates An “EFQ” structure, which is necessary for the UNIX kernel to perform undelete operations efficiently. In the preferred embodiment, it is maintained in RAM memory for highest possible performance. FIG. 7 shows an EFQ entry 720 that has just been appended to the EFQ, because the file under discussion above has just been deleted. Note that the EFQ is therefore a sequential structure containing a series of entries ordered according to the time that their corresponding file was de-leted. Each entry in the EFQ is a structure made up of a sequence of numbers “dptfxx” related to the deleted file. This data is recorded when the entry is created: d=the inode pointer to the directory in which the file is recorded, p=the inode pointer to the deleted file, t=the time deleted, f=flags for the EFQ entry, x=other data according to various embodiments. Examples of two important flags contained in the number f are described. (1) If the user chooses to undelete the file, then an “undeleted” flag must be set for this EFQ entry, inactivating the entry. (2) If the user chooses to permanently destroy the file, then a “removed” flag must be set for this EFQ entry.
After the metadata for the deleted file has been appended as an entry to the EFQ, the total size of the protected files recorded in the EFQ is checked. This running total of the size of the files recorded in the EFQ is stored in a variable in the EFQ's header 710. If the total size is still less than a given maximum (a parameter determined by the UNIX system administrator), then the protected file delete pro-cedure is done. On the other hand, if the total size of the protected files has reached the limit, then the kernel initiates a bulk cleanup procedure. FIG. 3 is a flow chart for the procedure associated with the bulk cleanup. Essentially, the regular UNIX file deletion procedure, which completely destroys files, is applied to the oldest files on record in the EFQ. The file's directory record 308 is removed, the file's data blocks are freed 312, and the file's inode is freed 316. Since the EFQ has been constructed sequentially in order according to each file's deletion time, it is easy to find the files on record in the EFQ sequentially, the oldest being first. Files are repeatedly removed from the system, until the EFQ total protected file size is pared to a reasonable level, this parameter determined by the system administrator. The most recently deleted files, of course, are still protected in the EFQ. Thus, the highly-efficient in-memory EFQ sequential system of records is the key cleaning up excess older protected files, without using excess system overhead.
In FIG. 1, if the decision 112 is made not to protect the file, the kernel proceeds to perform the regular operations that UNIX operating systems have always used for permanently deleting files. At 128 the directory record (see FIG. 5, 504) for the file is permanently removed. At 132 the file's data blocks (see FIG. 1, 330) are immediately freed up for use by the kernel, potentially destroying any data in the blocks very soon. At 136 the file's inode (see FIG. 1, 340) is immediately freed up for use by the kernel, potentially destroying very soon any metadata in the inode which can be used to reconstruct the file.
FIG. 2 is a flow chart showing the operations performed when a file is to be undeleted. This is a reversal of the operations performed when deleting a file in protected mode. The user enters a command to undelete a file 204. This may be performed from the command-line by typing “$ unrm(<file>)”. This command searches the directory for all records with the “deleted” flag set 208 (compare FIG. 5, 504, 508). Assume that it finds <file> among the “deleted” records. In the preferred embodiment, a request is sent to the kernel using the “sys_unlink( )” system call. True, a new system call, “sys_undelete( )”, may be created also for this purpose. However, a working embodiment has already been written that uses the kernel's “sys_unlink( )” call to perform the undelete operations. The request to the “sys_unlink( )” call sends the kernel the file's directory pointer number, the file's inode pointer number, and an “UNDELETE” flag 212. Using this information, the kernel unsets the “deleted” flag in the file's directory record 216. Finally, the kernel is directed to search the EFQ for the entry which has the file's inode pointer number, and then set the entry's flag as “undeleted”. Thus, the UNIX “ls” command will once again display <file> in the directory, and it is completely restored to the system. The EFQ entry for the file has also been inactivated.
In an alternate embodiment for the EFQ, a file on the hard disc may be used instead. This certainly would be less efficient than the straight-on sequence of EFQ entries in RAM, because mechanical hard disc access time and block device processing time is much greater than that for linear byte access in RAM. However, it is still a viable method for creating an EFQ, without being using excessive system overhead.
|Cited Patent||Filing date||Publication date||Applicant||Title|
|US5265159 *||Jun 23, 1992||Nov 23, 1993||Hughes Aircraft Company||Secure file erasure|
|US5289540 *||Aug 26, 1992||Feb 22, 1994||Richard P. Jones||Computer file protection system|
|US5485606 *||Jun 24, 1992||Jan 16, 1996||Conner Peripherals, Inc.||System and method for storing and retrieving files for archival purposes|
|US5535375 *||Oct 11, 1994||Jul 9, 1996||International Business Machines Corporation||File manager for files shared by heterogeneous clients|
|US5586322 *||Jun 2, 1995||Dec 17, 1996||Beck; Robert E.||Workgroup organized network manager with workstation comparison system|
|US5930513 *||Jun 6, 1996||Jul 27, 1999||Sun Microsystems, Inc.||Reference based software installation|
|US6119212 *||Apr 23, 1997||Sep 12, 2000||Advanced Micro Devices, Inc.||Root size decrease on a UNIX based computer system|
|US6134660 *||Jun 30, 1997||Oct 17, 2000||Telcordia Technologies, Inc.||Method for revoking computer backup files using cryptographic techniques|
|US6249879 *||Apr 30, 1998||Jun 19, 2001||Compaq Computer Corp.||Root filesystem failover in a single system image environment|
|1||*||Tom Pycke, Recovering Files in Linux, available at www.recover.source.net/linux.|
|Citing Patent||Filing date||Publication date||Applicant||Title|
|US6825876||Jan 21, 2000||Nov 30, 2004||Lightsurf Technologies, Inc.||Digital camera device with methodology for efficient color conversion|
|US6874139 *||May 15, 2001||Mar 29, 2005||Interfuse Technology Corporation||Method and system for seamless integration of preprocessing and postprocessing functions with an existing application program|
|US7058664 *||Apr 29, 2002||Jun 6, 2006||Sprint Communications Company L.P.||Method and system for data recovery|
|US7103357||Jan 11, 2001||Sep 5, 2006||Lightsurf Technologies, Inc.||Media spooler system and methodology providing efficient transmission of media content from wireless devices|
|US7103606 *||Jun 18, 2001||Sep 5, 2006||International Business Machines Corporation||Method and apparatus for removing information from a server|
|US7185205 *||Mar 26, 2002||Feb 27, 2007||Galois Connections, Inc.||Crypto-pointers for secure data storage|
|US7246209||Nov 30, 2004||Jul 17, 2007||Kabushiki Kaisha Toshiba||System for secure erasing of files|
|US7281084||Jan 12, 2005||Oct 9, 2007||Emc Corporation||Method and apparatus for modifying a retention period|
|US7284101||Aug 4, 2004||Oct 16, 2007||Datalight, Inc.||Reliable file system and method of providing the same|
|US7305424 *||Aug 17, 2001||Dec 4, 2007||Network Appliance, Inc.||Manipulation of zombie files and evil-twin files|
|US7369161||Feb 7, 2001||May 6, 2008||Lightsurf Technologies, Inc.||Digital camera device providing improved methodology for rapidly taking successive pictures|
|US7372485||Nov 5, 1999||May 13, 2008||Lightsurf Technologies, Inc.||Digital camera device and methodology for distributed processing and wireless transmission of digital images|
|US7428621||Jan 12, 2005||Sep 23, 2008||Emc Corporation||Methods and apparatus for storing a reflection on a storage system|
|US7451165||Jun 15, 2004||Nov 11, 2008||Network Appliance, Inc.||File deletion and truncation using a zombie file space|
|US7505165 *||May 15, 2002||Mar 17, 2009||Sanyo Electric Co., Ltd.||Image recording apparatus|
|US7636737 *||Dec 20, 2005||Dec 22, 2009||Microsoft Corporation||Web site multi-stage recycling|
|US7647355 *||Oct 30, 2003||Jan 12, 2010||International Business Machines Corporation||Method and apparatus for increasing efficiency of data storage in a file system|
|US7660837||Feb 9, 2010||Broadcom Corporation||Method for automatically managing disk fragmentation|
|US7698516||Apr 13, 2010||Emc Corporation||Methods and apparatus for managing deletion of data|
|US7724281||Feb 4, 2002||May 25, 2010||Syniverse Icx Corporation||Device facilitating efficient transfer of digital content from media capture device|
|US7730114||Nov 12, 2004||Jun 1, 2010||Microsoft Corporation||Computer file system|
|US7765244 *||Jul 27, 2010||Broadcom Corporation||Fast and efficient method for deleting very large files from a filesystem|
|US7792876||Sep 7, 2010||Syniverse Icx Corporation||Imaging system providing dynamic viewport layering|
|US7814367||Nov 14, 2005||Oct 12, 2010||Double-Take Software Canada, Inc.||Method and system for time addressable storage|
|US7860896||Jan 12, 2010||Dec 28, 2010||Broadcom Corporation||Method for automatically managing disk fragmentation|
|US7881715||Sep 5, 2006||Feb 1, 2011||Syniverse Icx Corporation||Media spooler system and methodology providing efficient transmission of media content from wireless devices|
|US7921082 *||Jan 23, 2004||Apr 5, 2011||Lsi Corporation||File recovery under linux operating system|
|US7921083 *||Apr 5, 2011||Fujitsu Semiconductor Limited||File management device and electronic equipment|
|US7954052||May 31, 2011||International Business Machines Corporation||Method for processing a web page for display in a wiki environment|
|US7966351||Jul 26, 2010||Jun 21, 2011||Broadcom Corporation||Fast and efficient method for deleting very large files from a filesystem|
|US8055698||Nov 8, 2011||Microsoft Corporation||Network recycle bin|
|US8055861||Nov 8, 2011||Emc Corporation||Methods and apparatus for managing deletion of data|
|US8145900||Mar 27, 2012||Galois, Inc.||Crypto-pointers for secure data storage|
|US8196039||Jun 5, 2012||International Business Machines Corporation||Relevant term extraction and classification for Wiki content|
|US8212893||May 12, 2008||Jul 3, 2012||Verisign, Inc.||Digital camera device and methodology for distributed processing and wireless transmission of digital images|
|US8219900||Jul 7, 2006||Jul 10, 2012||International Business Machines Corporation||Programmatically hiding and displaying Wiki page layout sections|
|US8321288||Dec 3, 2007||Nov 27, 2012||Syniverse Icx Corporation||Media asset management system|
|US8521790||Nov 4, 2009||Aug 27, 2013||International Business Machines Corporation||Increasing efficiency of data storage in a file system|
|US8560956||Jul 7, 2006||Oct 15, 2013||International Business Machines Corporation||Processing model of an application wiki|
|US8564683||Dec 6, 2010||Oct 22, 2013||Verisign, Inc.||Digital camera device providing improved methodology for rapidly taking successive pictures|
|US8572036||Dec 15, 2009||Oct 29, 2013||Datalight, Incorporated||Method and apparatus for fault-tolerant memory management|
|US8732429 *||Oct 20, 2010||May 20, 2014||International Business Machines Corporation||Preserving a deleted data volume|
|US8775930||Jul 7, 2006||Jul 8, 2014||International Business Machines Corporation||Generic frequency weighted visualization component|
|US8793228 *||Jan 14, 2009||Jul 29, 2014||Stmicroelectronics Pvt. Ltd.||File system including a file header area and a file data area|
|US9098520||Jan 20, 2013||Aug 4, 2015||Baloota Applications Ltd.||Apparatus and methods for restoring data objects|
|US20010036231 *||Feb 7, 2001||Nov 1, 2001||Venkat Easwar||Digital camera device providing improved methodology for rapidly taking successive pictures|
|US20020032027 *||Jan 11, 2001||Mar 14, 2002||Shekhar Kirani||Media spooler system and methodology providing efficient transmission of media content from wireless devices|
|US20020033838 *||May 15, 2001||Mar 21, 2002||Scott Krueger||Method and system for seamless integration of preprocessing and postprocessing functions with an existing application program|
|US20020083081 *||Aug 17, 2001||Jun 27, 2002||Chen Raymond C.||Manipulation of zombie files and evil-twin files|
|US20020176005 *||May 15, 2002||Nov 28, 2002||Sanyo Electric Co., Ltd.||Image recording apparatus|
|US20020191020 *||Jun 18, 2001||Dec 19, 2002||International Business Machines Corporation||Method and apparatus for removing confindential information from a history|
|US20020191032 *||Jun 18, 2001||Dec 19, 2002||International Business Machines Corporation||Method and apparatus for viewing and managing information in a history|
|US20030009465 *||Jun 18, 2001||Jan 9, 2003||International Business Machines Corporation||Method and apparatus for removing information from a server|
|US20030037248 *||Mar 26, 2002||Feb 20, 2003||John Launchbury||Crypto-pointers for secure data storage|
|US20030146977 *||Feb 4, 2002||Aug 7, 2003||Lightsurf Technologies, Inc.||Device facilitating efficient transfer of digital content from media capture device|
|US20050033775 *||Jun 15, 2004||Feb 10, 2005||Network Appliance, Inc., A California Corporation||File deletion and truncation using a zombie file space|
|US20050097142 *||Oct 30, 2003||May 5, 2005||International Business Machines Corporation||Method and apparatus for increasing efficiency of data storage in a file system|
|US20050107316 *||Feb 21, 2003||May 19, 2005||Klaus Strebhardt||Agent for inhibiting development or progress of proliferative diseases and especially cancer diseases and pharmaceutical composition containing said agent|
|US20050165863 *||Jan 23, 2004||Jul 28, 2005||Atul Mukker||File recovery under Linux operating system|
|US20060031269 *||Aug 4, 2004||Feb 9, 2006||Datalight, Inc.||Reliable file system and method of providing the same|
|US20060106841 *||Nov 12, 2004||May 18, 2006||Microsoft Corporation||Computer file system|
|US20060117136 *||Nov 30, 2004||Jun 1, 2006||Tran Peter H||System for secure erasing of files|
|US20060155943 *||Jan 12, 2005||Jul 13, 2006||Emc Corporation||Methods and apparatus for managing deletion of data|
|US20060259461 *||Oct 13, 2005||Nov 16, 2006||Rajesh Kapur||Method and system for preserving access to deleted and overwritten documents by means of a system recycle bin|
|US20070113031 *||Nov 16, 2005||May 17, 2007||International Business Machines Corporation||Memory management system and method for storing and retrieving messages|
|US20070143351 *||Dec 20, 2005||Jun 21, 2007||Microsoft Corporation||Web site multi-stage recycling|
|US20070208915 *||May 11, 2007||Sep 6, 2007||Tran Peter H||System for secure erasing of files|
|US20070299884 *||Jan 9, 2007||Dec 27, 2007||Fujitsu Limited||File management device and electronic equipment|
|US20080005205 *||Oct 6, 2006||Jan 3, 2008||Broadcom Corporation||Fast and efficient method for deleting very large files from a filesystem|
|US20080005206 *||Oct 6, 2006||Jan 3, 2008||Broadcom Corporation||Method for automatically managing disk fragmentation|
|US20080010249 *||Jul 7, 2006||Jan 10, 2008||Bryce Allen Curtis||Relevant term extraction and classification for Wiki content|
|US20080010341 *||Jul 7, 2006||Jan 10, 2008||Bryce Allen Curtis||Processing model of an application wiki|
|US20080010386 *||Jul 7, 2006||Jan 10, 2008||Bryce Allen Curtis||Method and apparatus for client wiring model|
|US20080010590 *||Jul 7, 2006||Jan 10, 2008||Bryce Allen Curtis||Method for programmatically hiding and displaying Wiki page layout sections|
|US20080010609 *||Jul 7, 2006||Jan 10, 2008||Bryce Allen Curtis||Method for extending the capabilities of a Wiki environment|
|US20080010615 *||Jul 7, 2006||Jan 10, 2008||Bryce Allen Curtis||Generic frequency weighted visualization component|
|US20080126944 *||Jul 7, 2006||May 29, 2008||Bryce Allen Curtis||Method for processing a web page for display in a wiki environment|
|US20080133609 *||Nov 30, 2007||Jun 5, 2008||Electronics And Telecommunications Research Institute||Object-based storage system for defferring elimination of shared file and method thereof|
|US20080172387 *||Jan 16, 2007||Jul 17, 2008||Olaf Manczak||Speeding up traversal of a file system tree|
|US20080183802 *||Jan 30, 2007||Jul 31, 2008||Microsoft Corporation||Network recycle bin|
|US20080189259 *||Oct 14, 2005||Aug 7, 2008||Rajesh Kapur||Method For Preserving Access To Deleted And Overwritten Documents By Means Of A System Recycle Bin|
|US20090006535 *||Jun 29, 2007||Jan 1, 2009||Symantec Corporation||Techniques For Performing Intelligent Content Indexing|
|US20100049755 *||Nov 4, 2009||Feb 25, 2010||International Business Machines Corporation||Method and Apparatus for Increasing Efficiency of Data Storage in a File System|
|US20100153665 *||Feb 26, 2010||Jun 17, 2010||Emc Corporation||Methods and apparatus for managing deletion of data|
|US20100185705 *||Jul 22, 2010||Stmicroelectronics Pvt.Ltd.||File system|
|US20100191708 *||Jan 23, 2009||Jul 29, 2010||International Business Machines Corporation||Synchronous Deletion of Managed Files|
|US20100198849 *||Aug 5, 2010||Brandon Thomas||Method and apparatus for fault-tolerant memory management|
|US20100217751 *||Aug 26, 2010||Comodo Security Solutions, Inc.||Method and system for safely deleting information from a computer|
|US20100290755 *||Nov 18, 2010||Broadcom Corporation||Fast and efficient method for deleting very large files from a filesystem|
|US20110128403 *||Dec 6, 2010||Jun 2, 2011||Lightsurf Technologies, Inc.||Digital Camera Device Providing Improved Methodology for Rapidly Taking Successive Pictures|
|US20120102279 *||Apr 26, 2012||International Business Machines Corporation||Preserving a deleted data volume|
|US20140215173 *||Jan 31, 2013||Jul 31, 2014||Vmware, Inc.||Low-cost backup and edge caching using unused disk blocks|
|CN1773509B||Nov 14, 2005||Dec 22, 2010||微软公司||计算机文件系统|
|CN101004769B||Jan 22, 2007||Aug 25, 2010||株式会社东芝;东芝泰格有限公司||System for secure erasing of files and method|
|CN101097577B||Jan 29, 2007||Dec 8, 2010||富士通半导体股份有限公司||File management device and electronic equipment|
|CN101103355B||Jan 12, 2006||Oct 20, 2010||伊姆西公司||Methods and apparatus for managing deletion of data|
|EP1531380A3 *||Oct 20, 2004||Aug 22, 2012||Sony Corporation||Digital data reproducing apparatus and corresponding management system.|
|EP1657654A2 *||Sep 30, 2005||May 17, 2006||Microsoft Corporation||Computer file system|
|WO2006076481A1||Jan 12, 2006||Jul 20, 2006||Emc Corporation||Methods and apparatus for managing deletion of data|
|WO2006076482A1||Jan 12, 2006||Jul 20, 2006||Emc Corporation||Methods and apparatus for managing deletion of data|
|U.S. Classification||707/610, 707/E17.01, 707/999.202, 707/828, 707/822, 707/999.2|
|Cooperative Classification||Y10S707/99953, G06F17/30067|
|Mar 21, 2007||REMI||Maintenance fee reminder mailed|
|Sep 2, 2007||LAPS||Lapse for failure to pay maintenance fees|
|Oct 23, 2007||FP||Expired due to failure to pay maintenance fee|
Effective date: 20070902