`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