Typically, when a user upgrades system software such as, for example, an operating system, the user is required to have a physical storage medium, such as, for example, a compact disc (CD) or other storage medium, which may include a number of files, including configuration settings, binary files and applicable resources. During the upgrade process, various system attributes may be deleted including, but not limited to, registry settings and binary files of the system software. Further, during the upgrade process binary files may be deposited onto a medium of a processing device and registry settings and registers, as well as other components may be updated.
Environment functionality of the system software may include a number of factors that affect a user's experience. For example, environment functionality may include, for example, a type of user interface (graphical or otherwise) and services provided (or not provided) by the system software. The environment functionality of the system software may be affected by a particular type of technology included in a processing device in which the system software is executing, network connectivity, the user's technological sophistication (or lack there of), as well as other factors. In most cases, the system software such as, for example, an operating system, may include a particular environment functionality, which may not be downgraded from a higher-version to a lower-version. Typically, only upgrades to the system software are possible. For example, if the user wishes to scale back complexity of the system, either temporarily, permanently or based on the user's proficiency with the system, there is no way to accomplish this.
This Summary is provided to introduce a selection of concepts in a simplified form that is further described below in the Detailed Description. This summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter.
System software such as, for example, an operating system may include numerous software modules related to various functions and/or services of the operating system, which may include a user's feel or experience, as well as one or more services, which may be provided to the user. Environmental functionality of the system software may include a number of aspects related to the system software such as, for example, functions and services provided, and a user's experience or feel of the system software.
In embodiments consistent with the subject matter of this disclosure, environmental functionality of the system software may be changed, for example, upgraded (increased) or downgraded (decreased), by altering guarded system data which may affect behavior of the system software. In some embodiments, the guarded system data may include guarded system configuration information such as, for example, one or more binary files, multiple sets of software/hardware parameters, or other system data. In one embodiment, a user may provide state change information for altering a state of the system software, which may thereby alter the environmental functionality of the system software. In some embodiments, the state change information may include a product key, or any alternative activation/identification datum. The state change information may be used to alter the guarded system data. The system software may set configuration parameters, based on the altered guarded system data, to enable a particular environmental functionality of the system software. In some embodiments, the system software may detect a hardware configuration of a processing device executing the system software. In such embodiments, the particular environmental functionality of the system software may be based on at least one of the altered guarded system data or the detected hardware configuration of the processing device.
In order to describe the manner in which the above-recited and other advantages and features can be obtained, a more particular description is described below and will be rendered by reference to specific embodiments thereof which are illustrated in the appended drawings. Understanding that these drawings depict only typical embodiments and are not therefore to be considered to be limiting of its scope, implementations will be described and explained with additional specificity and detail through the use of the accompanying drawings.
Embodiments are discussed in detail below. While specific implementations are discussed, it should be understood that this is done for illustration purposes only. A person skilled in the relevant art will recognize that other components and configurations may be used without parting from the spirit and scope of the subject matter of this disclosure.
Processor 120 may include at least one conventional processor or microprocessor that interprets and executes instructions. Memory 130 may be a random access memory (RAM) or another type of dynamic storage device that stores information and instructions for execution by processor 120. Memory 130 may also store temporary variables or other intermediate information used during execution of instructions by processor 120. ROM 140 may include a conventional ROM device or another type of static storage device that stores static information and instructions for processor 120. Storage device 150 may include any type of media for storing data and/or instructions.
Input device 160 may include one or more conventional mechanisms that permit a user to input information to processing device 100, such as, for example, a keyboard, a mouse, or other input device. Output device 170 may include one or more conventional mechanisms that output information to the user, including a display, a printer, or other output device. Communication interface 180 may include any transceiver-like mechanism that enables processing device 100 to communicate with other devices or networks. In one embodiment, communication interface 180 may include an interface to network 106.
Processing device 100 may perform such functions in response to processor 120 executing sequences of instructions contained in a computer-readable medium, such as, for example, memory 130, or other medium. Such instructions may be read into memory 130 from another computer-readable medium, such as storage device 150, or from a separate device via a communication interface (not shown).
Embodiments consistent with the subject matter of this disclosure relate to altering a state of system software such as, for example, an operating system, to change environmental functionality of the system software. In one implementation, system software such as, for example, an operating system may include numerous software modules related to various functions and/or services of the operating system, which may include a user's feel or experience, as well as one or more services, which may be provided to the user. Services which may or may not be provided may include, for example, network services, such as sharing of resources over a network, or other services. Environmental functionality of the system software may include a number of aspects related to the system software such as, for example, functions and services provided, and a user's experience or feel of the system software.
In various implementations, environmental functionality of the system software may be changed, for example, upgraded or downgraded, by altering system data within the system software. The system data may include system configuration information such as, for example, one or more binary files, multiple sets of software/hardware parameters, or other system data. The system data may be protected or guarded from alteration. In one implementation, a user may provide state change information for altering a state of the system software, which may thereby alter the environmental functionality of the system software. In some embodiments, the state change information may include a product key or a similar activation datum. Other forms of the state change information may be used in other embodiments consistent with the subject matter of this disclosure. The state change information may be used to alter the guarded system data. After altering the guarded system data, the system software may be restarted. In some embodiments, the system software may detect changes to the guarded system data and may make changes to the environmental functionality of the system software without restarting. After restarting, or after detecting the changes to the guarded system data, the system software may set configuration parameters, based on the altered guarded system data, to enable a particular environmental functionality of the system software. In some embodiments, the system software may detect a hardware configuration of a processing device executing the system software. In such embodiments, the particular environmental functionality of the system software may be based on at least one of the altered guarded system data or the detected hardware configuration of the processing device.
The processing device may then execute the software for altering the guarded data, which may prompt a user to enter state change information and may receive the state change information from the user (act 204). In one embodiment, the state change information may include a product key, which may be a code including a group of letters, digits, and/or special characters. In other embodiments, the state change information may include an alternative activation/identification datum. The processing device may then determine a current state of the system software (act 206). This may be accomplished by determining content of the guarded data of the system software, by checking content of a current product key, an activation/identification datum, or via a number of other methods.
The processing device may then compare the provided state change information with the current state of the system software to determine whether the state change information is compatible with the current state of the system software (act 208). For example, assume that the system software is an operating system called OS-Basic with a particular environmental functionality and the state change information indicates that the environmental functionality of the operating system is to be changed to be equivalent to an environmental functionality of an operating system called OS-Complex. If such a change is permitted, then the processing device may determine that the state change information is compatible. However, if the processing device executes the OS-Basic operating system and the state change information indicates that the environmental functionality of the operating system is to be changed be equivalent to an environmental functionality of an operating system called OS-Advanced, and such a change in the environmental functionality of the operating system is not permitted from the OS-Basic operating system, then the processing device may determine that the state change information is incompatible with the current state of the system software.
If, during act 208, the processing device determines that the state change information is not compatible with the current state of the system software, then the processing device may abort the process (act 210). If, during act 208, the processing device determines that the state change information is compatible with the current state of the system software, then processing device may execute the software to alter the guarded data based on the state change information (act 212). In some embodiments consistent with the subject matter of this disclosure, the software to alter the guarded data may be include in an operating system such as, for example, a very basic operating system. Alteration of the guarded data may include modification of registry keys, or other protected data which may affect the behavior of the operating system. After altering the guarded data, the processing device may then cause the system software to restart or reboot (act 214). In some embodiments, the system software may detect changes to the guarded data and may make changes to the environmental functionality of the system software without restarting.
In embodiments consistent with the subject matter of this disclosure, the exemplary process illustrated in
The processing device may then execute the installed software, which may prompt a user to enter state change information and may receive the state change information (act 304). In one embodiment, the state change information may include a product key, which may be a code including a group of letters, digits, and/or special characters. In other embodiments, the state change information may include an alternative activation/identification datum.
The processing device may then determine a current state of the system software (act 306). This may be accomplished by determining content of the guarded data of the system software, by checking content of a current product key, an activation/identification datum, or via a number of other methods.
The processing device may then compare the provided state change information with the current state of the system software to determine whether the state change information is compatible with the current state of the system software (act 308).
If, during act 308, the processing device determines that the state change information is not compatible with the current state of the system software, then the processing device may abort the process (act 310). If, during act 308, the processing device determines that the state change information is compatible with the current state of the system software, then processing device may execute the software to alter the guarded data based on the state change information (act 312). As mentioned with respect to
In embodiments consistent with the subject matter of this disclosure, the exemplary process illustrated in
Next, the processing device may enable a particular environment functionality based on the set configuration parameters (act 406). In an embodiment, the processing device executing the system software may accomplish this by enabling a particular set of services, and/or a particular user interface or user interface experience. For example, services which provide for sharing of network resources may be enabled in the particular environment functionality of the system software.
Next, the processing device executing the system software may determine its hardware configuration (act 504). The processing device may then set configuration parameters of the system software based on content of the guarded data and on the determined hardware configuration of the processing device (act 506). In one embodiment, the processing device executing the system software may further alter the guarded data based on the determined hardware configuration. The processing device may set configuration parameters such as, for example, registry keys or other configuration parameters which may affect behavior of the system software and services provided by the system software.
Next, the processing device may enable a particular environment functionality based on the set configuration parameters (act 508). In an embodiment, the processing device executing the system software may accomplish this by enabling a particular set of services, and/or a particular user interface or user interface experience. For example, services which provide for sharing of network resources may be enabled in the particular environment functionality of the system software.
Thus, in an embodiment which performs the process illustrated by
The above-described embodiments permit system software to be upgraded or downgraded. Changes to the environment functionality of the system software, such as upgrades, may be performed in a fraction of the time required to perform conventional upgrades to the system software. Further, the above-described embodiments permit the system software to be easily downgraded to a less advanced or less complex system for less sophisticated users or for operation on more basic hardware.
Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms for implementing the claims.
Although the above description may contain specific details, they should not be construed as limiting the claims in any way. Other configurations of the described embodiments are part of the scope of this disclosure. Further, implementations consistent with the subject matter of this disclosure may have more or fewer acts than as described, or may implement acts in a different order than as shown. For example, with respect to the exemplary process illustrated by