throbber
as United States
`a2) Patent Application Publication (0) Pub. No.: US 2005/0169073 Al
`Cooket al. Aug. 4, 2005 (43) Pub. Date:
`
`
`
`US 20050169073A1
`
`(54) PORTABLE MEMORY STORAGE DEVICES
`CONTAINING PUBLIC CONTEXT
`APPLICATION LAYERS
`
`(76)
`
`Inventors: Randall R. Cook, Springville, UT
`(US); Jared R. Blaser, Orem, UT (US)
`
`Correspondence Address:
`Parsons Behle & Latimer
`Everett D. Ribinson
`201 South Main Street, Suite 1800
`P.O. Box 45898
`
`Salt Lake City, UT 84145-0898 (US)
`
`Appl.
`
`No.:
`
`11/027,489
`
`Filed:
`
`Dec. 30, 2004
`Related U.S. Application Data
`PP
`Provisional application No. 60/533,388,filed on Dec.
`30, 2003.
`
`(21)
`
`(22)
`
`(60)
`
`Publication Classification
`
`Tint, C0 eee cececeeeeecceeenneeeeeemeees HO03K 19/094
`(SV)
`(52) US. C0.
`cesceesssssssssssessssessunsssesunsssessnssesnsseeees 365/202
`
`67)
`
`ABSTRACT
`
`The inventions relate generally to portable media storage
`devices that contain layers permitting applicationsto be used
`at a connected computing device, those systems optionally
`including drivers for operating a public context
`layered
`computing environment or a driver installation program.
`Also disclosed herein are computer systems for using other
`systemsfor creating those portable storage devices. Detailed
`information on various example embodiments of the inven-
`tions are provided in the Detailed Description below,and the
`inventions are defined by the appended claims.
`
`100
`
`102
`
`106
`
`108
`
`110
`
`
`Layer Manager
`
`Applications
`
`Management API
`
`
`
`
`
`
`
`
`Layering System Libraries/Software
`
`Operating System File System and Registry Libraries
`
`
`
`Layer Information
`
`112
`
`Google Exhibit 1084
`Google v. VirtaMove
`
`Google Exhibit 1084
`Google v. VirtaMove
`
`

`

`Patent Application Publication Aug. 4, 2005 Sheet 1 of 12
`
`US 2005/0169073 A1
`
`Layer Manager
`
`
`
`
`
`
`Management API
`
`Applications
`
`Layering System Libraries/Software
`
`Operating System File System and Registry Libraries
`
`100
`
`106
`
`
`102
`
`108
`
`110
`
`
`
`112
`
`
`
`
`
`Fig. 2
`
`
`
`200
`
`202
`
`204
`
`206
`
`Application
`
`208
`
`Layer A
`
`Base File system
`
`212
`
`
`
`

`

`Patent Application Publication Aug. 4, 2005 Sheet 2 of 12
`
`US 2005/0169073 A1
`
`300
`
`Fig. 3
`
`
`
`
`FSL Management
`Application
`
`
`
`Windows Explorer
`
`304
`
`
`
`
`Other
`
`Applications
`
`
`FSL APILibrary
`
`FSL fpeg
`
`312
`
`
`
` 306
`
`
`
`
`
`
` Fig. 4
`jLayert Applications
`‘Storage
` 400
`
`Applications
`
` Processor
` Applications
`
`
`Operating System
`
`FSL System Driver
`
`Registry Subsystem
`
`File System Subsystem
`
`314
`
`318
`
`
`Base OS
` Applications
`
`
`

`

`Patent Application Publication Aug. 4, 2005 Sheet 3 of 12
`
`US 2005/0169073 Al
`
`
`
`Is
`
`
`file reference
`
`
`maintained in
`
`an enabled
`layer?
`
`Use reference of request
`to execute regular read
`
`
`
`Yes
`
`Identify owner layer
`
`Identify virtual
`file reference
`
`
`
`
`
`
`
`Execute read using
`virtual file reference
`
`

`

`Patent Application Publication Aug. 4, 2005 Sheet 4 of 12
`
`US 2005/0169073 A1
`
`Use reference of request
`to execute regular write
`
`
`
`
`
`
`
`ls
`file reference
`
`
`
`to be captured to
`an enabled
`
`layer?
`
`600
` Wait for write request
`
`
`
`
`Yes
`
`Identify capturing layer
`
`Createvirtual
`file reference
`
`Execute write using
`virtual file reference
`
`

`

`Patent Application Publication Aug. 4, 2005 Sheet 5 of 12
`
`US 2005/0169073 Al
`
`setting in layer
`
`Create delete entry in virtual
`registry, or delete entry if
`isolated to layer
`
`Is
`registry request
`to be captured to
`
`Delete?
`
`Setvirtual registry
`
`

`

`Patent Application Publication Aug. 4, 2005 Sheet 6 of 12
`
`US 2005/0169073 Al
`
`Process space
`
`Application
`process
`
`Layer
`
` Application
`
`810 808
`
`Other
`
`. ,|file_|
`
`Fig. 8
`
`816
`
`818
`
`30
`
`Basemesysiemarnersss*2|
`
`
`
`
`
`BaseOS=824
`
`
`828
`826
`
`
`
`
`
`Local storage
`
`Network directory
`
`
`
`
`
`

`

`Patent Application Publication Aug. 4, 2005 Sheet 7 of 12
`
`US 2005/0169073 Al
`
`902
`
`Local Storage
`
`910
`900
`
`
`
` Portable
`Layered Drivers
`904
`Storage Drive
` Portable
`[eascos
`Media
`
`1000
`Portable
`
`1008
`Media
`
`106
`
` il
`
`
`
`
` i
`
`Fig. 9
`
`Fig. 10
`
`[’] ACMElayer downloads
`
`__
`
`Acme Inc. Layer DownloadSite (Internal use only!)
`
`. Company URLcollection
`
`Fig. 1 1A
`
`Please choosea layer:
`
`. Presentation software and sales presentations
`. Email client
`. VOIP client
`. Internet messager
`. Product demo 1.0
`
`

`

`Patent Application Publication Aug. 4, 2005 Sheet 8 of 12
`
`US 2005/0169073 Al
`
`() ACME layer downloads
`
`_
`
`[) ACME layer downloads
`
`Installing layer “Product demo 1.0”
`
`Specify the destination location:
`
`Removable drive on E:
`
`O Hard disk partition on C:
`
`Fig . 1 1 C
`
`If you areinstalling to a memory card,
`connectit now.
`
`Fig. 11B
`O Otherlocation: |
`48 %
`
`[’]) ACME layer downloads
`
`Installing layer “Product demo 1.0”
`
`Copying layer to destination
`
`Fig. 11D
`
`

`

`Patent Application Publication Aug. 4, 2005 Sheet 9 of 12
`
`US 2005/0169073 Al
`
`L) ACMElayer downloads
`
`__
`
`Complete. You may remove
`your portable memory device now.
`
`Network Web Server
`
`1202
`
`1204
`
`
`
`Fig. 11E 1200
` Storage
`1220 Client Install executable
`
`1226
`
`

`

`Patent Application Publication Aug. 4, 2005 Sheet 10 of 12
`
`US 2005/0169073 Al
`
`Fig. 13B
`
`Fig . 1 3A
`
`Begin
`
`
`Capture... 1308
`
`
`
`
`Layered Drivers
`
`Local Storage
`
`1304
`
`1308
`
`Local Storage
`
`
`
`
`1310
`
`Installing...
`
`1312
`
`
`
`Software
`Layered Drivers
`Package
`
`
`
`
`
`Local Storage
`
`Fig. 13C
`
`1316
`
`Media
`
`Portable
`Exporting...
`
` Layered Drivers
`
`
` Local Storage
`Fig. 13D
`
`
`

`

`Patent Application Publication Aug. 4, 2005 Sheet 11 of 12
`
`US 2005/0169073 Al
`
`Fig. 14B
`
`1402
`
`
`
`Select a payment method:
`
`
`
`1. Cash
`
`2. Credit Card
`
`
`3. Bank/ATM card
`4. Electronic Funds Transfer
`
`
`
`
`Fig. 14A
`Please choose a product:
`
`
`$89.95
`1. Office suite
`2. Money manager
`$39.95
`
`
`3. Video editor
`$79.95
`4, DVD creator
`$59.95
`
`
`5. Data backupsuite
`$49.95
`
`
`6. Blasto arcade game
`
`
`1402
`
`Computer
`
`$39.95
`into the slot belowLUftayer3_]
`
`
`Please insert
`the memory device
`
`Layer 2
`
`1400
`
`1402
`
` Transferring
`
`application...
`
`

`

`Patent Application Publication Aug. 4, 2005 Sheet 12 of 12
`
`US 2005/0169073 Al
`
`1500
`
`1502
`
`1504
`
`Detect insertion of media
`
`configuration element
`
`Read autorun
`
`
`
`150:
`
`8
`
`Yes
`
`Execute installation
`application
`
`1510
`
`
`
`
`Layering
`drivers
`
`
`installed?
` 1512
`
`Execute layer
`installation application
`
`Fig. 15
`
`Install and activate
`layering drivers
`
`Enable layers present
`on media
`
`Start specified
`executable
`
`Specified executable
`terminates
`
`Disable layers
`
`De-install layering
`drivers (if desired)
`
`Display message
`indicating media removal
`
`Stop
`
`1514
`
`1516
`
`1518
`
`1520
`
`1522
`
`1524
`
`1526
`
`1528
`
`

`

`US 2005/0169073 Al
`
`Aug. 4, 2005
`
`PORTABLE MEMORY STORAGEDEVICES
`CONTAINING PUBLIC CONTEXT APPLICATION
`LAYERS
`
`CROSS-REFERENCE TO RELATED
`APPLICATIONS
`
`[0001] This application claims the benefit of U.S. Provi-
`sional Application No. 60/533,388filed Dec. 30, 2003 which
`is hereby incorporated by reference in its entirety. This
`application additionally contains subject matter related to
`USS. applications numbered Ser. Nos. 10/459,768, 10/459,
`870 and 10/459,936 filed Jun. 11, 2003, each of which is
`hereby incorporated by reference in its entirety.
`
`BACKGROUND OF THE INVENTIONS
`
`In the last two decades computers have developed
`[0002]
`into sophisticated machines having powerful processors and
`large amounts of memory andlocal data storage. A modern
`computer has installed thereto a large operating system,
`which today includes not only low-level functions for
`accessing input, output and storage devices, but additionally
`libraries providing common functions
`to applications,
`graphical windowing systems, and applications to perform
`administrative functions, data access functions, and even
`multimedia and entertainment functions. The commonprac-
`tice of using applications requires the installation of an
`application’s executable, configuration and datafiles to local
`storage, although some applications and systemsextend this
`to use of network drives as well. Today’s computers also
`multitask, and permit more than one application to be
`installed and executed thereon concurrently. This sophisti-
`cation in the operating system in combination with the large
`numberof potential applications from diverse sources has
`made the administration of a typical modern computer more
`difficult.
`
`[0003] With the advent of graphical operating systems,
`users were offered a way to visually interact with a com-
`puter. This visual interaction made possible a new heirar-
`chical organization to the computer presentation, typically
`including a top-level presentation, for example a ‘desktop’
`with a top level ‘start? menu, and further including sub-
`presentations such as application windows. Executing appli-
`cations under that mode may be performed by acting on
`icons and menu items, relieving the user from the burden of
`having to know the logical location of items in a filesystem
`to use them. Theseicons, shortcuts, links and menuitemsall
`point to an executable or other object at their true reference
`points. If the reference object is movedto a different location
`in the filesystem heirarchy, the link to the object becomes
`broken and non-functional; in some operating systems the
`system may attemptto resolve the new location of the object
`and fix the link.
`
`In personal computers of the early to mid-1980s,
`[0004]
`applications and data were typically stored to a floppy disk,
`with little to no other non-volatile storage available to
`programs. Those disks could be transported between com-
`puters of the same type, thereby making those applications
`portable. The execution of those applications, however, was
`from the commandline, which required someuser expertise.
`A user, for example, might need to know that an applica-
`tion’s executable waslocated on drive ‘0’ or ‘a:’. Should an
`
`application disk be inserted to a seconddrive, the application
`
`might be required to be reconfigured to reference data and
`configuration objects on that second drive. The computer
`and operating system makers of the time largely left the
`problem of application mobility (moving an application to a
`different drive or location) unaddressed, which required
`users to maintain manyapplications in static locations even
`though stored to floppy disks.
`
`[0005] Other types of portable storage have been used in
`the past. One early example was a cartridge including a
`read-only memory and a card-like interface mating to a
`socket, for example in a game console. Those cartridges
`contained no file-system, but rather were presented as
`instructions and data at particular addressible memory loca-
`tions. In addition to floppy disks, mentioned above, high
`density magnetic media cartridges have been used,
`for
`example “Zip” disks. The improvement
`therein related
`mainly to the amount of data that could be stored on the
`portable media. Other examples include optical and mag-
`neto-optical disks, some of which are commonly knownas
`CDs and DVDs. The advent of these permitted the cheap
`distribution of software and data, supplanting the use of
`floppy diskettes and permitting the growth of software
`applications to many megabytes. Those software makers
`have taken advantage of the increasingly large amounts of
`local hard drive storage for applications, and have largely
`not attempted installations other than to a local hard drive.
`Today, nearly all software packages perform an installation
`step in which the application’s files are installed to a local
`hard drive of a computer.
`
`recently, devices have become available
`[0006] Most
`a non-volatile
`random-access memory
`which utilize
`(NVRAM); the recent advances of integrated circuit tech-
`nology permitting manufacture of such a device of a size to
`permit a person to carry hundreds of megabytes of data in a
`packagethat will easily fit into a pocket, purse or briefcase.
`Notable form-factors include Compact Flash, Secure Digi-
`tal, Memory Stick and several others, which incorporate a
`type of NVRAM referred to as “Flash” memory, which has
`become relatively inexpensive to produce. Those form-
`factors have includedinterfaces designed typically for small
`electronic devices such as digital cameras or personal data
`assistants (PDAs). More recently, devices have become
`available which include a Universal Serial Bus (USB)
`controller, by which the these devices are made accessible as
`file storage “drives” to more recent computers having USB
`ports without an additional interfacing device, provided that
`certain drivers are installed to the computer or included in
`the operating system. Most recently, computers have been
`manufactured that include slots for interfacing with a flash
`card and the necessary electronics and drivers to access the
`flash memory as an external hard drive.
`
`[0007] Applications can be stored to a portable flash
`memorydevice, but in present systemsthe applicationsfiles
`are viewed in a separate logical location than the files and
`directories of the base operating system, as no attempt is
`made to integrate the applications with the applications of
`the operating system. Indeed, prior systems provide no
`direct linkage to applications, registry changes, and changes
`to a base operating system whereby the applications on a
`removable storage device may be integrated in the base
`system. Because of the difficulty of this integration,
`the
`present use of portable storage devices is largely restricted
`
`

`

`US 2005/0169073 Al
`
`Aug. 4, 2005
`
`to the storage of application data, accessible to applications
`installed to a host computer system.
`
`In all of the above examples, the most convenient
`[0008]
`uses of applications are either installation of the application
`to a local hard drive or use of applications stored on portable
`media in a knownor determinable position in the filesystem
`heirarchy of the computer. In the latter use, the application
`might be used on more than one computer, provided that the
`user has sufficient expertise to configure the application and
`operating system with any necessary icons, drivers, and
`directory locations.
`
`In an additional method, some operating systems
`[0009]
`include the function of automatically running an executable
`at the time of media insertion. Thisis usually donebytesting
`for the presence of a file with a specific filename, for
`example “autorun.exe”, which is executed by an operating
`system process when media insertion is detected.
`‘This
`method is sometimes used to run an application installer, or
`alternatively to run a main application stored on a compact
`disc.
`
`[0010] From the early days of personal computers to the
`present time, bootable portable media disks and other media
`forms have been usedto provide functionality to a computer
`without a requirementof a hard disk containing an operating
`system. For example,
`several computer makers have
`included a “disk operating system” (DOS) on a floppy disk,
`which provided common functions for interactions with the
`disk and other computer functions as well as a shell envi-
`ronment for basic human interaction. Even earlier systems
`used reels of tape and even stacks of punched cards to boot
`a computer, although most of those would hardly be con-
`sidered portable by today’s standards. Modern software
`makers may create bootable compact discs, for example to
`install an operating system freshly to a computer. Other
`makers may create operating systemsthat run entirely from
`the compact disc, and may not require that local storage of
`any kind be present.
`
`[0011] One example of such a system is the Mandrakesoft
`“Move” Linux CD presently available from Mandrakesoft of
`Paris, France or on the Internet at http:/Awww.mandrakesoft-
`.com. In that system, a user may connect a USB flash drive
`to a computer booted from the Move CD, thereby providing
`a location to store user data. The CD andtheflash drive can
`be carried to a different computer, which can be booted using
`the CD andflash drive, thereby providing access to the user
`data. The user, however, has little choice in what applica-
`tions are available in that system, as the CD is distributed
`with a fixed application set intended for general use.
`
`[0012] Other uses of removable media have included
`synchronization of data on a local hard disk with the media,
`for example the “Migo” flash media product from Power-
`House Technologies Group, Inc. of San Ramon,Calif. Such
`a product may include applications installed thereto which
`can be run by a host computer, for example, when the media
`is connected to a computer that supports automatic execu-
`tion. Even so, those applications can be expected to appear
`separately from the host computer’s installed applications.
`
`[0013] Additionally, prior computing systems have been
`susceptible to application conflicts with the host operating
`system (OS) and other applications. When an application is
`installed to an OS, a numberof globally accessible files are
`
`often placed to the computing system, including for example
`shared libraries and system configuration. Those shared
`libraries are often provided in different versions, with appli-
`cations requiring one version or another. A mismatch
`between a library version and a version required by an
`application sometimes results in that application crashing,
`becoming inoperable, or exhibiting other errors. Shared
`configuration elements are sometimes globally available to
`applications, which may write a favored configuration
`thereto. Following a write to that configuration other appli-
`cations may be unable to read the configuration properly, or
`may be unable to function under a new specified configu-
`ration. Thus it
`is that following the installation of an
`application to a computer, other applications may stop
`working.
`Installing a numberof applications to a computer
`[0014]
`can be something of a black art. An administrator may, with
`good intentions and understanding, install several applica-
`tions to a computer. Upontesting an installation or during
`use, the administrator or a user may discover that one or
`more applications operate errantly or not atall. It is usually
`not apparent which applications are in conflict. The admin-
`istrator may enter a procedure in which applications are
`uninstalled from the computer in a process of elimination to
`find the offending applications. Sometimes de-installation
`programs do not removeall installed files, in which that
`procedure mayfail to locate the problem. The administrator
`is then required to continue by creating a clean (or “virgin”)
`installation, and installing applications one at a time until the
`problem is located.
`[0015] When applications are found to conflict, a choice
`must usually be made as to which onewill be installed. One
`of the applications is sometimes installed to a different
`computer to avoid the conflict. If conflicting applications
`must be installed to a single computer, a new version ofal
`least one of the applications must be sought and purchased
`from the software vendors. A non-conflicting version may
`not be available, especially if a vendor is small, not sup-
`porting the application, or no longer in business.
`[0016] Snapshot utilities are available, which generally
`operate to create a databaseofall files and registry settings
`on a computer. Prior to installing an application, a snapshot
`is taken of the files and registry settings. The application is
`then installed, and tested. If the application fails to work
`satisfactorily, the system can be restored by comparing the
`existing files and registry settings against the snapshot and
`removing installed files and otherwise restoring the system
`as before. Snapshotutilities have several limitations. First, if
`a newly installed application causes a prior installed appli-
`cation to fail, it is often not possible to simply revert to a
`snapshot madeprior to older application installation, espe-
`cially if there have been other applications installed in the
`interim. The administrator may be required to revert back ta
`the earlier snapshot, and then re-install
`the intervening
`applications and the new application. Additionally, there are
`usually a limited numberof snapshots that can be stored, and
`thus a required snapshot may not have been retained when
`found to be needed.
`
`[0017] Likewise, a system may berestored to an earlier
`state if backups have been made. That restoration process,
`however, usually involves a significant amount of time and
`destroys all data recorded to the system after the time of the
`backup.
`
`

`

`US 2005/0169073 Al
`
`Aug. 4, 2005
`
`[0018] Another method involves recording a series of
`changes(or “diffs’”) to a buffer. Using that method a system
`can be restored back to a point in time by reverse application
`of the diffs to the file system back to the selected point in
`time. That method typically requires a fixed amountof disk
`space for the diff buffer, which becomes unavailable for
`regular use. As the buffer becomes full, the only way to
`continue to record diffs is to overwrite older diffs. Because
`of this limitation, the method can only restore a system back
`to a date for which diffs remain available. In addition, this
`method requires three disk operations per write request: one
`to read the existing disk information, one two write the diff,
`and one to write the original
`request. This method is
`therefore processor and disk intensive.
`
`[0019] The Microsoft Windows ME™ OSincludes a
`feature called “System Restore”. That system is essentially
`a snapshot system, and only backsupfiles related to the OS
`and installed applications (notuserfiles).
`
`[0020] A current practice of maintaining computersis to
`imagethe hard drive of a computer while in a workingstate.
`If the computer becomes unstable, or if undesirable content
`appears on the computer, the computer’s drive is restored
`using the earlier made image. Thispractice is lacking in that
`all changes made following the imagecreation are wiped off
`the system when the computer is restored, including user
`files and other applications.
`
`[0021] Also, some applications are not provided with an
`uninstall program. To de-install those applications an admin-
`istrator is required to know where the application files and
`settings reside in the system, and remove them manually.
`
`BRIEF SUMMARY OF THE INVENTIONS
`
`[0022] The inventions relate generally to portable media
`storage devices that contain layers permitting applications to
`be used at a connected computing device, those systems
`optionally including drivers for operating a public context
`layered computing environmentora driver insallation pro-
`gram. Also disclosed herein are computer systems for using
`other systems for creating those portable storage devices.
`Detailed information on various example embodiments of
`the inventions are provided in the Detailed Description
`below, and the inventions are defined by the appended
`claims.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`[0023] FIG. 1 illustrates components of a layering com-
`puter system at a conceptual level.
`
`FIG.2 illustrates an operation of a layering com-
`[0024]
`puter system at a conceptual level.
`
`[0025] FIG. 3 illustrates components of a particular lay-
`ering computer system.
`
`FIG.4 illustrates components of a layering com-
`[0026]
`puter system at simple organizational level.
`
`[0027] FIG. 5 shows a simplified method for performing
`read file system operations using a layered computing sys-
`tem.
`
`[0028] FIG. 6 showsa simplified method for performing
`write file system operations using a layered computing
`system.
`
`[0029] FIG. 7 showsa simplified method for performing
`registry operations using a layered computing system.
`
`[0030] FIG.8 depicts a flow of operation for an examplary
`layering system supporting application layers.
`
`{[0031] FIG. 9 illustrates a system for using a layered
`portable storage device.
`
`[0032] FIG.10 illustrates a portable media device 1000 is
`having two layers stored thereon.
`
`[0033] FIGS. 11A, 11B, 11C, 11D and 11E depict several
`screens during an interaction whereby layers are deposited
`to a portable storage device.
`
`[0034] FIG. 12 depicts a network system useful to dis-
`tribute layers to a group of users publicly over a website.
`
`[0035] FIG. 13 illustrates a simple method of ercating a
`portable storage device.
`
`[0036] FIGS. 14A, 14B, 14C and 14D depict a kiosk
`computing system, and the operation thereof, usable by an
`ordinary person to load application layers to a portable
`storage device.
`
`[0037] FIG. 15 illustrates a method of operation of a
`portable storage device containing layers, layered drivers
`and an autoruninstall application.
`
`[0038] Reference will now be made in detail to some
`embodiments of the inventions, example of whichare illus-
`trated in the accompanying drawings.
`
`DETAILED DESCRIPTION
`
`[0039] General Concepts
`
`[0040] For the purpose of simplifying the discussion
`herein, several examplary computing devices are referenced.
`Those devices are typically a conventional personal com-
`puter or workstation having a CPU, memory, display, key-
`board, mouse, andatleast one fixed disk. It will be apparent
`to one of ordinary skill in the art that the concepts disclosed
`herein may apply equally to other computing systemsthat
`are not personal computers, for example diskless worksta-
`tions, headless workstations or servers, embedded systems
`and many other types. Herein it is contemplated that the
`inventions may be applied to these and other computing
`systems, both existing and yet to be, using the methods and
`principles disclosed herein.
`
`[0041] Likewise the discussion below speaksof Registries
`and registry settings, which are specific to Microsoft Win-
`dows™operating systems. It will be recognized that registry
`settings are merely configuration for the operating system
`and applicationsinstalled to a computing device, accessible
`through a system-wide API. The meaning ofregistries and
`registry settings is therefore extended to future Windows
`operating systems and operating systems other than Win-
`dows, where equivalent structures and accessfacilities exist
`thereon.
`
`In the discussion below, the words “enabled” and
`[0042]
`“activated” are used interchangeably to describe layers that
`are active or enabled on a layering computing system.
`Likewise, the words “disabled” and “deactivated” may be
`used to describe layers that are not enabled or active.
`
`

`

`US 2005/0169073 Al
`
`Aug. 4, 2005
`
`[0043] Generic Layered Systems
`
`made by application 200. The layered computing system
`determines the ownerof thefile being accessed. Finding an
`[0044] Provided in one aspect of the invention are appli-
`entry for file access 208 in layer B, the correspondingfile in
`cation layers which are isolated from other applications on
`layer B is opened and returned to the application. Thefile
`a computer. In that aspect, an application layer may be
`access of 208 might also correspondtofiles in layers A or the
`defined to be a group of files in combination with any
`base file system, however layer B is determined to be the
`associated application configuration stored to operating sys-
`owneras it has priority over layer A and the base. Another
`tem files. An application of a layered system may be an
`file access 210 is made by application 200. The computing
`application in the most commonly used meaning, such as
`system does not, however, find a corresponding entry in
`word processors, browsers, system tools, games, and the
`layer B. An entry is found in layer A, which has priority over
`like, or may extend to other software installed to a host
`the base file system. Again,if a file existed in the basefile
`providing an environment, such as a graphical user envi-
`system corresponding to the file access, the file reference in
`ronment or shell. It will be seen that isolating application
`layer A would be accessed becauselayer A is foundto be the
`files and configuration in a layer provides several benefits,
`ownerwith priority. The computing system is not able to find
`including the ability to delete, disable, and enable applica-
`corresponding entries in layers A orBforfile access 212, so
`tions in a simple way and to provide a barrier between
`that access is made to the base file system.
`applications which may use conflicting configuration or
`library files. The use of a layering system may therefore
`enhance the stability, reliability, usability and security of a
`computing system.
`
`In FIG. 4 components of a layering computer
`[0048]
`system at simple organizational level are shown. A comput-
`ing device includes a processor 400, which may also have
`peripheral devices attached such as memory, input devices
`or output devices as desired. Processor 400 interacts with
`one or more storage devices 402, providing storage for the
`processor. On storage 402 is a base operating system 408
`and applications 410. A number of layers 404a-n are also
`contained on storage 402, each having applications 406a-n.
`
`[0045] A layered system introduces a new concept of
`organizing data from disparate sources and presenting a
`virtual view of that data to an operating system and a user.
`This permits the real data to be much more logically
`organized whilestill presenting to the operating system and
`the user an expected view and accessofthatdata. In a sense,
`[0049] In larger aspects, a layer may be defined to beaset
`
`a layer is a higher order storage unit. Because a layer can be
`of file system and registry changes, that combination form-
`managedas a unit for the purposes of exporting, importing,
`ing an organizational unit that may be managed by layered
`enabling, disabling, and so on, a computer system and user
`system software. In some cases, a layer need not contain
`data can be managed with a greater degree of flexibility and
`registry changes, but only changes to one or more file
`reliability, also with improved security. As changes to a
`systems. In those cases it may be desirable to limit support
`layered system are made, the changes are organized while
`in the layered system softwareto files of file systems. A layer
`being written, rather than merely tracking the changes made.
`definition may include layer properties and settings, layer
`By doing this both a speed penalty and the dedication of
`inclusive files, references to thosefiles, registry settings and
`large amounts of storage for
`images and changes are
`avoided.
`locations, and a manifest or directory those file and registry
`references.
`
`[0046] Depicted in FIG. 1 are components of a layering
`computer system at a simple conceptual
`level. A base
`operating system 110 forms a platform with which applica-
`tions can be run andfiles can be accessed in file systems.
`Base operating system 110 further has registry settings,
`globally available to applications for reading and writing.
`The system haslibraries 108 for executing the functions of
`the operating system including operating file systems and
`registries, and other operating system functions. Tied into
`libraries 108 are layering system libraries and/or software
`106 which intercept file system and registry accesses from
`applications 104. As accesses are received from applications
`104, the layering system software 106 performs computa-
`tions to determine whether the accesses should be permitted
`to continue to the base operating system 110, or should be
`redirected to layer information 112, the information relating
`to and the contents of files and registry settings. A layer
`manager application 100 may be provided to permit control
`and configuration of the layering system software 106
`through a management API andlibrary 102.
`
`[0047] Depicted in FIG. 2 is the operation of a layering
`computer system at a conceptual level. An application 200
`is running on a layered computing system. This computing
`system contains a base file system 206, and two layers
`labeled “A” and “B”, 204 and 202 respectively. In this
`example layer B has priority over layer A, which in turn has
`priority over the base file system.A first file access 208 is
`
`[0050] References may be made inherent, if desired, by
`locating files and registry settings in a structure that mirrors
`a real underlying file system. Such a mirroring system may
`be organized in a common directory, with one subdirectory
`per defined layer, each containing a mirrored directory
`structure of the underlying file system.
`
`{0051] An exported layer will contain all of the layer-
`included information bundled in a transportable archive.
`Exported layers may be further bundled into groups, which
`is especially useful for layers that rely on other layers, such
`as layers of a hierarchy or peer layers. For systems that
`utilize a mirrorstructure of an underlyingfile system,it may
`be desirable to hide the mirror structure from applications,
`except perhaps a manager application, so as to prevent
`accidental data modification, loss, or meddling.
`
`[0052] A layer intending toisolate a host-installable appli-
`cation has stored thereonthe files and directory structure of
`the application’s installation, as they would have been
`installed to the

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket