A computer-implemented method being performed in a computer system, the computer system including an operating system, an underlying operating environment, and an operating environment abstraction layer situated between the operating system and the underlying operating environment, for providing an operating environment abstraction layer to customize a common set of application programming interfaces that are provided to the operating system that abstracts some operating environment resources while exposing other portions of operating environment resources such that the operating system is aware of the exposed operating environment resources, the method comprising: an act of the operating environment abstraction layer detecting available operating environment resources of an underlying operating environment, the underlying operating environment comprising one of a computer system hardware, a hypervisor or a host operating system, wherein the operating environment abstraction layer is configured to communicate with the underlying operating environment via interfaces (283, 284, 286) that are specific to the type of underlying operating environment; an act of the operating environment abstraction layer determining one or more abstraction algorithms used to determine a subset of the available operating environment resources to expose to the operating system and to customize a common set of application programming interfaces to expose the subset of the available operating environment resources of the underlying operating environment; an act of the operating environment abstraction layer exposing the customized common set of application programming interfaces to the operating system to allow the operating system to access the exposed subset of the available operating environment resources of the underlying operating environment an act of the operating system adjusting service algorithms used by the operating system to provide customized operating system services to requesting applications (111 a, 111 b) based on the exposed functionality represented in the operating environment resources exposed to the operating system; an act of the operating system receiving an application program request for an operating system service; and an act of the operating system interfacing with the operating environment abstraction layer through the customized common set of interfaces in accordance with the adjusted service algorithms and the determined one or more abstraction algorithms to implement the operating system service for the requesting application. an act of the operating environment abstraction layer detecting available operating environment resources of an underlying operating environment, the underlying operating environment comprising one of a computer system hardware, a hypervisor or a host operating system, wherein the operating environment abstraction layer is configured to communicate with the underlying operating environment via interfaces (283, 284, 286) that are specific to the type of underlying operating environment; an act of the operating environment abstraction layer determining one or more abstraction algorithms used to determine a subset of the available operating environment resources to expose to the operating system and to customize a common set of application programming interfaces to expose the subset of the available operating environment resources of the underlying operating environment; an act of the operating environment abstraction layer exposing the customized common set of application programming interfaces to the operating system to allow the operating system to access the exposed subset of the available operating environment resources of the underlying operating environment an act of the operating system adjusting service algorithms used by the operating system to provide customized operating system services to requesting applications (111 a, 111 b) based on the exposed functionality represented in the operating environment resources exposed to the operating system; an act of the operating system receiving an application program request for an operating system service; and an act of the operating system interfacing with the operating environment abstraction layer through the customized common set of interfaces in accordance with the adjusted service algorithms and the determined one or more abstraction algorithms to implement the operating system service for the requesting application.