Abstract:
An infrastructure that allows applications to run with specified versions of dependent assemblies, wherein each assembly may exist and run side-by-side on the system with other versions of the same assembly being used by other applications. An application provides a manifest to specify any desired assembly versions on which it is dependent. Similarly, each assembly may have an assembly manifest that specifies the versions of assemblies on which it is dependent. During an initialization phase, an activation context is created for the application, based on the manifests, to map version independent names to a particular assembly version maintained on the system. While the application is in a running phase, for any globally named object that the application wants created, the activation context is accessed to locate the application's or assembly's manifest-specified version. The manifests and activation context constructed therefrom thus isolate an application from assembly version changes.
Abstract:
Software programs, such as an operating system or other application programs, are automatically customized to a specific user(s) based on data corresponding to the specific user(s) that is maintained in a user information store. In one embodiment, the information store is a unified store that is accessible by multiple programs including the operating system. Thus, new information or information changes can be made available to multiple programs by the user adding (or changing) the information only once. In another embodiment, the operating system image to be installed on a computer is pre-populated with user-specific information at the factory. The user-specific information can be integrated into the operating system at the factory or alternatively upon an initial boot of the computer by the user.
Abstract:
A method, system and infrastructure that allow an application to run with specified versions of assemblies bound thereto, while allowing the application author, assembly publisher and/or an administrator to change the originally-specified version as desired. Each assembly may exist and run side-by-side on the system with other versions of the same assembly being used by other applications. An application manifest specifies any desired assembly versions, which may be redirected to another version (overridden) by an application configuration. A publisher configuration provided by an assembly publisher can similarly override the specified version. Lastly, an administrator configuration is capable of overriding other configuration versioning information. A table built from the manifest and any configuration redirection may be accessed during execution to quickly locate the appropriate version. The various configuration data structures themselves may be wrapped as assemblies, thereby enabling versioning of configurations.
Abstract:
A method and system for providing a common operating system feature set for supporting a variety of operating system configurations is described. The common operating system feature set is organized to provide a minimal memory footprint applicable to a number of devices and methods of deployment. The common operating system includes dependencies among operating system components that provide a selection of integrated components that are validated for reliability. The common operating system includes an application program interface set that provides functionality for a variety of operating system scenarios.
Abstract:
A computer system includes an object oriented framework that provides a set of application integration interfaces that support programmatic updating operations for maintaining locally stored copies of resources such as hypertext document pages from remote servers on a computer network. The updating operations continually check for updates to the data at the remote server and download updated versions of the resources to maintain concurrency of the locally stored copy. The updating operations are performed while a connection to the remote network is left idle, to maximize usage of on-line connection time. The updating operations also can be programmatically scheduled by a client program of the updating operations. The updating operations include updating the contents of a folder or directory in a local file system as specified in a file at a remote server on the network, and providing automatically updating and populating groups of sites or document pages organized by category.
Abstract:
A method, system and infrastructure that allow an application to run with specified versions of assemblies bound thereto, while allowing the application author, assembly publisher and/or an administrator to change the originally-specified version as desired. Each assembly may exist and run side-by-side on the system with other versions of the same assembly being used by other applications. An application manifest specifies any desired assembly versions, which may be redirected to another version (overridden) by an application configuration. A publisher configuration provided by an assembly publisher can similarly override the specified version. Lastly, an administrator configuration is capable of overriding other configuration versioning information. A table built from the manifest and any configuration redirection may be accessed during execution to quickly locate the appropriate version. The various configuration data structures themselves may be wrapped as assemblies, thereby enabling versioning of configurations.
Abstract:
A method, system and infrastructure that allow an application to run with specified versions of assemblies bound thereto, while allowing the application author, assembly publisher and/or an administrator to change the originally-specified version as desired. Each assembly may exist and run side-by-side on the system with other versions of the same assembly being used by other applications. An application manifest specifies any desired assembly versions, which may be redirected to another version (overridden) by an application configuration. A publisher configuration provided by an assembly publisher can similarly override the specified version. Lastly, an administrator configuration is capable of overriding other configuration versioning information. A table built from the manifest and any configuration redirection may be accessed during execution to quickly locate the appropriate version. The various configuration data structures themselves may be wrapped as assemblies, thereby enabling versioning of configurations.
Abstract:
Methods, systems and data structure are described for implementing local isolated DLL and/or COM components. A version of a shared component is stored in a local directory with an application that uses that particular version. Another version of the shared component exists on the system and is useable by any number of other computer programs. A local file is created in the local directory that indicates the presence of an isolated version of the shared component. When the application calls the shared component, the system uses the isolated version of the shared component stored locally with the application program. Thus, specific versions of components may be provided to a calling application without making any code changes to the calling application or to the component to which the calling application is bound.
Abstract:
An operating system combines preemptive scheduling with cooperative or non-preemptive scheduling. In particular, tasks are divided into groups of interdependent tasks. Each group includes tasks that should not be run a synchronously relative to each other. The scheduler in the operating system provides each group with a time slot of processor time. The tasks within the group are cooperatively scheduled to exploit the time slot assigned to the group. Dependencies between modules and tasks are maintained to assure that no difficulties arise amongst preemptively scheduled groups.
Abstract:
A method and system for reducing context switches when distributing input to applications are provided. When input is received, it is stored in a system input queue. A system thread distributes the input stored in the system input queue to appropriate thread input queues. Before the system thread can execute code to process system input, the system thread must obtain ownership of a synchronization mechanism. To eliminate unnecessary context switches, the operating system determines whether the synchronization mechanism is already owned before scheduling the system thread to execute and performing a context switch from the context of the currently executing thread to the context of the system thread. If the synchronization mechanism is not already owned, the system thread is granted ownership and distributes the input stored in the system input queue to the appropriate thread input queues. If the synchronization mechanism is already owned, the thread that already owns the synchronization mechanism distributes the input stored in the system input queue to the appropriate thread input queues.