throbber
US 6,944,790 B2
`(10) Patent No:
`a2) United States Patent
`Hamilton, II et al.
`(45) Date of Patent:
`Sep. 13, 2005
`
`
`US006944790B2
`
`6,449,682 BL *
`9/2002 Toorians ..0.... eee 711/100
`(54) SYSTEM AND METHOD FOR COLLECTING
`
`6,453,396 Bl *
`9/2002 Booneet al. ........+ 711/162
`AND RESTORING USER ENVIRONMENT
`6,487,558 B1 * 11/2002 Hitchcocksenseseeseeceeceees 707/200
`DATA USING REMOVABLE STORAGE
`6,532,535 B1 *
`3/2003 Maffezzoni et al.
`........... 713/1
`6,594,780 B1 *
`7/2003 Shen et al... we TLA4/15
`py
`‘
`2001/0013102 Al *
`Inventors: TT J
`(75)
`8/2001 Tsuchiyaetal... 714/6
`
`
`
`harlottesville,VA(US); Steven Jay 2002/0135613 AL * 9/2002 O’Hara wee 345/745
`
`
`2002/0147938 AL * 10/2002 Hamilton et al. css 714/6
`Lipton, Flower Mound, TX (US)
`
`
`
`(73) Assignee:
`
`International Business Machines
`Corporation, Armonk, NY (US)
`
`(*) Notice:
`
`Subject to any disclaimer, the term ofthis
`patent is extended or adjusted under 35
`US.C. 154(b) by 583 days.
`
`JP
`JP
`
`FOREIGN PATENT DOCUMENTS
`07-007770 A W/1995 eee H04Q/9/00
`11-085628 A
`31999
`esesrssees GO6F/12/16
`OTHER PUBLICATIONS
`
`(21) Appl. No.: 09/826,608
`(22) Filed
`Apr.
`5. 2001
`Pr.
`ued:
`95
`(65)
`Prior Publication Data
`US 2002/0147938 Al Oct. 10, 2002
`
`Int. Ue? cieccccceccecseesesseescescescescesvscessesceaees GO6F 11/00
`(51)
`(52) U.S. Che ccc ecteseneeeecteneseneeecenaes 714/6; 714/24
`(58) Field of Search oe 714/6, 15, 24
`
`Polyzois,et al., “Evaluation of Remote Backup Algorithms
`for Transaction Processing System,” ACM Transactions on
`Database Systems, vol. 19, #3, p. 423-429, Sep. 1994,
`(Abstract Only).
`* cited by examiner
`
`Primary Examiner—Bryce P. Bonzo
`(74) Attorney, Agent, or Firm—Van Leeuwen & Van
`Leeuwen; Joseph T. Van Leeuwen; David A. Mims, Jr.
`
`(57)
`
`ABSTRACT
`
`(56)
`
`References Cited
`
`A data collection program collects data from a user’s work-
`U.S. PATENT DOCUMENTS
`station and captures the user environment data, including
`user settings and program application data. The user envi-
`een A . ulhogs Rani Coesen ronment data is stored on a removable nonvolatile storage
`5.405572 A
`i1006 Tanaka t aL 7
`: ma/47
`media for duplication processing. The stored user environ-
`5692121 A
`11/1997 Bozsoetal
`~ 713/13
`mentdata is processed by a duplication process to duplicate
`_.. 714/34
`5712971 A
`1/1998 Stanfill et al.
`...
`the user environment data from the old workstation onto a
`
`1/1998 Halladay .........
`.. TL7/168
`5,713,024 A *
`new workstation or for recovery from a catastrophic system
`8/1998 Bailey etal... 707/202
`5,794,252 A
`failure. A variety of user environmentsettings, not tradition-
`T/1999 Perks vices 707/200
`5,924,102 A
`ally captured and restored by traditional backup software,
`5,941,993 A
`8/1999 Tanakaetal. ...
`.. 714/6
`are captured and restored. For example, licensing informa-
`6,119,128 A
`9/2000 Courter et al.
`...
`- 707/202
`tion and application personality data is identified, stored, and
`oelod A 1seen Omen ct v ” mttp
`recovered along with other user-specific information such as
`5167,
`eston et al.
`..
`.
`.
`6,205,527 B1 *
`3/2001 Gosheyet al... 71/62
`‘hostnames, IP addresses, and the like.
`6,260,124 B1 *
`7/2001 Crockett et al.
`........0... 711/162
`6,289,426 B1 *
`9/2001 Maffezzoniet al.
`........ 711/173
`
`
`
`
`11 Claims, 11 Drawing Sheets
`
`
`ia 700
`105
`115
`125
`
`
`hon
`enters
`[_passords
`110
`120
`130
`
`ty
`user Ids
`othersystem
`definitions
`parameters
`
`140
`
`
`
`
`
`
`
`
`
`
`
`
`145
`
`Google Exhibit 1094
`Google v. VirtaMove
`
`
`
`
`
`
`
`7195
`
`165
`fo
`185
`
`inant
`detnns
`passwords
`
`fe
`180
`190
`y
`mers
`other system
`definitions:
`parameters:
`
`La}
`=
`
`
`Ee}
`
`5
`=
`
`a
`
`
`
`
`
`|
`ISI
`
`
`
`=)
`=
`
`160
`
`136
`
`Old
`Usarid
`
`165
`~~
`
`New
`Userid
`
`
`
`
`
`
`
`Google Exhibit 1094
`Google v. VirtaMove
`
`

`

`U.S. Patent
`
`Sep. 13, 2005
`
`Sheet 1 of 11
`
`US 6,944,790 B2
`
`Interfaces
`
`definitions
`
`
`tty
`
`100
`
`
`
`105
`
`110
`
`115
`
`definitions
`
`420
`
`ae
`
`1
`
`Old
`
`130
`
`other system
`arameters
`
` 125
`
`
`Userid
`
`O
`
`
`
`
`
`165
`
`Network
`
`175
`
`printer
`
`185
`
`tty
`
`userids
`
` 4 parameters
`Figure 1
`
`190
`
`

`

`U.S. Patent
`
`Sep. 13, 2005
`
`Sheet 2 of 11
`
`US 6,944,790 B2
`
`
`
`
`Time for
`Data Collection?
`210
`
`
`
`Collection
`Preparation
`
`and
`Execution
`(See Fig. 3)
`220
`
`
`
`
`
`
`250
`
`
` Timefor
`
`Duplication?
`240
`
`
`Yes
`
`Duplication
`Preparation
`and
`Execution
`(See Fig. 4)
`
`Figure 2
`
`

`

`U.S. Patent
`
`Sep. 13, 2005
`
`Sheet 3 of 11
`
`US 6,944,790 B2
`
`(
`
`Start300
`
`Check Available
`Tape Space
`305
`
`Identify
`License Files
`310
`
`Identify
`Application
`Personality Data
`315
`
`Add License and
`Personality Data to
`Data Collection
`Program
`320
`
`identify
`Workstations
`325
`
`Add Workstations
`to Collection List
`
`330
`
`
`
`
`
`
` Data
`Collection
`
`(See Fig. 5)
`340
` Collect
`
`Application
`Information
`
`
`(See Fig. 6)
`350
`
`
`Create
`Quality
`Checklist
`(See Fig. 7)
`360
`
`
`
`
`
`J
`
`
`Write Data
`to Tape
`370
`
`
`Figure 3
`
`

`

`U.S. Patent
`
`Sep. 13, 2005
`
`Sheet 4 of 11
`
`US 6,944,790 B2
`
`
`Update
`Duplication
`Program
`410
`
`
`
`
`
`
`
`
`Hostname,
`IP Address
`420
`
`Transfer
`Duplication
`Program
`to Workstation
`430
`
`
`
`
`
`Duplication
`(See Fig. 8)
`440
`
`X-Windows
`Settings
`(See Fig. 9)
`450
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Restore
`Permissions
`460
`
`ecreate
`Unique
`Filesystems
`470
`
`1
`
`Restore Data
`To Unique
`Filesystems
`480
`
`End
`490
`
`
`
`Figure 4
`
`

`

`U.S. Patent
`
`Sep. 13, 2005
`
`Sheet 5 of 11
`
`US 6,944,790 B2
`
`
`
`Start
`500
`
`Test Installation
`Server Name
`505
`
`Set Environment
`Variables
`
`510
`
`Verify connectivity
`sis
`
`Get home/local
`and other
`information
`520
`
`Get Network
`Information
`525
`
`Get Status of
`Ethemet Adapters
`530
`
`560
`
`Get IP Addresses
`of Ethernet
`Adapters
`535
`
`
`
`Get Default
`Gateway
`Addresses
`540
`
`Get Default
`Netmasks
`049
`
`Get Domain
`Information
`550
`
`Get System
`Information
`595
`
`Get TTY
`Information
`
`Get Print Queue
`Information
`
`565
`
`Get Application
`Specific
`Information
`670
`
`4}
`
`Get License
`Information
`575
`
`Get Filesystem
`Information
`580
`
`
`
`
`
`
`
`Figure §
`
`

`

`
`
`Collect Application
`Information from
`Workstation
`620
`
`
`
`
`
`
`U.S. Patent
`
`Sep. 13, 2005
`
`Sheet 6 of 11
`
`US 6,944,790 B2
`
`
`
`Copy Program
`from Media to
`Workstation
`
`
`
`
`
`
` 610
`
`
`More Applications?
`630
`
`680
`
`
`
`Get Application
`Logical Volume
`
`Name
`
`
`650
`
`
` Get Application
`Mount point/
`filesystem name
`
`660
`
`
`
`Get Application
`filesystem size
`
`670
`
`
`
`
`Figure 6
`
`

`

`U.S. Patent
`
`Sep. 13, 2005
`
`Sheet 7 of 11
`
`US 6,944,790 B2
`
`
`
`
`
`
`
`
`
`
`
`
`Checkrestoration
`of /usr/local
`
`735
`
`Check TTYs
`740
`
`
`
`
`
`Check remote
`printers
`745
`
`Check ADSM
`include/exclude
`750
`
`
`Check application
`information
`
`789
`
`
`
`Figure 7
`
`Check Client
`hostname
`105
`
`Check Connection
`to Tape Drive
`710
`
`
`
`
`
`Check networking
`files
`rar)
`
`Check restoration
`of fhome/local
`720
`
`
`
`Check Password
`128
`
`Checkfilesystems
`730
`
`

`

`U.S. Patent
`
`Sep. 13, 2005
`
`Sheet 8 of 11
`
`
`
`Reset IP
`addresses and
`hostnamesto real
`addresses/names
`865
`
`Restore home/local
`to workstation
`840
`
`Restore
`ADSM
`845
`
`Restore
`Applications
`850
`
`Restore
`TTYs
`855
`
`Restore
`Remote Printers
`860
`
`Check Ethernet
`interfaces
`870
`
`Resetfile
`permissions
`875
`
`Disable
`Monitor Timeout
`880
`
`
`
` US 6,944,790 B2
`
`Change
`License Files
`885
`
`Cleanup
`890
`
`
`
`Figure 8
`
`Install / Configure
`Tape Device
`(if necessary)
`810
`
`
`
`Load Tape on
`Tape Device
`825
`
`Restore
`Networking Files
`830
`
`Restore
`Unique System
`information
`835
`
`

`

`U.S. Patent
`
`Sep. 13, 2005
`
`Sheet 9 of 11
`
`US 6,944,790 B2
`
`940
`
`Set
`Landscape
`930
`
`New Window
`910
`
`End Session
`920
`
`Set
`Portrait
`
`Figure 9
`
`

`

`U.S. Patent
`
`Sep. 13, 2005
`
`Sheet 10 of 11
`
`US 6,944,790 B2
`
` Processor
`
`1000
`
`1001
`
`
`Host Bus
`
`:
`
`4005
`

`
`Level Two
`
`Host-to-PCl
`
`.
`Main Memory
`1020
`
`PC! Bus
`
`
`
`1070
`
`
`1068
`
`Figure 10
`
`

`

`U.S. Patent
`
`Sep. 13, 2005
`
`Sheet 11 of 11
`
`US 6,944,790 B2
`
`
`System
`Duplication
`
` 1100
`
`
`
`
` Collection
`Duplication
`
`
`
`
`111
`1120
`
`
`
`
`
`Data
`Collection of
`X-Windows
`
`Duplication
`
`Collection
`
`Application
`
`
`
`Settings
`
`
`
`Information
`
` 1130
`170
`
`
`1150
`1180
`
`
`
`
`Workstation
`Quality
`List
`Checklist
`
`
`
`
`
`
`
`414
`1160
`
`Figure 11
`
`

`

`US 6,944,790 B2
`
`1
`SYSTEM AND METHOD FOR COLLECTING
`AND RESTORING USER ENVIRONMENT
`DATA USING REMOVABLE STORAGE
`
`RELATED APPLICATIONS
`
`This application is related to the following co-pending
`U.S. patent applications filed on Mar. 31, 2000 and having
`the same inventors and assignee: “System and Method for
`Event-Based Computer System Duplication” (application
`Ser. No. 09/540,914, filed Mar. 31, 2000), “System and
`Method for Computer System Duplication”(application Ser.
`No. 09/540,344, filed Mar. 31, 2000), and “Method and
`System for Implementing Network Filesystem-Based Cus-
`tomized Computer System Automated Rebuild Tool”
`(application Ser. No. 09/422,361, filed Oct. 21, 1999) each
`by Hamilton and Lipton and each assigned to the IBM
`Corporation.
`
`BACKGROUND
`
`1. Field of the Invention
`
`The present invention relates to information processing
`technology. Moreparticularly, the present invention relates
`to a system and method for simplifying the restoration and
`recovery of user environment data in a computer system.
`2. Description of the Related Art
`The UNIX operating system is an interactive time-sharing
`operating system invented in 1969. The UNIX operating
`system is a multi-user operating system supporting serial
`and network connected terminals for multiple users. UNIX
`is a multitasking operating system allowing multiple users to
`use the same system simultaneously. The UNIX operating
`system includes a kernel, shell, and utilities. UNIX is a
`portable operating system, requiring only the kernel to be
`written in assembler, and supports a wide range of support
`tools including development, debuggers, and compilers.
`As a multi-user operating system, UNIX allows multiple
`people to share the same computer system simultaneously.
`UNIX accomplishes this by time-slicing the computer’s
`central processing unit, or “CPU,” into intervals. Each user
`gets a certain amount of time for the system to execute
`requested instructions. After the user’s allotted time has
`expired, the operating system intervenes by interrupting the
`CPU,saving the user’s program state (program code and
`data), restores the next user’s program state and begins
`executing the next user’s program (for the next user’s
`amount of time). This process continues indefinitely cycling
`through all users using the system. When the last user’s
`time-slice has expired, controlis transferred backto the first
`user again and another cycle commences.
`The UNIX operating system is both a multi-user operating
`system and a multi-tasking operating system. As the name
`implies, the multi-user aspect of UNIX allows multiple users
`to use the same system at the same time. As a multi-tasking
`operating system, UNIX permits multiple programs (or
`portions of programscalled threads of execution) to execute
`at the same time. The operating system rapidly switches the
`processor between the various programs (or threads of
`execution) in order to execute each of the programs or
`threads. IBM’s OS/2 and Microsoft’s Windows 95/98/NT
`are examples of single-user multi-tasking operating systems
`while UNIX is an example of a multi-user multi-tasking
`operating system. Multi-tasking operating systems support
`both foreground and backgroundtasks. A foregroundtask is
`a task that directly interfaces with the user using an input
`device and the screen. A background task runs in the
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`2
`background and doesnot access the input device(s) (such as
`the keyboard, a mouse, or a touch-pad) and does not access
`the screen. Background tasks include operations like print-
`ing which can be spooled for later execution.
`The UNIX operating system keeps track of all programs
`running in the system and allocates resources, such as disks,
`memory, and printer queues, as required. UNIX allocates
`resourcesso that, ideally, each program receives a fair share
`of resources to execute properly. UNIX doles out resources
`using two methods: scheduling priority and system sema-
`phores. Each program is assigned a priority level. Higher
`priority tasks (like reading and writing to the disk) are
`performed more regularly. User programs may have their
`priority adjusted dynamically, upwards or downwards,
`depending on their activity and the available system
`resources. System semaphores are used by the operating
`system to control system resources. A program can be
`assigned a resource by getting a semaphore by making a
`system call to the operating system. Whenthe resource is no
`longer needed, the semaphore is returned to the operating
`system, which can then allocate it to another program.
`Disk drives and printers are serial in nature. This means
`that only one request can be performedat any one time. In
`order for more than one user to use these resources at once,
`the operating system manages them using queues. Each
`serial device is associated with a queue. When a programs
`wants access to the device (ie., a disk drive) it sends a
`request to the queue associated with the device. The UNIX
`operating system runs background tasks (called daemons),
`which monitor the queues and service requests for them. The
`requests are performed by the daemon process and the
`results are returned to the user’s program.
`Multi-tasking systems provide a set of utilities for man-
`aging processes. In UNIX,these are ps (list processes), kill
`(kill a process), and & at the end of a commandline (run a
`process in the background). In UNIX,all user programs and
`application software use the system call interface to access
`system resources such as disks, printers, and memory. The
`system call interface in UNIX providesa set of system calls
`(C language functions). The purpose of the system call
`interface is to provide system integrity, as all low-level
`hardware access is under the control of the UNIX operating
`system and not the user-written programs. This prevents a
`program from corrupting the system.
`Upon receiving a system call, the operating system vali-
`dates its access permission, executes the request on behalf of
`the requesting program, and returns the results to the
`requesting program. If the request is invalid or the user does
`not have access permission, the operating system does not
`perform the request and anerroris returned to the requesting
`program. The system call is accessible as a set of C language
`functions, as the majority of UNIX is written in the C
`language. Typical system calls are: _read—for reading from
`the disk; __write—for writing to the disk; _getch—for
`reading a character from a terminal; _putch—for writing a
`character to the terminal; and _ioctl—for controlling and
`setting device parameters.
`The Kernel
`As the name implies, the Kernel is at the core of the UNIX
`operating system and is loaded each time the system is
`started, also referred to as a system “boot.” The kernel
`manages the resources of the system, presenting them to the
`users as a coherent system. The user does not have to
`understand much,if anything, about the kernel in order to
`use a UNIX system. The kernel provides various necessary
`functions in the UNIX environment. The kernel manages the
`system’s memory and allocates it to each process. It takes
`
`

`

`US 6,944,790 B2
`
`4
`called i-node numbers, are used only within the UNIX
`kernel itself. While UNIX uses i-node numbers to refer to
`
`files, it allows users to identify each file by a user-assigned
`name. A file name can be any sequence of characters and can
`be up to fourteen characters long.
`There are three typesof files in the UNIX file system: (1)
`ordinary files, which may be executable programs,text, or
`other types of data used as input or produced as output from
`some operation; (2) directory files, which contain lists of
`files in directories outlined above; and (3) special files,
`which provide a standard method of accessing input/output
`devices.
`
`Internally, a directory is a file that contains the names of
`ordinary files and other directories and the corresponding
`i-node numbersforthe files. With the i-node number, UNIX
`can examineotherinternal tables to determine wherethefile
`is stored and makeit accessible to the user. UNIX directories
`
`3
`time for the kernel to save and restore the program’s state
`and switch from one program to the next
`(called
`dispatching). This action needs to execute quickly because
`time spent switching between programstakes away from the
`time available to actually run the users’ programs. The time
`spent in the “system state” where the kernel performs tasks
`like switching between user programs is the system over-
`head and should be kept as low as possible. In a typical
`UNIX system, system overhead should be less than 10% of
`the overall time.
`
`10
`
`15
`
`20
`
`25
`
`30
`
`The kernel also schedules the work to be done by the
`central processing unit, or “CPU,” so that the work of each
`useris carried outefficiently. The kernel transfers data from
`one part of the system to another. Switching between user
`programs in main memoryis also done by the kernel. Main
`system memory is divided into portions for the operating
`system and user programs. Kernel memory space is kept
`themselves have names, examples of which were provided
`separate from user programs. When insufficient main
`above, and can be up to fourteen characters long.
`memory exists to run a program, another program is written
`out to disk (swapped) to free enough main memory to run
`UNIX maintains a great deal of information aboutthefiles
`that it manages. For eachfile, the file system keepstrack of
`the first program. The kernel determines which program is
`the file’s size, location, ownership, security, type, creation
`the best candidate to swap out to disk based on various
`time, modification time, and access time. All of this infor-
`factors. When too many programsare being executed on the
`mation is maintained automatically by the file system as the
`system at the same time, the system gets overloaded and the
`files are created and used. UNIXfile systems reside on mass
`operating system spends more time swapping files out to
`storage devices such as disk drives and disk arrays. UNIX
`disk and less time executing programs causing performance
`organizes a disk into a sequence of blocks. These blocks are
`degradation. The kernel also accepts instructions from the
`“shell” and carries them out. Furthermore,
`the kernel
`usually either 512 or 2048 bytes long. The contentsofafile
`enforces access permissions that are in place in the system.
`are stored in one or more blocks which may be widely
`scattered on the disk.
`Access permissions exist for each file and directory in the
`system and determine whether other users can access,
`execute, or modify the given file or directory.
`Files and Directories
`
`For file handling, UNIX uses a hierarchical directory
`structure for organizing and maintaining files. Access per-
`missions correspond to files and directories. As previously
`stated,
`the UNIX operating system organizes files into
`directories which are stored in a hierarchical
`tree-type
`configuration. At the top of the tree is the root directory
`which is represented by a slash (/} character. The root
`directory contains one or moredirectories. These directories,
`in turn, may contain further directories containing userfiles
`and other system files. A few standard directories that will be
`found in many UNIXare as follows:
`/bin This directory contains the basic system commands.
`/etc This directory contains system configuration files and
`programs used for administrating the system.
`/lib This directory contains the system libraries.
`/tmp This directory is used to store temporaryfiles.
`/usr/bin This directory contains the commandsthat are not
`stored in /bin.
`/usr/man This directory contains manual pages for pro-
`grams
`/usr/local This directory contains local programsthat were
`installed by the system administrator (sysadmin) and
`were not
`included with the original system.
`In
`particular, Aisr/local/bin contains local commandfiles
`(binaries), and /usr/local/man contains local manual
`pages.
`/home Theactual directory location varies from system to
`system, but somewhere on the system will be a location
`whereall of the users’ homedirectories are located.
`
`The fundamental structure that the UNIX operating sys-
`tem uses to store informationis thefile. A file is a sequence
`of bytes. UNIX keeps track of files internally by assigning
`each file a unique identification number. These numbers,
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`An ordinaryfile is addressed throughthe i-nodestructure.
`Each i-node is addressed by an index contained in an i-list.
`The i-list is generated based on the size of the file system,
`with larger file systems generally implying morefiles and,
`thus, larger i-lists. Each i-node contains thirteen 4-byte disk
`address elements. The direct i-node can contain up to ten
`block addresses. If the file is larger than this,
`then the
`eleventh address points to the first
`level
`indirect block.
`Addresses 12 and 13 are used for second level andthird level
`indirect blocks, respectively, with the indirect addressing
`chain beforethefirst data block growing by onelevel as each
`new address slot in the direct i-node is required.
`All input and output (I/O) is done by reading and writing
`files, because all peripheral devices, even terminals, are
`treated as files in the file system. In a most general case,
`before reading and writinga file, it is necessary to inform the
`system of the intention to do so by openingthefile. In order
`to write to a file, it may also be necessary to create it. When
`a file is opened or created (by way of the “open”or “create”
`system calls), the system checks for the right to do so and,
`if the user has the right to do so,
`the system returns a
`non-negative integer called a file descriptor. Whenever I/O
`is to be done onthisfile, the file descriptor is used, instead
`of the file name, to identify the file. The open file descriptor
`has associated with it a file table entry kept in the “process”
`space of the user who has opened the file.
`In UNIX
`terminology,
`the term “process” is used interchangeably
`with a program that is being executed. Thefile table entry
`contains information about an open file, including an i-node
`pointer for the file and the file pointer for the file, which
`defines the current position to be read or written in the file.
`All information about an open file is maintained by the
`system.
`In conventional UNIX systems, all input and output is
`done by two system calls—‘“read” and “write”—which are
`accessed from programshaving functions of the same name.
`For both system calls, the first argumentis a file descriptor,
`
`

`

`US 6,944,790 B2
`
`5
`the second argumentis a pointer to a buffer that serves as the
`data source or destination, and the third argument is the
`numberof bytes to be transferred. Each “read” or “write”
`system call counts the number of bytes transferred. On
`reading, the number of bytes returned may beless than the
`number requested because fewer bytes than the number
`requested remain to be read. Areturn code of zero meansthat
`the end-of-file has been reached, a return code of -1 means
`that an error occurred. For writing, the return code is the
`number of bytes actually written. An error has occurred if
`this numberdoes not match the numberof bytes which were
`supposed to be written.
`Shells
`line
`input
`UNIX monitors the state of each terminal
`connected to the system with a system processcalled getty.
`When getty detects that a user has turned on a terminal, it
`presents the logon prompt, and when the userid and pass-
`word are validated,
`the UNIX system associates a shell
`program (such as sh) with that terminal placing the user in
`the shell program. The shell program provides a promptthat
`typically signifies which shell program is being executed.
`The user types commandsat the prompt. The shell program
`acts as a command interpreter taking each command and
`passing them to the kernel to be acted upon. The shell then
`displays the results of the operation on the screen. Users use
`the shell to create a personalized environmentthat suits the
`needs of the user. The user can change environment vari-
`ables that control the user’s environment.
`The EDITOR environment variable sets the editor that
`will be used by other programs such as the mail program.
`The PAGERenvironmentvariable sets the pagerthat will be
`used by programs such as man to display manual pages. The
`PATHenvironmentvariable specifies the directories that the
`shell is to look throughto find a command. These directories
`are searched in the order in which they appear. The
`PRINTERenvironmentvariable sets the printer to whichall
`output is sent by the lpr command. The SHELLvariable sets
`the default shell that is used by the user. The TERM variable
`sets the terminal type for programs such as the editor and
`pager. The TZ environment variable sets the time zone
`where the user is located.
`There are several shells that are available to UNIX users.
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`6
`amount of customizing a user may make to his or her
`environment, duplicating a user’s computing environment
`has become even more challenging. Recreating UNIX
`images,
`in particular,
`requires that numerous system
`parameters,
`including printer definitions,
`tty definitions
`(terminal definitions or the name of a particular terminal
`controlling a given job or even serial port definitions—in
`UNIX such devices have names of the form tty*), network
`interfaces, user Ids, and passwords. Failure to duplicate all
`such parameters mayresult in the inability of the user to run
`key applications or access critical resources following such
`a system duplication. Challenges in present duplication
`schemes wherein the duplication is largely a manual effort
`include time consuming manualtasks performed by the user
`and/or system administrator and the fact that such manual
`tasks are prone to errors.
`SUMMARY
`
`It has been discovered that user environment data can be
`
`duplicated from a workstation to another workstation in a
`semi-automated fashion. Initially, an automated data collec-
`tion process collects user environment data from the old
`computer system. User environment data may include appli-
`cation program data, license information, tty settings, cus-
`tomized directories, and other user customized workstation
`environmentvariables.
`
`A list of workstations can also be used to duplicate a
`number of workstations, for example when a group of
`individuals are upgrading their workstations. The user envi-
`ronment data is stored for later duplication onto a new
`workstation. The user environment data is stored onto a
`removable computer operable medium, such as a diskette or
`a magnetic tape, for transporting and inputting into the new
`workstation or for use in restoring the old computer when a
`system failure occurs. Duplicating the user environment
`settings on a new workstation involves reading the user
`environment data stored on the computer operable medium
`and applying the user environmentsettings to the worksta-
`tion.
`
`The foregoing is a summary and thus contains, by
`necessity, simplifications, generalizations, and omissions of
`detail; consequently, those skilled in the art will appreciate
`Each shell provides different features and functionality than
`that the summary isillustrative only and is not intended to
`other shells. The most common UNIX shell programsare the
`be in any way limiting. Other aspects, inventive features,
`“Bourne” shell, the “C” shell, the “TC” shell, the “Korn”
`and advantagesof the present invention,as defined solely by
`shell, and the “BASH”shell. As well as using the shell to run
`the claims, will become apparent in the non-limiting detailed
`commands, each of these shell programs have a built-in
`description set forth below.
`programming languagethat a user can use to write their own
`BRIEF DESCRIPTION OF THE DRAWINGS
`commandsor programs. A user can put commandsintoafile
`50
`knownasa shell script—and executethefile like a command
`The present invention may be better understood, and its
`or program. Shells invoke two types of commands: internal
`numerous objects, features, and advantages made apparent
`commands(such as set and unset) which are handled by the
`to those skilled in the art by referencing the accompanying
`shell program and external commands(suchas ls, grep, sort,
`drawings. The use of the same reference symbols in different
`and ps) which are invoked as programs.
`drawings indicates similar or identical items.
`Challenges With Duplicating Systems in the Prior Art
`FIG. 1 is a system diagram showing user environment
`Oneadvantage of the UNIX operating system is that users
`data being duplicated through a computer operable medium;
`can customize their working environmentto suit their needs.
`FIG. 2 is a high-level flowchart showing of one embodi-
`For example, users can choose a default editor, a pager to
`ment of the present invention;
`display manual pages, a path to specify directories that are
`FIG. 3 is a mid-level flowchart showing the collection
`searched for commands,a default printer, a terminal type for
`phase;
`use by the editor and the pager, a time-zone for displaying
`FIG. 4 is a mid-level flowchart showing the duplication
`the correct time, and the shell program that is associated
`phase;
`with the user’s terminal upon logging on to the system.
`FIG. 5 is a lower-level flowchart showing the data col-
`One challenge in today’s complex computing environ-
`lection steps;
`ment is moving a user from one system to another due to
`system changes or user relocation from one system to
`FIG. 6 is a lower-level flowchart showing the application
`information collection;
`another system. Because of computer complexity and the
`
`55
`
`60
`
`65
`
`

`

`US 6,944,790 B2
`
`7
`FIG. 7 is a lower-level flowchart showing the creation of
`a quality checklist;
`FIG. 8 is a low-level flowchart showing duplication steps;
`FIG. 9 is a lower-level flowchart showing display settings
`duplication;
`FIG. 10 is a block diagram showing an information
`handling system; and
`TIG. 11 is a hierarchy chart showing the script files used
`in one embodiment of the present invention.
`DETAILED DESCRIPTION
`
`The following is intended to provide a detailed descrip-
`tion of an example of the invention and should not be taken
`to be limiting of the invention itself. Rather, any number of
`variations may fall within the scope of the invention which
`is defined in the claims following the description.
`FIG. 1 is a system diagram illustrating user environment
`data being copied and sent from one computer system to
`another computer system. The user’s old user environment
`data 100 includes networkinterfaces 105,tty definitions 110,
`printer definitions 115, userids 120, passwords 125, and
`other system parameters 130, such as application specific
`information. In essence, old user environment data 100
`includes the customizations and modifications made to the
`
`user’s account as a result of the user’s preferences or made
`so the user could better perform his or her job related tasks.
`In this example, the user is moving from old userid 135 in
`old computer system 140 to new userid 155 connected to
`newcomputer system 160. Once old user environmentdata
`100 is gathered from old computer system 140, they are
`transferred to new computer system 160 using nonvolatile
`computer media 145. Nonvolatile computer media 145 may
`be may be a diskette, magnetic tape, ZIP disk, JAZ disk,
`CD-R (recordable CD-ROM), hard drive, optical disk, or
`any medium that can transfer data by being transported from
`one computer system to another.
`After old user environment data 100 has been received at
`
`new computer system 160, a process is invoked that dupli-
`cates old user environment data 100 onto new computer
`system 160 creating new user environment data 195. Simi-
`larly to old user environment data 100, new user environ-
`ment data 195 includes network interfaces 165, tty defini-
`tions 170, printer definitions 175, userids 180, passwords
`185, and other system parameters 190, such as application
`specific information. After old user environment data 100
`has been duplicated onto new computer system 160,
`the
`customization settings are ultimately the sameasthe settings
`the user was accustomed to using on old computer system
`140.
`
`In addition to moving from one system to another system,
`environment data 100 may be captured in response to
`various events that occur in the system. For example, on a
`given schedule, the user’s environment data may be cap-
`tured and stored on old computer system 140 or new
`computer system 160. In this manner, the environmentdata
`100 is periodically captured so that if a system failure occurs
`on old computer system 140, new userid 155 can quickly be
`created and the environment data restored creating new
`environment data 195 and the user can have a substantially
`similar system in operation in a minimum amountoftime.
`Other events, or triggers, may be to capture environment
`data 100 each time enviro

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