Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 22

PATROLL Winning Submission

U.S. Patent No. 6,618,736

Claims 17 and 36 of the patent-at-issue, U.S. Patent No. 6,618,736 (“Intellectual


Ventures”), which was filed on Mar. 9, 2001 without any claim to an earlier priority date, are
directed to a method and system for creating and archiving file systems of a plurality of servers,
the method comprising: providing a set of shared storage units; for each of the plurality of
servers: providing a first set of private storage units, each of the private storage units
corresponding to a shared storage unit; and providing a first usage map for indicating which of
the private storage units contain valid data; intercepting an attempt to write a data item to a
shared storage unit; writing the data item to the corresponding private storage unit; and storing
an indication in the first usage map that the corresponding private storage unit contains valid
data.

The reference U.S. Patent No. 5,706,510 (“Hewlett Packard”), which was filed on Mar.
15, 1996 without any claim to an earlier priority date, is directed to a file management system
that allows a user to access specific versions of a plurality of files. The file management system
comprises a shared file system and a plurality of user file systems, all of said file systems being
physically stored within the one or more computer readable storage medias as logically separate
file systems. The shared file system employs read-only access to a number of file revision
archives stored in a history managed file system which is logically separate from the shared and
plurality of user file systems. Each first revision information file comprises file revision
information corresponding to the file versions of one or more of the shared file system's directory
hierarchies. The plurality of user file systems has read-only access to the shared plurality of file
versions, and read/write access to the file revision archives. Map entries indicate which directory
hierarchies comprising any of the plurality of user file systems correspond with the directory
hierarchies of the shared file system.

A sample claim chart comparing the core elements of claims 17 and 36 of Intellectual
Ventures to Hewlett Packard is provided below.

1
------------------------
Selected Excerpts from U.S. 6,618,736 (“Intellectual Ventures”)

“Accordingly, hosting multiple server applications on a single physical computer would be desirable.
In order to be commercially viable, however, every server application would need to be isolated from
every other server application running on the same physical host. Clearly, it would be unacceptable to
customers of an ISP to purchase hosting services, only to have another server application program
(perhaps belonging to a competitor) access the customer's data and client requests. Thus, each server
application program needs to be isolated, receiving requests only from its own clients, transmitting
data only to its own clients, and being prevented from accessing data associated with other server
applications.”

“Such functionality is unavailable on traditional server technology because, rather than comprising a
single, discrete process, a virtual private server must include a plurality of seemingly unrelated
processes, each performing various elements of the sum total of the functionality required by the
customer. Because each virtual private server includes a plurality of processes, it has been impossible
using traditional server technology for an ISP to isolate the processes associated with one virtual
private server from those processes associated with other virtual private servers.”

2
“Another difficulty in implementing multiple virtual private servers within a single physical host
involves providing each server with a separate file system. A file system is an organized accumulation
of data within one or more physical storage devices, such as a hard disk drive or RAID (redundant array
of inexpensive disks). The data is typically organized into “files,” such as word processing documents,
spreadsheets, executable programs, and the like. The files are stored within a plurality of “storage units”
of the storage device, sometimes referred to as “disk blocks” or “allocation units.” Unfortunately,
providing a separate physical device for storing the file system of each virtual private server would
be expensive and inefficient. Accordingly, it would be desirable to store the file systems of multiple
virtual private servers within the same physical device or comparatively small set of devices.”

“ServerXchange®, a product of Ensim Corporation, provides multiple virtual processes, such as virtual
private servers, with separate file systems. Each file system is stored in a linear set of equal-sized storage
units within the same physical storage device. This approach still presents a number of difficulties,
however. For example, an initial file system, including standard applications, utilities, databases,
etc., must be duplicated for each virtual private server. Such a duplication process results in
copying large amounts of data from one disk location to another, consuming significant amounts of
time and placing substantial memory and disk load on the physical server. Such extensive
duplication also results in wasted storage space, since all or part of the resulting file systems are
identical.”

“The above approach also presents difficulties when archiving (e.g., backing up) the file systems. For
example, since the file systems are being constantly changed by activity within the virtual private
servers, it is impossible to obtain a backup that is a “snapshot” of the files systems at a particular
time. By the time the backup process is complete (which may take several hours), the file systems will
have changed substantially. In addition, backing up such file systems may result in a substantial waste of
time and storage space due to the archival of duplicate data for each file system. Accordingly, what is
needed is a technique for creating separate file systems for a plurality of virtual private servers that
does not require extensive copying or wasted storage space. What is also needed is a technique for
efficiently backing up a file system of a virtual private server in which a snapshot of the file system
may be obtained at a particular point in time.”

US6618736 US5706510 (“Hewlett Packard”)

3
(“Intellectual Ventures”)

17.pre A method for creating and “In the achievement of the foregoing objects, the inventor has
archiving file systems of a plurality devised an improvement to a history managed file system.
of servers, the method comprising: The improvement is stored in one or more computer
accessible storage medias. The improvement (hereafter
merely referred to as a "system" or "ZHMS") allows a user
to access a plurality of files, and more particularly,
specific versions of the plurality of files. ZHMS comprises
a shared file system, and a plurality of user file systems,
all of said file systems being physically stored within the
one or more computer readable storage medias as
logically separate file systems.” Hewlett Packard at col.
2:39-49.

17.a.providing a set of shared “It is therefore a primary object of this invention to provide a
storage units; system of file history management wherein a user's file
storage space remains logically private, but has access to a
number of physically shared files.” Hewlett Packard at col.
----------------------
From US6618736:
2:23-26.
“The set of shared storage units 302 forms
an initial file system 200 for each virtual “The improvement (hereafter merely referred to as a
process 101.” "system" or "ZHMS") allows a user to access a plurality of
files, and more particularly, specific versions of the plurality
“The files are stored within a plurality of
“storage units” of the storage device,
of files. ZHMS comprises a shared file system, and a

4
sometimes referred to as “disk blocks” or plurality of user file systems, all of said file systems being
“allocation units.” physically stored within the one or more computer readable
https://www.researchgate.net/publication/305
storage medias as logically separate file systems.” Hewlett
017745_Role_of_File_System_in_Operating Packard at col. 2:43-50.
_System
“The most famous file-system in the world of “ZHMS alleviates a user's micro-management of files and
PC is the FAT family of file-system: FAT12, directories by allowing him or her read-only access to whole
FAT16, FAT32 and VFAT. Among all of
them the file-system used a specific method
trees of files (many more files than a user could access under
to partition the storage of disk volume HMS) without significantly impacting utilization of file
into isolated portion to set of scale of storage space (i.e., disk space), or without requiring the
well-organized disk utilization and physical sharing of a user's own directories.” Id. at col.
performance. These isolated portions 3:32-37.
called clusters. The method in which file
is assigned to a cluster is called
allocation. So clusters also termed as the“Each of the first revision information files 354 comprises
allocation-unit.” file revision information corresponding to the file versions
302-308 of one or more of the shared file system's
https://www.ibm.com/support/knowledgecent directories 326, 328, 330.” Id. at col. 4:61-64.
er/ssw_aix_72/devicemanagement/diskspcseg
.html
“Many UNIX file systems only allocate
contiguous disk space in units equal in size to
the logical blocks used for the logical
division of files and directories. These
allocation units are typically referred to as
disk blocks and a single disk block is used
exclusively to store the data contained within
a single logical block of a file or directory.”

NOTE: Because file systems comprise disk


blocks or allocation units, access to a file
system implies access to a disk block or
allocation unit.

5
“Map entries indicate which directory hierarchies
comprising any of the plurality of user file systems
for each of the plurality of servers: correspond with the directory hierarchies of the shared
file system.” Hewlett Packard at col. 2:65-67.
17.b. providing a first set of private
storage units, each of the private “One of HMS's most important features is that a user's
storage units corresponding to a workspace is separate and hidden from the space which is
shared storage unit; and used to maintain and manage file revision archives. A user's
workspace is also separate from the workspace of any
other user.” Id. at col. 2:5-9.

“It is therefore a primary object of this invention to


provide a system of file history management wherein a
user's file storage space remains logically private, but has
access to a number of physically shared files.” Id. at col.
2:23-26.

NOTE: PLEASE SEE UPDATED EXCERPTS FOR 17.a.


ABOVE.

6
17.c. providing a first usage map for “A plurality of symbolic links are stored as files in the
indicating which of the private directory hierarchies comprising any of the plurality of
storage units contain valid data; user file systems. Each of the symbolic links corresponds
to a file version comprising the shared file system. The
--------------------- correspondence of symbolic links and shared file versions
From US6618736: is based on the map entries.” Hewlett Packard at col. 3:1-
“The usage map 306 includes a plurality of 6.
indicators 308 for indicating whether a
corresponding private storage
unit 304 contains valid data. As used herein, “Zymlinks 436 to files 302 of the shared file system 104 are
the phrase “contains valid data” means established by 1) mapping 206 (FIG. 2) directories
that the private storage unit 304 stores hierarchies 344 of a user's file system 106 into directory
data representing a change to the initial hierarchies 326 of the shared file system 104, 2) creating 208
file system 200.”
symbolic links between individual files 436-442 in a user's
“The set of private storage units 304, on the file system 106 and the files 302-308 of the shared file
other hand, are used to store changes to the system 104, and 3) storing information 210, 212 about the
initial file system 200 that occur subsequent shared files 302-308 to which a user 106 is linked in one or
to the creation of the file system 200.” more "local" hidden revision information files 450
(denoted in subsequent computer pseudocode sections as
".revinfo/z-- entire-- tree" files) stored in specific locations
within the directory hierarchies 344, 446, 448 of a user's file
system 106. A file that has been established through directory
mapping 206, creation 208 of a symbolic link, and annotation
210, 212 is referred to as a "zymlink".” Id. at col. 22:54-67
through col. 23:1.

“The symbolic link part of a zymlink 436 is stored as a file


436 under a mapped directory 446 of a user file system
106.” Id. at col. 24:38-40.

7
“Following the above tasks 202, 204, directory hierarchies
344 of the plurality of user file systems 106 are mapped
206 into directory hierarchies 326 of the shared file system
104. Note: As used in this description, the term "directory
hierarchy" is used to refer to a directory, and when they exist,
all subdirectories of the directory.! Using these mappings
352, a plurality of files 436-442 is created 208 under the
directories of the directory hierarchies 344, 446, 448 (FIGS.
3, 4) of a user file system 106, wherein each of the created
files 436-442 is a symbolic link corresponding to a file
version 302-308 in the shared file system 104. First
revision information files 354, 356 are created 210. The first
revision information files 354, 356 are derived from the file
revision archives 312-324 of the history managed file system
102.” Id. at col. 4:17-31.

“The third usage of zrevfupdate shown in the synopsis above,


distinguished by the -P option, is used to "register" in the
appropriate remote hidden revision information file 554
all writable files 560 found in the view directory
hierarchy 326 containing each directory-- name directory
328. That is, for each directory-- name argument, the
containing view directory tree 326 is searched with a find
command for all writable physical files 560. For each file
560 found, an entry is placed in the view directory's
hidden revision information file 554; the entry being
identical to the entry that would have been created if the file
560 had been retrieved from HMS as type RAW, except that
the revision "number" recorded is designated "PRAW" (a
RAW file is a non-versioned file for which a history of
revisions is not maintained, such as a file which is a
compilation of multiple file versions).” Id. at col. 29:8-23.

“The term "view" (used as a noun) refers to a specific file

8
version, and more specifically, to a collection of files
which were modified and/or updated within given time
and/or event parameters. Thus, files of a common "view"
will comprise versions of files which are updated and/or
modified with the same periodic frequency, or as a
consequence of some event or milestone. For example, views
may comprise daily, weekly, known-- good, regression,
released, frozen and other defined views.” Id. at col. 22:18-
27.

17.d. intercepting an attempt to “The shared 104 and history managed 102 file systems are
write a data item to a shared logically separated from one another. After the shared file
storage unit; system 104 is constructed 202, a plurality of user file
systems 106-114 are provided 204 with read-only access to
--------------------- the shared file system 104.” Hewlett Packard at col. 4:7-12.
From US6618736:
“In the foregoing description, interception of “If user1 suspects that the file 560 to which this zymlink
system calls is illustrated as a primary
vehicle for file system virtualization.
642 points might be modified on the shared file system
However, virtualization at other levels is also 104, he or she may use the -c option to zreset. This will
contemplated.” replace the zymlink 642 with a physical copy of "compfile"
560.” Id. at col. 36:26-30.
“Of course, various other techniques may be
used to intercept the system calls 115,
which are well known in the art.”
“Option -c converts zymlinks pointing to files of type type
into physical files, where type is either RAW or PRAW.” Id.
“A copy 116 is made of a pointer 114 to at col. 36:14-15.
each system call 115 to be intercepted.
These copies 116 of pointers 114 may be “Using this option on these zymlinks will convert them to
stored in the operating system address
space 105, but in an alternative embodiment,
physical files, thereby protecting them from any
are stored in the user address space 103. automated future updates to the shared file system. For

9
Once the copies 116 have been made and example, FIG. 6 shows the PRAW zymlink 642
saved, the pointers 114 in the system call "user-- compfile" in user1's file system 106.“ Id. at col. 36:14-
vector table 113 to the system calls 115 to
be intercepted are replaced with
26.
pointers 118 to the system call
wrapper 111, such that when a system “If a user desires to edit a file, he or she must request a
call 115 to be intercepted is made, the writable copy of the file (a physical file) from the history
system call wrapper 111 executes instead.“ managed file system 102 (i.e., by using the HMS command
“In one embodiment, the system call
fco -1). Requesting a physical file results in a zymbolic
wrapper 111 performs the process of link 436 to a corresponding file 302 in the shared file
copying, storing, and replacing of system 104 being destroyed. The zymbolic link 436 is then
pointers.” replaced with the requested physical file.” Id. at col. 27:33-
39.
From
http://books.gigatux.nl/mirror/networksecurit
ytools/0596007949/networkst-CHP-7-SECT- “Zymlinks 436 to files 302 of the shared file system 104 are
2.html: established by 1) mapping 206 (FIG. 2) directories
“7.2. Intercepting System Calls hierarchies 344 of a user's file system 106 into directory
Processes run in two modes: user and hierarchies 326 of the shared file system 104, 2) creating
kernel. Most of the time processes run
208 symbolic links between individual files 436-442 in a
under the user mode when they have
access to limited resources. When a process user's file system 106 and the files 302-308 of the shared
needs to perform a service offered by the file system 104, and 3) storing information 210, 212 about
kernel, it invokes a system call. System calls the shared files 302-308 to which a user 106 is linked in one
serve as gates into the kernel. They are or more "local" hidden revision information files 450
software interrupts that the operating
(denoted in subsequent computer pseudocode sections as
system processes in kernel mode.”
".revinfo/z-- entire-- tree" files) stored in specific locations
within the directory hierarchies 344, 446, 448 of a user's file
system 106." Id. at col. 22:54-67 through col. 23:1-4.

17.e. writing the data item to the “It is therefore a primary object of this invention to provide a
corresponding private storage unit; system of file history management wherein a user's file

10
and storage space remains logically private, but has access to a
number of physically shared files.” Hewlett Packard at col.
2:23-26.
---------------------
From US6618736: “This invention pertains to the viewing and accessing of
“The set of private storage units 304, on the history managed computer files, and more particularly, to a
other hand, are used to store changes to the
initial file system 200 that occur
method and apparatus for allowing a user to 1) view
subsequent to the creation of the file logically private, but physically shared, history managed
system 200.” files, 2) obtain a user-owned physical copy of a history
“The set of shared storage units 302 forms managed file when that file no longer exists within the realm
an initial file system 200 for each virtual of physically shared history managed files, and 3) simply
process 101.”
manage his or her views of history managed files.” Id. at
col. 1:6-12.

“Each map entry 352 may take the following form:

ws! #<ws>zmapdir<ws>local--dir<ws>remote--dir ws!

where local--dir is a privately owned directory 344 in a


user's file system 106, and remote--dir is a directory 326 in
the shared file system 104.” Id. at col. 23:15-20.

“If a user desires to edit a file, he or she must request a


writable copy of the file (a physical file) from the history
managed file system 102 (i.e., by using the HMS command
fco -1). Requesting a physical file results in a zymbolic
link 436 to a corresponding file 302 in the shared file
system 104 being destroyed. The zymbolic link 436 is then
replaced with the requested physical file.” Hewlett Packard
at col. 27:33-39.

“When a user is finished editing a physical file, he or she


may check a new file version into the history managed file
system 102 (i.e., by using the HMS command fci -u).
However, doing so does not alter the state of the shared

11
file system 104, nor does it recreate the destroyed zymbolic
link 436. Instead, a read-only copy of the physical file
remains in the user's file system 106, in place of the
writable physical copy and in place of the destroyed
zymlink 436.” Id. at col. 27:39-46.

17.f. storing an indication in the “OR each command argument File DO


first usage map that the OPEN the z.sub.-- entire.sub.-- tree file associated with File
corresponding private storage unit IF the PseudoRaw option was given THEN
contains valid data. FOR each file contained in the tree rooted at the
directory File DO
--------------------- IF the file is writable THEN
From US6618736: Record the file name, a revision designation of
“The usage map 306 includes a plurality of "PRAW", and file modification time in the
indicators 308 for indicating whether a
corresponding private storage
z.sub.-- entire.sub.-- tree file.“
unit 304 contains valid data. As used herein, Hewlett Packard at col. 29:56-63.
the phrase “contains valid data” means
that the private storage unit 304 stores “IF File is a directory THEN
data representing a change to the initial IF the Recursive option was given THEN
file system 200.”
Request the HMS server to conditionally update
“The set of private storage units 304, on the all out-of-date files contained in the tree
other hand, are used to store changes to the rooted at File.
initial file system 200 that occur subsequent ELSE
to the creation of the file system 200.” Request the HMS server to conditionally update
all out-of-date files contained in the directory
File.
END IF
END IF
(cont.) IF File is a regular file THEN
17.f. storing an indication in the

12
first usage map that the Request the HMS server to conditionally update File
corresponding private storage unit END IF
contains valid data. FOR each file update reported by the HMS server DO
Record the file name, revision number, and file
modification time in the z.sub.-- entire.sub.-- tree file.”
Id. at col. 30:2-16.

““The third usage of zrevfupdate shown in the synopsis


above, distinguished by the -P option, is used to "register" in
the appropriate remote hidden revision information file
554 all writable files 560 found in the view directory
hierarchy 326 containing each directory-- name directory
328. That is, for each directory-- name argument, the
containing view directory tree 326 is searched with a find
command for all writable physical files 560. For each file
560 found, an entry is placed in the view directory's
hidden revision information file 554; the entry being
identical to the entry that would have been created if the file
560 had been retrieved from HMS as type RAW, except that
the revision "number" recorded is
designated "PRAW" (a RAW file is a non-versioned file for
which a history of revisions is not maintained, such as a file
which is a compilation of multiple file versions).” Id. at col.
29:8-23.
“The term "view" (used as a noun) refers to a specific file
version, and more specifically, to a collection of files
which were modified and/or updated within given time
and/or event parameters. Thus, files of a common "view"
will comprise versions of files which are updated and/or
modified with the same periodic frequency, or as a
consequence of some event or milestone. For example, views
may comprise daily, weekly, known-- good, regression,
released, frozen and other defined views.” Id. at col. 22:18-
27.

13
14
US6618736
US5706510 (“Hewlett Packard”)
(“Intellectual Ventures”)

36.pre A system for creating and “In the achievement of the foregoing objects, the inventor has
archiving a file system within at least devised an improvement to a history managed file system.
one storage device comprising The improvement is stored in one or more computer
accessible storage medias. The improvement (hereafter
merely referred to as a "system" or "ZHMS") allows a user
to access a plurality of files, and more particularly,
specific versions of the plurality of files. ZHMS comprises
a shared file system, and a plurality of user file systems,
all of said file systems being physically stored within the
one or more computer readable storage medias as
logically separate file systems.” Hewlett Packard at col.
2:39-49.

36.a. a first set of storage units and a “It is therefore a primary object of this invention to provide a
second set of storage units, each system of file history management wherein a user's file
storage unit of the first set storage space remains logically private, but has access to a
corresponding to a storage unit of the number of physically shared files.” Hewlett Packard at col.
second set, the system comprising: 2:23-26.

“One of HMS's most important features is that a user's

15
workspace is separate and hidden from the space which is
used to maintain and manage file revision archives. A
user's workspace is also separate from the workspace of
any other user.” Id. at col. 2:5-9.

“It is therefore a primary object of this invention to provide


a system of file history management wherein a user's file
storage space remains logically private, but has access to a
number of physically shared files.” Id. at col. 2:23-26.

“Map entries indicate which directory hierarchies comprising


any of the plurality of user file systems correspond with the
directory hierarchies of the shared file system.” Id. at col.
2:65-67.

36.b. a first usage map for indicating “A plurality of symbolic links are stored as files in the
which storage units of the second directory hierarchies comprising any of the plurality of
set contain valid data; user file systems. Each of the symbolic links corresponds
to a file version comprising the shared file system. The
correspondence of symbolic links and shared file versions
--------------------- is based on the map entries.” Hewlett Packard at col. 3:1-6.
From US6618736:
“The usage map 306 includes a plurality of “Zymlinks 436 to files 302 of the shared file system 104 are
indicators 308 for indicating whether a
corresponding private storage
established by 1) mapping 206 (FIG. 2) directories
unit 304 contains valid data. As used herein, hierarchies 344 of a user's file system 106 into directory

16
the phrase “contains valid data” means hierarchies 326 of the shared file system 104, 2) creating 208
that the private storage unit 304 stores symbolic links between individual files 436-442 in a user's
data representing a change to the initial
file system 200.”
file system 106 and the files 302-308 of the shared file
system 104, and 3) storing information 210, 212 about the
“The set of private storage units 304, on the shared files 302-308 to which a user 106 is linked in one or
other hand, are used to store changes to the more "local" hidden revision information files 450
initial file system 200 that occur subsequent (denoted in subsequent computer pseudocode sections as
to the creation of the file system 200.”
".revinfo/z-- entire-- tree" files) stored in specific locations
within the directory hierarchies 344, 446, 448 of a user's file
system 106. A file that has been established through directory
mapping 206, creation 208 of a symbolic link, and annotation
210, 212 is referred to as a "zymlink". Zymlinks 436-442 are
established (i.e., programmed) by a user, and are maintained
(i.e., owned) as part of a user's file system 106. A file that has
been established through directory mapping 206, creation 208
of a symbolic link, and annotation 210, 212 is referred to as a
"zymlink".” Id. at col. 22:54-67 through col. 23:1.

“The symbolic link part of a zymlink 436 is stored as a file


436 under a mapped directory 446 of a user file system
106.” Id. at col. 24:38-40.

“Following the above tasks 202, 204, directory hierarchies


344 of the plurality of user file systems 106 are mapped
206 into directory hierarchies 326 of the shared file system
104. Note: As used in this description, the term "directory
hierarchy" is used to refer to a directory, and when they exist,
all subdirectories of the directory.! Using these mappings
352, a plurality of files 436-442 is created 208 under the
directories of the directory hierarchies 344, 446, 448 (FIGS.
3, 4) of a user file system 106, wherein each of the created
files 436-442 is a symbolic link corresponding to a file
version 302-308 in the shared file system 104. First
revision information files 354, 356 are created 210. The first
revision information files 354, 356 are derived from the file
(cont.)

17
36.b. a first usage map for indicating
which storage units of the second set
contain valid data; revision archives 312-324 of the history managed file system
102.”Id. at col. 4:17-31.
“The third usage of zrevfupdate shown in the synopsis above,
distinguished by the -P option, is used to "register" in the
appropriate remote hidden revision information file 554
all writable files 560 found in the view directory
hierarchy 326 containing each directory-- name directory
328. That is, for each directory-- name argument, the
containing view directory tree 326 is searched with a find
command for all writable physical files 560. For each file
560 found, an entry is placed in the view directory's
hidden revision information file 554; the entry being
identical to the entry that would have been created if the file
560 had been retrieved from HMS as type RAW, except that
the revision "number" recorded is designated "PRAW" (a
RAW file is a non-versioned file for which a history of
revisions is not maintained, such as a file which is a
compilation of multiple file versions).” Id. at col. 29:8-23.

“The term "view" (used as a noun) refers to a specific file


version, and more specifically, to a collection of files
which were modified and/or updated within given time
and/or event parameters. Thus, files of a common "view"
will comprise versions of files which are updated and/or
modified with the same periodic frequency, or as a
consequence of some event or milestone. For example, views
may comprise daily, weekly, known-- good, regression,
released, frozen and other defined views.” Id. at col. 22:18-
27.

36.c. an interception module for “If user1 suspects that the file 560 to which this zymlink
intercepting an attempt to write a data 642 points might be modified on the shared file system

18
item to a storage unit of the first set; 104, he or she may use the -c option to zreset. This will
replace the zymlink 642 with a physical copy of
From US6618736: "compfile" 560.” Hewlett Packard at col. 36:26-30.
“In the foregoing description, interception of
system calls is illustrated as a primary
vehicle for file system virtualization.
“Option -c converts zymlinks pointing to files of type type
However, virtualization at other levels is also into physical files, where type is either RAW or PRAW. The
contemplated.” resultant files have modification time equal to modtime, and
permissions set according to the user's current file mode
“Of course, various other techniques may be creation mask. This option is a useful work around for the
used to intercept the system calls 115,
which are well known in the art.”
fact that zreset cannot retrieve old revisions from an HMS
server for RAW or PRAW zymlinks. ("RAW" files have no
“A copy 116 is made of a pointer 114 to revisions, and "PRAW" files are not managed by HMS at
each system call 115 to be intercepted. all.) Using this option on these zymlinks will convert them
These copies 116 of pointers 114 may be to physical files, thereby protecting them from any
stored in the operating system address
space 105, but in an alternative embodiment,
automated future updates to the shared file system. For
are stored in the user address space 103. example, FIG. 6 shows the PRAW zymlink 642
Once the copies 116 have been made and "user-- compfile" in user1's file system 106. If user1 suspects
saved, the pointers 114 in the system call that the file 560 to which this zymlink 642 points might be
vector table 113 to the system calls 115 to modified on the shared file system 104, he or she may use
be intercepted are replaced with
the -c option to zreset. This will replace the zymlink 642
pointers 118 to the system call wrapper 111,
such that when a system call 115 to be with a physical copy of "compfile" 560.” Id. at col. 36:14-
intercepted is made, the system call 30.
wrapper 111 executes instead.“
“If a user desires to edit a file, he or she must request a
From
writable copy of the file (a physical file) from the history
http://books.gigatux.nl/mirror/networksecurit
ytools/0596007949/networkst-CHP-7-SECT- managed file system 102 (i.e., by using the HMS command
2.html: fco -1). Requesting a physical file results in a zymbolic
“7.2. Intercepting System Calls link 436 to a corresponding file 302 in the shared file
Processes run in two modes: user and kernel. system 104 being destroyed. The zymbolic link 436 is then
Most of the time processes run under the user replaced with the requested physical file.” Id. at col. 27:33-
mode when they have access to limited
resources. When a process needs to 39.
perform a service offered by the kernel, it
invokes a system call. System calls serve as
gates into the kernel. They are software
interrupts that the operating system

19
processes in kernel mode. The sections in
the following paragraphs show how LKMs
can perform various tricks by intercepting
system calls.”

36.d. a storage unit writing module “If a user desires to edit a file, he or she must request a
for writing the data item to the writable copy of the file (a physical file) from the history
corresponding storage unit of the managed file system 102 (i.e., by using the HMS command
second set; and fco -1). Requesting a physical file results in a zymbolic
link 436 to a corresponding file 302 in the shared file system
104 being destroyed. The zymbolic link 436 is then
replaced with the requested physical file.” Hewlett
Packard at col. 27:33-39.

“When a user is finished editing a physical file, he or she


may check a new file version into the history managed file
system 102 (i.e., by using the HMS command fci -u).
However, doing so does not alter the state of the shared
file system 104, nor does it recreate the destroyed
zymbolic link 436. Instead, a read-only copy of the
physical file remains in the user's file system 106, in place
of the writable physical copy and in place of the destroyed
zymlink 436. Note that in a conventional history managed
environment, a writable physical file would normally be
destroyed by default (leaving nothing in its place) after a user
had checked a new file version into the history managed file
system 102.” Id. at col. 27:39-50.

20
36.e. a usage map updating module “OR each command argument File DO
for storing an indication in the first OPEN the z.sub.-- entire.sub.-- tree file associated with File
usage map that the corresponding IF the PseudoRaw option was given THEN
storage unit of the second set contains FOR each file contained in the tree rooted at the
valid data. directory File DO
IF the file is writable THEN
Record the file name, a revision designation of
"PRAW", and file modification time in the
z.sub.-- entire.sub.-- tree file.“
Hewlett Packard at col. 29:56-63.

IF File is a directory THEN


IF the Recursive option was given THEN
Request the HMS server to conditionally update
all out-of-date files contained in the tree
rooted at File.
ELSE
Request the HMS server to conditionally update
all out-of-date files contained in the directory
File.
END IF
END IF
IF File is a regular file THEN
Request the HMS server to conditionally update File
END IF
FOR each file update reported by the HMS server DO
Record the file name, revision number, and file
modification time in the z.sub.-- entire.sub.-- tree file.“
Id. at col. 30:2-16.

““The third usage of zrevfupdate shown in the synopsis


above, distinguished by the -P option, is used to "register" in
the appropriate remote hidden revision information file
554 all writable files 560 found in the view directory
hierarchy 326 containing each directory-- name directory

21
328. That is, for each directory-- name argument, the
containing view directory tree 326 is searched with a find
command for all writable physical files 560. For each file
560 found, an entry is placed in the view directory's
hidden revision information file 554; the entry being
identical to the entry that would have been created if the file
560 had been retrieved from HMS as type RAW, except that
the revision "number" recorded is designated "PRAW" (a
RAW file is a non-versioned file for which a history of
revisions is not maintained, such as a file which is a
compilation of multiple file versions).” Id. at col. 29:8-23.
“The term "view" (used as a noun) refers to a specific file
(cont.)
17.f. storing an indication in the first usage
version, and more specifically, to a collection of files
map that the corresponding private which were modified and/or updated within given time
storage unit contains valid data. and/or event parameters. Thus, files of a common "view"
will comprise versions of files which are updated and/or
modified with the same periodic frequency, or as a
consequence of some event or milestone. For example, views
may comprise daily, weekly, known-- good, regression,
released, frozen and other defined views.” Id. at col. 22:18-
27.

22

You might also like