WO2010107757A1 - Loading operating systems using memory segmentation and acpi based context switch - Google Patents

Loading operating systems using memory segmentation and acpi based context switch Download PDF

Info

Publication number
WO2010107757A1
WO2010107757A1 PCT/US2010/027430 US2010027430W WO2010107757A1 WO 2010107757 A1 WO2010107757 A1 WO 2010107757A1 US 2010027430 W US2010027430 W US 2010027430W WO 2010107757 A1 WO2010107757 A1 WO 2010107757A1
Authority
WO
WIPO (PCT)
Prior art keywords
partition
acpi
loading
computer
executing
Prior art date
Application number
PCT/US2010/027430
Other languages
French (fr)
Inventor
Gaurav Banga
Kaushik Barde
Ajay Kamalvanshi
Original Assignee
Phoenix Technologies Ltd.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Phoenix Technologies Ltd. filed Critical Phoenix Technologies Ltd.
Priority to EP10715621A priority Critical patent/EP2409227A1/en
Priority to CN201080012607.1A priority patent/CN102369510B/en
Priority to BRPI1006211-4A priority patent/BRPI1006211B1/en
Publication of WO2010107757A1 publication Critical patent/WO2010107757A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4418Suspend and resume; Hibernate and awake
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/54Link editing before load time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/24Loading of the microprogram
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • G06F9/441Multiboot arrangements, i.e. selecting an operating system to be loaded
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes

Definitions

  • the present invention generally relates to personal computers and devices sharing similar architectures, and more particularly relates to approaches for managing, activating and controlling a plurality of operating system environments and/or the like within a computing apparatus or within a single computer operational session or context.
  • PCs personal computers
  • laptop and notebook computers are of increasing power and complexity while decreasing thermal power.
  • OS Operating System
  • Microsoft® Windows® Vista® or a like commercial product.
  • Many varieties of OS are available largely due to the need to make design tradeoffs. In particular, feature richness with attendant complexity and size is traded off against (relatively) limited capabilities with increased speed (especially speed of operation and of load time).
  • Embodiments of the invention provide for, among other things, approaches for providing OS steering (control) assistance in pursuit of the support of multiple OSes (Operating Systems).
  • the present invention provides a method for operating a computer for data communications and also an apparatus that embodies the method.
  • program products and other means for exploiting the invention are presented.
  • an embodiment of the invention may provide for loading a first and second OS (operating system) into separate partitions of a system memory, executing an instruction request for a change of ACPI (Advanced Configuration and Power Interface) System State, restoring a saved hardware state of the computer, and transferring control between OSes.
  • OS operating system
  • ACPI Advanced Configuration and Power Interface
  • An advantage and/or feature provided by or resulting from implementing the present invention is that control may be passed between multiple OSes (typically two OSes but optionally three or more) without need for either a lengthy reboot time or the disadvantages inherent in the use of virtualization techniques. Consequently, there is an appearance of "instant" switch between OSes, or at least a switching that is materially faster than previously developed implementations provided. Moreover, by incorporating the invention into a warm boot sequence, an instant-on service can be provided or approached. BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 is a schematic block diagram of an electronic device configured to implement the security functionality according to an embodiment of the invention
  • FIG. 2 is a flowchart illustrating an overview of some of the steps performed in implementing an embodiment of the invention
  • FIGS. 3 and 4 taken together are a somewhat more detailed flowchart illustrating an overview of some of the steps performed in implementing an embodiment of the invention in further detail;
  • FIG. 5 is an illustration that shows how an exemplary embodiment of the invention may be encoded onto a computer medium or media
  • FIG. 6 is an illustration that shows how an exemplary embodiment of the invention may be encoded, transmitted, received and decoded using electro-magnetic waves.
  • FIG. 1 is a schematic block diagram of an electronic device configured to implement the security functionality according to an embodiment of the invention.
  • the electronic device 10 may be implemented as a personal computer, for example, a desktop computer, a laptop computer, a tablet PC or other suitable computing device.
  • a personal computer for example, a desktop computer, a laptop computer, a tablet PC or other suitable computing device.
  • the electronic device 10 may be implemented as a PDA, wireless communication device, for example, a cellular telephone, embedded controllers or devices, for example, set top boxes, printing devices or other suitable devices or combination thereof and suitable for operating or interoperating with the invention.
  • the electronic device 10 may include at least one processor or CPU (Central Processing Unit) 12, configured to control the overall operation of the electronic device 10. Similar controllers or MPUs (Microprocessor Units) are commonplace.
  • the processor 12 may typically be coupled to a bus controller 14 such as a Northbridge chip by way of a bus 13 such as a FSB (Front-Side Bus).
  • the bus controller 14 may typically provide an interface for read- write system memory 16 such as RAM (random access memory).
  • CPU 12 may fetch computer instructions (also termed computer instruction codes, not shown in FIG. 1) from system memory 16. The CPU may then interpret the fetched computer instructions and operate to interpret the instructions thereby to control operation of the electronic device 10.
  • computer instructions also termed computer instruction codes, not shown in FIG. 1
  • OS Operating System
  • the bus controller 14 may also be coupled to a system bus 18, for example, a DMI (Direct Media Interface) in typical Intel® style embodiments. Coupled to the DMI 18 may be a so-called Southbridge chip, such as an Intel® ICH8 (Input/Output Controller Hub type 8) chip 24.
  • a DMI Direct Media Interface
  • Southbridge chip such as an Intel® ICH8 (Input/Output Controller Hub type 8) chip 24.
  • the Southbridge chip 24 may typically incorporate a first NIC (Network Interface Controller) 32, such as of the 1000 BASE-T type of IEEE 802.3 (Institute of Electrical and Electronics Engineers standard number 802.3) interface connecting to an 8PC8 31 (8 positions, 8 contacts) type of wired network connector.
  • NIC Network Interface Controller
  • An 8PC 8 connector 31 is colloquially known as an RJ45 port and IEEE 802.3 is colloquially known as Ethernet.
  • the Southbridge chip 24 may be connected to a PCI (peripheral component interconnect) bus 22,, which may, in turn, be connected to a second NIC 66 which drives a Wireless Transceiver 71.
  • Wireless Transceiver 71 may operate in compliance with IEEE 802.11 or other suitable standards. Wireless Transceiver 71 will typically be coupled to some form of radio antenna 72.
  • typically Southbridge chip 24 may also be coupled to a NVRAM (non- volatile random-access memory) 33.
  • NVRAM non- volatile random-access memory
  • Either or both NICs 32 and 66 may convey communications signals that are used to form logical network connections such as to an Internet Service.
  • a typical computer or similar electronic device 10 may have other interfaces, for example, a USB (Universal Serial Bus, which is not shown in FIG. 1) interface that may in turn connect to (for example) a Bluetooth® transceiver for other modes of communication within the general scope of the invention.
  • USB Universal Serial Bus
  • FIG. 2 is a flowchart illustrating an overview of some of the steps performed in implementing an embodiment of the invention.
  • the approach described in FIG. 2 is a simplification and serves as a useful overview of a superficial understanding of how a simple embodiment of an important part of the invention may operate.
  • BIOS defines the areas of memory that are usable by an OS and those areas that are reserved for BIOS use (for example, EBDA (extended BIOS data area), ACPI NVS (nonvolatile storage) or SMRAM (System Management Mode RAM)). Alternatively, some memory areas may be used by non-BIOS, but nonetheless, hardware directed services, for example, shared video memory.
  • BIOS then invokes OSM (OS Steering Module) which initializes memory including creating tables, saving base memory, saving ACPI NVS, PIC (programmable interrupt controller) values, hooks into E820 services to provide for custom maps, and the like. E820 services are well-known in the art.
  • OSM is derived from the well-known GRUB (Grand Unified Bootloader program) and incorporates a bootloader section. Thus, inter alia, a restorable hardware context is saved.
  • the bootloader section of OSM loads the first OS (operating system).
  • OS calls E820 services to determine which areas of physical main memory it can use and loads into that memory.
  • the BIOS service is aware of which OS is requesting E820 services (for example, based on the memory address of the caller, or on which OS was most recently loaded though use of those criteria are merely examples) and presents a customized memory map responsive thereto.
  • the first OS is loaded into a restricted (relatively small) memory partition and then runs application programs.
  • a start is made on a procedure leading to entering a save state, by using the request for ACPI S3 State (or save-to-RAM services or something similar) included in each OS.
  • the OS saves the state of every device for which the OS has a driver program, for example, the saving may be into a memory buffer.
  • the OS may also flush pending data, typically out to disk
  • the exemplary OS writes a specific value to an ACPI controlled register PMl CNT, thereby indicating that the OS and platform context is requested to imminently transition to ACPI System State S3.
  • ACPI System States are well-known in the art.
  • the write to the PMl CNT register described above may be trapped by the OSM (at step 240) which, having acquired control of the platform execution, then makes a determination that the request is for a context switch (as contrasted with a platform sleep state). In an embodiment of the invention, the determination is made responsive to a control bit in OSM data tables.
  • Previous developed techniques are typically sufficient to cater for specifically multiprocessor aspects of platform integrity. Wake vectors are stored in the manner customary for entering ACPI State S3.
  • step 250 the hardware context that was saved in step 200 is reinstated. This brings the platform substantially back to its initial hardware state in preparation for loading a second OS.
  • the main memory map is not recreated, rather, the OSM ensures that when E820 services are next invoked it will be known by BIOS that the second OS is active. The second OS is then loaded and entered.
  • the second OS invokes BIOS service E820 which is aware of which OS is requesting E820 services.
  • the E820 memory map returned excludes the restricted memory partition that was set aside for the first OS and may typically include the residue of available physical RAM.
  • the second OS then completes its own initialization and runs application programs.
  • the second OS responsive to a stimulus that makes desirable a return to a context of the first OS (and applications running under it) becoming active, invokes an ACPI function "change state to S3" function, such as by writing again to the PMl CNT ACPI register..
  • the second OS may request entry State S3 either responsive to a request to switch to the first OS (such as by a custom key combination). Alternately, the second OS may choose to request imminent entry of S3 mode for an unrelated reason (such as responsive to an inactivity timer).
  • the means for invoking them will also take an action that allows the OSM to make a determination that the request was pursuant to an express wish to change OS context; this will typically involve placing a value in a register visible to BIOS, e.g., one way of doing just that is to invoke a BIOS service created for that express purpose. Creating and using such simple BIOS services to designate mode of various kinds are well known in the art.
  • OSM takes control (typically by catching a write to PM1_CNT).
  • OSM creates a substantially complete saved hardware context and set of wake vectors for the context of the second OS. Typically, this may overwrite the context saved in step 200 as these are no longer needed.
  • a hardware context for the first OS (saved as described at step 240, above) is reloaded.
  • the first OS is reactivated using saved Wake Vectors. Since the memory map seen by the first OS excludes the memory dedicated to the second OS, there is no need to reload and/or reinitialize the first OS because it is still resident in memory. This avoidance of the need to reload and reinitialize OS offers a significant improvement over many previously developed solutions.
  • step 299 the process continues passing control to and fro between first and second OSes responsive to user-originated (or other, for example programmatic) requests for control transfer.
  • FIGS. 3 and 4 taken together are a somewhat more detailed flowchart illustrating an overview of some of the steps performed in implementing one particular embodiment of the invention in further detail. This embodiment should be regarded as purely exemplary and not as a generic description that limits the invention.
  • BIOS defines the areas of memory that are usable by an OS and those areas that are reserved for BIOS use (for example, EBDA (extended BIOS data area), ACPI NVS (non-volatile storage) or SMRAM (System Management Mode RAM)). Alternatively, some memory areas may be used by non-BIOS hardware services, for example, shared video memory. BIOS then invokes OSM (OS Steering Module) by INT 19 (Interrupt 19 is well known in the art for transferring control from BIOS to bootstrap loader).
  • OSM OS Steering Module
  • OSM initializes memory including creating tables, saving base memory, saving ACPI NVS, PIC (programmable interrupt controller) values, hooks into E820 services to provide for custom maps and the like.
  • PIC programmable interrupt controller
  • OSM invokes a GetBootOS service to select an OS for loading.
  • OSM selects HS (HyperSpaceTM, a product of Phoenix Technologies Ltd., which includes application programs and an OS architecturally similar to Linux®).
  • HS HyperSpaceTM, a product of Phoenix Technologies Ltd., which includes application programs and an OS architecturally similar to Linux®).
  • step 370 OSM loads and then transfers control to HS.
  • BIOS reserves a relatively small portion of memory for HS (256 Mebibytes in one exemplary implementation) and marks the space ARR (Address Range Reserved). In an implementation, BIOS will retain that space in the ARM (Address Range Memory) whenever the first caller of the E820 service following boot or reboot is not HS.
  • HS adapts its memory map to use the 256MByte ARR (Address Range Reserved) space. HS avoids loading into ARM or creating the heap within ARM - which behavior is contrary to normal Linux® practice.
  • ARR Address Range Reserved
  • HS runs user mode HyperSpaceTM applications.
  • step 3110 responsive to user stimulus (e.g. Hot Key depression) HS prepares for context switch.
  • user stimulus e.g. Hot Key depression
  • the HDD hard disc drive controller and subsystem
  • the HDD hard disc drive controller and subsystem
  • HS writes to an ACPI register (e.g. PMl CNT) which is used in previously developed OSes to request a switch to ACPI System mode S3.
  • ACPI modes are well known in the art.
  • step 3140 the write to PMl CNT is intercepted by OSM having been hooked by OSM during initialization.
  • HS saves Wake Vectors and registers and other information such as PIC and Timer setting for later returning to the active state (SO state in HS context). These are held separately from the PIC settings etc. stored prior to HS being loaded.
  • the OSM GetBootOS service selects the next OS to be loaded (i.e. a non-HS OS).
  • this non-HS OS is the Microsoft® Vista® OS.
  • control is returned to OSM via Int 19 (interrupt 19), which again invokes the OSM GetBootOS service to select an OS for loading.
  • step 3180 the settings etc. that were stored prior to HS being loaded are reinstated.
  • OSM launches the load of the second OS (Vista® in the exemplary embodiment).
  • the second OS is not aware of the special space reserved for HS by the E820 service routine in BIOS so it will confine itself to ARM areas and thus not overwrite HS in physical memory by being loaded into an entirely separate portion of physical system memory. This will typically not create a resource problem since the memory requires of HS are modest (typically 256 Mebibytes) as compared with a typical second OS (probably in excess of 1.5 Gibibytes or more).
  • computer instructions to be incorporated into an electronic device 10 may be distributed as manufactured firmware and/or software computer products 510 using a variety of possible media 530 having the instructions recorded thereon such as by using a storage recorder 520.
  • more than one medium may be used, both in distribution and in manufacturing relevant product. Only one medium is shown in FIG.5 for clarity but more than one medium may be used and a single computer product may be divided among a plurality of media.
  • FIG. 6 shows how an exemplary embodiment of the invention may be encoded, transmitted, received and decoded using electro-magnetic waves.
  • computer products 610 may be distributed by encoding them into signals modulated as a wave.
  • the resulting waveforms may then be transmitted by a transmitter 640, propagated as tangible modulated electro-magnetic carrier waves 650 and received by a receiver 660.
  • Upon reception they may be demodulated and the signal decoded into a further version or copy of the computer product 611 in a memory or other storage device that is part of a second electronic device 11 and typically similar in nature to electronic device 10.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

Methods, systems, apparatuses and program products are disclosed for managing multiple OSes within a single computer and the like. Provision is made for swapping OSes with BIOS assistance and conforming with ACPI features for System State management especially as related to ACPI system sleep State S3.

Description

LOADING OPERATING SYSTEMS USING MEMORY SEGMENTATION AND ACPI BASED CONTEXT SWITCH
FIELD OF THE INVENTION
[0001] The present invention generally relates to personal computers and devices sharing similar architectures, and more particularly relates to approaches for managing, activating and controlling a plurality of operating system environments and/or the like within a computing apparatus or within a single computer operational session or context.
BACKGROUND OF THE INVENTION
[0002] Modernly, the use of PCs (personal computers), including so-called laptop and notebook computers, is increasingly common and the computers themselves are of increasing power and complexity while decreasing thermal power.
[0003] A vast majority of PCs have a controlling software, for example, an OS (Operating System) such as Microsoft® Windows® Vista® or a like commercial product. Many varieties of OS are available largely due to the need to make design tradeoffs. In particular, feature richness with attendant complexity and size is traded off against (relatively) limited capabilities with increased speed (especially speed of operation and of load time).
[0004] Thus, a need has existed to provide for the use of multiple OS within a computer and various approaches, each with its own tradeoffs, have been used.
[0005] One approach, the so-called "dual-boot" approach, involves selecting and loading the desired OS from a relatively cold state. This has a disadvantage of slowness but has the advantage that resources are devoted, rather than shared or partitioned.
[0006] Other approaches can involve virtualization, which have the advantage of providing for rapid switches between OS environments, but there is a disadvantage in that the most complex and popular OS softwares available are not designed to work well in virtualized environments and further tradeoffs and impacts result. Moreover, virtualization may require hardware features addressed thereto and hence be of relatively less universal application. Unfortunately, the vendors of complex OS software have little incentive to make their products work well in peaceful coexistence with simpler OS products through virtualization.
[0007] Simpler OS products have advantages beyond speed, for example, where such OS is "Open Source," the source code is smaller and hence more comprehensible. Moreover, less complex software tends to be less vulnerable to malware attack.
[0008] There are further alternatives to dual-boot and virtualization (with different again tradeoffs) and the present invention is related to such.
SUMMARY OF THE INVENTION
[0009] Embodiments of the invention provide for, among other things, approaches for providing OS steering (control) assistance in pursuit of the support of multiple OSes (Operating Systems).
[0010] The present invention provides a method for operating a computer for data communications and also an apparatus that embodies the method. In addition, program products and other means for exploiting the invention are presented.
[0011] According to an aspect of the present invention, an embodiment of the invention may provide for loading a first and second OS (operating system) into separate partitions of a system memory, executing an instruction request for a change of ACPI (Advanced Configuration and Power Interface) System State, restoring a saved hardware state of the computer, and transferring control between OSes.
[0012] An advantage and/or feature provided by or resulting from implementing the present invention is that control may be passed between multiple OSes (typically two OSes but optionally three or more) without need for either a lengthy reboot time or the disadvantages inherent in the use of virtualization techniques. Consequently, there is an appearance of "instant" switch between OSes, or at least a switching that is materially faster than previously developed implementations provided. Moreover, by incorporating the invention into a warm boot sequence, an instant-on service can be provided or approached. BRIEF DESCRIPTION OF THE DRAWINGS
[0013] The aforementioned and related advantages and features of embodiments of the present invention will become better understood and appreciated upon review of the following detailed description of the invention, taken in conjunction with the following drawings, which are incorporated in and constitute a part of the specification, illustrate an embodiment of the invention and wherein like numerals represent like elements, and in which:
[0014] FIG. 1 is a schematic block diagram of an electronic device configured to implement the security functionality according to an embodiment of the invention;
[0015] FIG. 2 is a flowchart illustrating an overview of some of the steps performed in implementing an embodiment of the invention;
[0016] FIGS. 3 and 4, taken together are a somewhat more detailed flowchart illustrating an overview of some of the steps performed in implementing an embodiment of the invention in further detail;
[0017] FIG. 5 is an illustration that shows how an exemplary embodiment of the invention may be encoded onto a computer medium or media; and
[0018] FIG. 6 is an illustration that shows how an exemplary embodiment of the invention may be encoded, transmitted, received and decoded using electro-magnetic waves.
DETAILED DESCRIPTION OF THE INVENTION
[0019] The numerous components shown in the drawings are presented to provide a person of ordinary skill in the art a thorough, enabling disclosure of embodiments of the present invention. The description of well known components is not included within this description so as not to obscure the disclosure or take away or otherwise reduce the novelty of embodiments of the present invention and the main benefits provided thereby.
[0020] An exemplary embodiment of the present invention will now be described with reference to the figures. FIG. 1 is a schematic block diagram of an electronic device configured to implement the security functionality according to an embodiment of the invention.
[0021] In an exemplary embodiment, the electronic device 10 may be implemented as a personal computer, for example, a desktop computer, a laptop computer, a tablet PC or other suitable computing device. Although the description outlines the operation of a personal computer, it will be appreciated by those of ordinary skill in the art, that the electronic device 10 may be implemented as a PDA, wireless communication device, for example, a cellular telephone, embedded controllers or devices, for example, set top boxes, printing devices or other suitable devices or combination thereof and suitable for operating or interoperating with the invention.
[0022] The electronic device 10 may include at least one processor or CPU (Central Processing Unit) 12, configured to control the overall operation of the electronic device 10. Similar controllers or MPUs (Microprocessor Units) are commonplace. The processor 12 may typically be coupled to a bus controller 14 such as a Northbridge chip by way of a bus 13 such as a FSB (Front-Side Bus). The bus controller 14 may typically provide an interface for read- write system memory 16 such as RAM (random access memory).
[0023] In ordinary operation, CPU 12 may fetch computer instructions (also termed computer instruction codes, not shown in FIG. 1) from system memory 16. The CPU may then interpret the fetched computer instructions and operate to interpret the instructions thereby to control operation of the electronic device 10. Such use of CPU, system memory and computer instructions that typically comprise OS (Operating System) codes and other software are well known in the computing arts.
[0024] The bus controller 14 may also be coupled to a system bus 18, for example, a DMI (Direct Media Interface) in typical Intel® style embodiments. Coupled to the DMI 18 may be a so-called Southbridge chip, such as an Intel® ICH8 (Input/Output Controller Hub type 8) chip 24.
[0025] The Southbridge chip 24 may typically incorporate a first NIC (Network Interface Controller) 32, such as of the 1000 BASE-T type of IEEE 802.3 (Institute of Electrical and Electronics Engineers standard number 802.3) interface connecting to an 8PC8 31 (8 positions, 8 contacts) type of wired network connector. An 8PC 8 connector 31 is colloquially known as an RJ45 port and IEEE 802.3 is colloquially known as Ethernet.
[0026] In a typical embodiment, the Southbridge chip 24 may be connected to a PCI (peripheral component interconnect) bus 22,, which may, in turn, be connected to a second NIC 66 which drives a Wireless Transceiver 71. Wireless Transceiver 71 may operate in compliance with IEEE 802.11 or other suitable standards. Wireless Transceiver 71 will typically be coupled to some form of radio antenna 72. Also, typically Southbridge chip 24 may also be coupled to a NVRAM (non- volatile random-access memory) 33.
[0027] Either or both NICs 32 and 66 may convey communications signals that are used to form logical network connections such as to an Internet Service. Indeed, a typical computer or similar electronic device 10 may have other interfaces, for example, a USB (Universal Serial Bus, which is not shown in FIG. 1) interface that may in turn connect to (for example) a Bluetooth® transceiver for other modes of communication within the general scope of the invention.
[0028] FIG. 2 is a flowchart illustrating an overview of some of the steps performed in implementing an embodiment of the invention. The approach described in FIG. 2 is a simplification and serves as a useful overview of a superficial understanding of how a simple embodiment of an important part of the invention may operate.
[0029] At step 200, execution of the pertinent part of BIOS instruction codes starts. As part of this step, BIOS defines the areas of memory that are usable by an OS and those areas that are reserved for BIOS use (for example, EBDA (extended BIOS data area), ACPI NVS (nonvolatile storage) or SMRAM (System Management Mode RAM)). Alternatively, some memory areas may be used by non-BIOS, but nonetheless, hardware directed services, for example, shared video memory. BIOS then invokes OSM (OS Steering Module) which initializes memory including creating tables, saving base memory, saving ACPI NVS, PIC (programmable interrupt controller) values, hooks into E820 services to provide for custom maps, and the like. E820 services are well-known in the art. In an embodiment of the invention, OSM is derived from the well-known GRUB (Grand Unified Bootloader program) and incorporates a bootloader section. Thus, inter alia, a restorable hardware context is saved.
[0030] At step 210, the bootloader section of OSM loads the first OS (operating system). OS calls E820 services to determine which areas of physical main memory it can use and loads into that memory. The BIOS service is aware of which OS is requesting E820 services (for example, based on the memory address of the caller, or on which OS was most recently loaded though use of those criteria are merely examples) and presents a customized memory map responsive thereto.
[0031] Typically, the first OS is loaded into a restricted (relatively small) memory partition and then runs application programs. At step 220, a start is made on a procedure leading to entering a save state, by using the request for ACPI S3 State (or save-to-RAM services or something similar) included in each OS.
[0032] At step 230, the OS saves the state of every device for which the OS has a driver program, for example, the saving may be into a memory buffer. The OS may also flush pending data, typically out to disk The exemplary OS writes a specific value to an ACPI controlled register PMl CNT, thereby indicating that the OS and platform context is requested to imminently transition to ACPI System State S3. ACPI System States are well-known in the art.
[0033] The write to the PMl CNT register described above may be trapped by the OSM (at step 240) which, having acquired control of the platform execution, then makes a determination that the request is for a context switch (as contrasted with a platform sleep state). In an embodiment of the invention, the determination is made responsive to a control bit in OSM data tables. Previously developed techniques are typically sufficient to cater for specifically multiprocessor aspects of platform integrity. Wake vectors are stored in the manner customary for entering ACPI State S3.
[0034] At this point the behavior of OSM diverges greatly from the similar (up to now) action involved in entering ACPI State S3. For, having taken many of the same actions that precede entering ACPI State S3, the OSM proceeds instead to create and save a further restorable hardware context and set of wake vectors in preparation for loading a second OS as described below. The process of creating a restorable hardware context and set of wake vectors is similar to that described in step 200, above.
[0035] At step 250, the hardware context that was saved in step 200 is reinstated. This brings the platform substantially back to its initial hardware state in preparation for loading a second OS. However, the main memory map is not recreated, rather, the OSM ensures that when E820 services are next invoked it will be known by BIOS that the second OS is active. The second OS is then loaded and entered.
[0036] At step 260, the second OS, as part of its normal initialization, invokes BIOS service E820 which is aware of which OS is requesting E820 services. The E820 memory map returned excludes the restricted memory partition that was set aside for the first OS and may typically include the residue of available physical RAM. The second OS then completes its own initialization and runs application programs. [0037] At step 270, responsive to a stimulus that makes desirable a return to a context of the first OS (and applications running under it) becoming active, the second OS invokes an ACPI function "change state to S3" function, such as by writing again to the PMl CNT ACPI register.. It may be noted that the second OS may request entry State S3 either responsive to a request to switch to the first OS (such as by a custom key combination). Alternately, the second OS may choose to request imminent entry of S3 mode for an unrelated reason (such as responsive to an inactivity timer). At step 275, and in general, though hooks to cause the second OS to enter S3 will be general purpose, the means for invoking them will also take an action that allows the OSM to make a determination that the request was pursuant to an express wish to change OS context; this will typically involve placing a value in a register visible to BIOS, e.g., one way of doing just that is to invoke a BIOS service created for that express purpose. Creating and using such simple BIOS services to designate mode of various kinds are well known in the art.
[0038] At step 280, in a manner similar to the behavior at step 240, OSM takes control (typically by catching a write to PM1_CNT). Thus, OSM creates a substantially complete saved hardware context and set of wake vectors for the context of the second OS. Typically, this may overwrite the context saved in step 200 as these are no longer needed.
[0039] At step 290, a hardware context for the first OS (saved as described at step 240, above) is reloaded. The first OS is reactivated using saved Wake Vectors. Since the memory map seen by the first OS excludes the memory dedicated to the second OS, there is no need to reload and/or reinitialize the first OS because it is still resident in memory. This avoidance of the need to reload and reinitialize OS offers a significant improvement over many previously developed solutions.
[0040] At step 299, the process continues passing control to and fro between first and second OSes responsive to user-originated (or other, for example programmatic) requests for control transfer.
[0041] FIGS. 3 and 4, taken together are a somewhat more detailed flowchart illustrating an overview of some of the steps performed in implementing one particular embodiment of the invention in further detail. This embodiment should be regarded as purely exemplary and not as a generic description that limits the invention. [0042] At step 300, as described in connection with FIG. 2, again execution of the pertinent part of BIOS instruction codes starts. As part of this step, BIOS defines the areas of memory that are usable by an OS and those areas that are reserved for BIOS use (for example, EBDA (extended BIOS data area), ACPI NVS (non-volatile storage) or SMRAM (System Management Mode RAM)). Alternatively, some memory areas may be used by non-BIOS hardware services, for example, shared video memory. BIOS then invokes OSM (OS Steering Module) by INT 19 (Interrupt 19 is well known in the art for transferring control from BIOS to bootstrap loader).
[0043] At step 320, OSM initializes memory including creating tables, saving base memory, saving ACPI NVS, PIC (programmable interrupt controller) values, hooks into E820 services to provide for custom maps and the like. Thus, inter alia, a restorable hardware context is saved.
[0044] At step 350, OSM invokes a GetBootOS service to select an OS for loading.
[0045] At step 360, OSM selects HS (HyperSpace™, a product of Phoenix Technologies Ltd., which includes application programs and an OS architecturally similar to Linux®).
[0046] At step 370, OSM loads and then transfers control to HS.
[0047] At step 380, HS discovers that OSM is loaded, and in real (or unreal) mode invokes the well-known BIOS E820 service (also described as int 15h call, AX == E820h). Knowing that the caller is HS, BIOS reserves a relatively small portion of memory for HS (256 Mebibytes in one exemplary implementation) and marks the space ARR (Address Range Reserved). In an implementation, BIOS will retain that space in the ARM (Address Range Memory) whenever the first caller of the E820 service following boot or reboot is not HS.
[0048] At step 390, HS adapts its memory map to use the 256MByte ARR (Address Range Reserved) space. HS avoids loading into ARM or creating the heap within ARM - which behavior is contrary to normal Linux® practice.
[0049] At step 3100, HS runs user mode HyperSpace™ applications.
[0050] At step 3110, responsive to user stimulus (e.g. Hot Key depression) HS prepares for context switch.
[0051] At step 3120, the HDD (hard disc drive controller and subsystem) are brought to a quiescent and data-flushed state in preparation for a system state change. [0052] At step 3130, HS writes to an ACPI register (e.g. PMl CNT) which is used in previously developed OSes to request a switch to ACPI System mode S3. ACPI modes are well known in the art.
[0053] At step 3140, the write to PMl CNT is intercepted by OSM having been hooked by OSM during initialization.
[0054] At step 3150, HS saves Wake Vectors and registers and other information such as PIC and Timer setting for later returning to the active state (SO state in HS context). These are held separately from the PIC settings etc. stored prior to HS being loaded.
[0055] At step 3160, the OSM GetBootOS service selects the next OS to be loaded (i.e. a non-HS OS). In an embodiment of the invention, this non-HS OS is the Microsoft® Vista® OS.
[0056] At step 3170, control is returned to OSM via Int 19 (interrupt 19), which again invokes the OSM GetBootOS service to select an OS for loading.
[0057] At step 3180, the settings etc. that were stored prior to HS being loaded are reinstated.
[0058] At step 3190, OSM launches the load of the second OS (Vista® in the exemplary embodiment). The second OS is not aware of the special space reserved for HS by the E820 service routine in BIOS so it will confine itself to ARM areas and thus not overwrite HS in physical memory by being loaded into an entirely separate portion of physical system memory. This will typically not create a resource problem since the memory requires of HS are modest (typically 256 Mebibytes) as compared with a typical second OS (probably in excess of 1.5 Gibibytes or more).
[0059] This completes the loading of the two OSes and brings the system ready to switch between them responsive to user request (such as Hot Key presses) or responsive to other programmatic stimulus.
It will be apparent to a programmer of ordinary skill in the art how to extend the above procedure to provide for to and fro switching between OSes. However, distinction is to be made between a desire to leave the second OS to return to the first OS and a desire to enter the sleep state since both involve catching a hooked write to the ACPI registers. Generally, this can be resolved programmatically with the OS with OSM catching whatever criterion is used to distinguish the two cases.
[0060] With regards to FIG.5, computer instructions to be incorporated into an electronic device 10 may be distributed as manufactured firmware and/or software computer products 510 using a variety of possible media 530 having the instructions recorded thereon such as by using a storage recorder 520. Often in products as complex as those that deploy the invention, more than one medium may be used, both in distribution and in manufacturing relevant product. Only one medium is shown in FIG.5 for clarity but more than one medium may be used and a single computer product may be divided among a plurality of media.
[0061] FIG. 6 shows how an exemplary embodiment of the invention may be encoded, transmitted, received and decoded using electro-magnetic waves.
[0062] With regard to FIG.6, additionally, and especially since the rise in Internet usage, computer products 610 may be distributed by encoding them into signals modulated as a wave. The resulting waveforms may then be transmitted by a transmitter 640, propagated as tangible modulated electro-magnetic carrier waves 650 and received by a receiver 660. Upon reception they may be demodulated and the signal decoded into a further version or copy of the computer product 611 in a memory or other storage device that is part of a second electronic device 11 and typically similar in nature to electronic device 10.
[0063] Other topologies and/or devices could also be used to construct alternative embodiments of the invention. The embodiments described above are exemplary rather than limiting and the bounds of the invention should be determined from the claims. Although preferred embodiments of the present invention have been described in detail hereinabove, it should be clearly understood that many variations and/or modifications of the basic inventive concepts herein taught which may appear to those skilled in the present art will still fall within the spirit and scope of the present invention, as defined in the appended claims.

Claims

CLAIMSWhat is claimed is:
1. A method of operating a computer, comprising: loading a first OS (operating system) into a first partition of a system memory; loading a second OS (operating system) into a second partition of the system memory; executing an instruction fetched from the second OS to request a change of ACPI (Advanced Configuration and Power Interface) System State; and responsive to the executing an instruction, (a) restoring a first saved hardware state of the computer, and (b) transferring control to the first OS.
2. The method of claim 1 , wherein: the first and second partitions are mutually exclusive.
3. The method of claim 1 , wherein: the System State is ACPI System State S3.
4. The method of claim 1 , wherein: the loading of the second OS is performed by an OSM (operating system steering module) comprising a bootloader and is performed responsive to an ACPI request instruction sequence in the first OS.
5. The method of claim 4, wherein:
the loader invokes a BIOS (Basic Input-Output System) service to select a next OS to be loaded by the bootloader.
6. The method of claim 4, wherein:
the loader invokes a BIOS (Basic Input-Output System) service to store the first saved hardware state of the computer and further to store a plurality of Wake Vectors.
7. The method of claim 1 , wherein:
the first partition and the second partition are formed by an E820 service routine.
8. The method of claim 7, wherein: the first partition is of an ARR (Address Range Reserved) type and the second partition is of an ARM (Address Range Memory) type.
9. The method of claim 1, further comprising: responsive to executing an instruction fetched from the first partition, restoring a second saved hardware state of the computer and
transferring control to the second OS.
10. The method of claim 9, further comprising: page swapping a portion of the second partition of system memory to a disk; adding the swapped portion of system memory to a software heap controlled by the first OS; and
reinstating the swapped portion of system memory to the first partition after the executing an instruction fetched from the first partition and before the transferring control to the second OS.
11. A computer program product comprising:
at least one computer-readable medium having instructions encoded therein, the instructions when executed by at least one processor cause said at least one processor to operate by steps comprising the acts of:
loading a first OS (operating system) into a first partition of a system memory;
loading a second OS (operating system) into a second partition of a system memory;
executing an instruction fetched from the second OS to request a change of ACPI (Advanced Configuration and Power Interface) System State; and
responsive to the executing an instruction, (a) restoring a first saved hardware state of the computer, and (b) transferring control to the first OS.
12. The computer program product of claim 11 , wherein:
the first and second partitions are mutually exclusive and the loading of the second OS is performed by a loader and is performed responsive to an ACPI request instruction sequence in the first OS.
13. The computer program product of claim 11 , wherein: the loading of the second OS is performed by a loader and is performed responsive to an ACPI request instruction sequence in the first OS and the loader invokes a BIOS (Basic Input-Output System) service to select the next OS to be loaded.
14. A method, comprising: an act of modulating a signal onto an electro-magnetic carrier wave impressed into a tangible medium, or of demodulating the signal from the electro- magnetic carrier wave, the signal having instructions encoded therein, the instructions when executed by at least one processor causing said at least one processor to: operate by steps comprising the acts of: loading a first OS (operating system) into a first partition of a system memory; loading a second OS (operating system) into a second partition of a system memory; executing an instruction fetched from the second OS to request a change of ACPI (Advanced Configuration and Power Interface) System State; and responsive to the executing an instruction, (a) restoring a first saved hardware state of the computer, and (b) transferring control to the first OS.
15. An electronic device, comprising: a controller; and a first system memory having instructions encoded therein, the instructions when executed by the controller cause said controller to operate by steps comprising the acts of: loading a first OS (operating system) into a first partition of the first system memory or a second system memory; loading a second OS (operating system) into a second partition of the first system memory or a second system memory; executing an instruction fetched from the second OS to request a change of ACPI (Advanced Configuration and Power Interface) System State; and responsive to the executing an instruction, (a) restoring a first saved hardware state of the computer, and (b) transferring control to the first OS.
16. The electronic device of claim 15, wherein the first and second partitions are mutually exclusive.
17. The electronic device of claim 15, wherein: the System State is ACPI System State S3.
18. The electronic device of claim 15, wherein: the loading of the second OS is performed by a loader and is performed responsive to an ACPI request instruction sequence in the first OS.
19. The electronic device of claim 15, wherein: an OSM (OS steering module) invokes a BIOS (Basic Input-Output System) service to load a selected OS wherein the selected OS is the first OS or the second OS.
20. The electronic device of claim 15, wherein the acts further comprise: responsive to executing an instruction fetched from the first partition, restoring a second saved hardware state of the computer and transferring control to the second OS.
PCT/US2010/027430 2009-03-20 2010-03-16 Loading operating systems using memory segmentation and acpi based context switch WO2010107757A1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP10715621A EP2409227A1 (en) 2009-03-20 2010-03-16 Loading operating systems using memory segmentation and acpi based context switch
CN201080012607.1A CN102369510B (en) 2009-03-20 2010-03-16 Use memory fragmentation and the context based on ACPI to switch and load operating system
BRPI1006211-4A BRPI1006211B1 (en) 2009-03-20 2010-03-16 METHOD FOR OPERATING A COMPUTER, NON-TRANSITIONAL MEDIA READ OUT BY COMPUTER, AND ELECTRONIC DEVICE

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US21057809P 2009-03-20 2009-03-20
US61/210,578 2009-03-20
US12/459,953 2009-07-10
US12/459,953 US8327174B2 (en) 2009-03-20 2009-07-10 Loading operating systems using memory segmentation and ACPI based context switch

Publications (1)

Publication Number Publication Date
WO2010107757A1 true WO2010107757A1 (en) 2010-09-23

Family

ID=42738621

Family Applications (2)

Application Number Title Priority Date Filing Date
PCT/US2010/027430 WO2010107757A1 (en) 2009-03-20 2010-03-16 Loading operating systems using memory segmentation and acpi based context switch
PCT/US2010/027428 WO2010107755A1 (en) 2009-03-20 2010-03-16 Inter operating system memory hotswap to support memory growth in a non-virtualized system

Family Applications After (1)

Application Number Title Priority Date Filing Date
PCT/US2010/027428 WO2010107755A1 (en) 2009-03-20 2010-03-16 Inter operating system memory hotswap to support memory growth in a non-virtualized system

Country Status (6)

Country Link
US (2) US8489847B2 (en)
EP (2) EP2409234B1 (en)
KR (2) KR101620655B1 (en)
CN (2) CN102439573B (en)
BR (1) BRPI1006211B1 (en)
WO (2) WO2010107757A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015142567A1 (en) * 2014-03-20 2015-09-24 Intel Corporation Techniques for switching between operating systems

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8522354B2 (en) * 2008-05-24 2013-08-27 Via Technologies, Inc. Microprocessor apparatus for secure on-die real-time clock
US8489847B2 (en) * 2009-03-20 2013-07-16 Hewlett-Packard Development Company, L.P. Inter operating system memory hotswap to support memory growth in a non-virtualized system
US8433889B2 (en) 2010-04-28 2013-04-30 Acer Cloud Technology, Inc. Operating system context switching
US20120297177A1 (en) * 2010-11-15 2012-11-22 Ghosh Anup K Hardware Assisted Operating System Switch
US8607040B2 (en) 2010-11-16 2013-12-10 Intel Corporation Method of provisioning firmware in an operating system (OS) absent services environment
CN102135910B (en) * 2011-03-03 2014-05-14 威盛电子股份有限公司 Method for switching operating systems and electronic device using same
TWI455027B (en) * 2011-07-29 2014-10-01 Via Tech Inc Method for switching between two system platforms and electronic apparatus supporting two system platforms
US20150347155A1 (en) * 2011-10-28 2015-12-03 Michael Rothman Switching between operational contexts
JP2014531099A (en) * 2011-10-28 2014-11-20 インテル・コーポレーション Switching operating context
US20150127916A1 (en) * 2012-04-25 2015-05-07 Hewlett-Packard Development Company, L.P. Dynamic memory allocation
US9600423B2 (en) * 2012-07-26 2017-03-21 Hewlett-Packard Development Company, L.P. Periodic access of a hardware resource
CN103116522B (en) * 2013-01-31 2016-09-07 广州海格通信集团股份有限公司 The kernel program dynamic switching method of dsp chip and control system
US9304780B2 (en) * 2013-10-18 2016-04-05 Google Inc. User initiated data rollback using operating system partitions
CN103713542A (en) * 2013-11-11 2014-04-09 青岛中科英泰商用系统有限公司 Multifunctional touch industrial tablet computer provided with emergency stop control switch and audio interface
US9582223B2 (en) * 2014-04-14 2017-02-28 International Business Machines Corporation Efficient reclamation of pre-allocated direct memory access (DMA) memory
EP3062225B1 (en) * 2015-02-24 2019-07-03 Huawei Technologies Co., Ltd. Multi-operating system device, notification device and methods thereof
CN106528453B (en) * 2015-09-10 2019-10-18 中国航空工业第六一八研究所 Page table partition management device and method based on compound scale page
KR102650828B1 (en) 2016-05-20 2024-03-26 삼성전자주식회사 Memory device shared by two or more processors and su|ystem incluing the same
US20180074967A1 (en) * 2016-09-09 2018-03-15 Sap Se Paging Mechanism for In-Memory Data Management System
US10838737B1 (en) * 2017-08-31 2020-11-17 American Megatrends International, Llc Restoration of memory content to restore machine state
US11720401B2 (en) * 2020-03-27 2023-08-08 Intel Corporation Reclaiming and reusing pre-boot reserved memory post-boot
KR20210156617A (en) * 2020-06-18 2021-12-27 삼성전자주식회사 Method for swapping data and electronic device supporting the same
CN112799521B (en) * 2021-03-29 2021-08-27 上海捷勃特机器人有限公司 Electronic device and method for operating electronic device

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1037133A1 (en) * 1999-03-15 2000-09-20 International Business Machines Corporation Method and apparatus for alternation between instances of operating systems in computer systems
US20070055860A1 (en) * 2005-09-07 2007-03-08 Szu-Chung Wang Method of fast booting for computer multimedia playing from standby mode
WO2007109145A2 (en) * 2006-03-16 2007-09-27 Ntt Docomo, Inc. Secure operating system switching
US20080189538A1 (en) * 2007-02-06 2008-08-07 Microsoft Corporation Supporting multiple operating systems in media devices

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6049854A (en) * 1997-05-09 2000-04-11 Vlsi Technology, Inc. System and method for sharing physical memory among distinct computer environments
US6772419B1 (en) * 1997-09-12 2004-08-03 Hitachi, Ltd. Multi OS configuration system having an interrupt process program executes independently of operation of the multi OS
US6763458B1 (en) * 1999-09-27 2004-07-13 Captaris, Inc. System and method for installing and servicing an operating system in a computer or information appliance
JP2001256066A (en) * 2000-02-29 2001-09-21 Internatl Business Mach Corp <Ibm> Computer system, switching system of operating system, mounting method of operating system, switching method of operating system, storage medium and program transmitter
US6988226B2 (en) * 2002-10-17 2006-01-17 Wind River Systems, Inc. Health monitoring system for a partitioned architecture
CN1658185A (en) * 2004-02-18 2005-08-24 国际商业机器公司 Computer system with mutual independence symbiont multiple eperation system and its switching method
KR100673681B1 (en) * 2004-03-25 2007-01-24 엘지전자 주식회사 Method for executing instant on function in personal computer
US7421533B2 (en) 2004-04-19 2008-09-02 Intel Corporation Method to manage memory in a platform with virtual machines
GB2418751A (en) 2004-10-02 2006-04-05 Hewlett Packard Development Co Managing memory across a plurality of partitions
US7882317B2 (en) * 2004-12-06 2011-02-01 Microsoft Corporation Process isolation using protection domains
US7529921B2 (en) * 2004-12-17 2009-05-05 Cardiac Pacemakers, Inc. Fast initialization of medical device system having multiple operating systems
US20060184938A1 (en) 2005-02-17 2006-08-17 Intel Corporation Method, apparatus and system for dynamically reassigning memory from one virtual machine to another
US7529923B2 (en) 2005-06-30 2009-05-05 Intel Corporation Operating system mode transfer
CN101387989A (en) * 2008-10-29 2009-03-18 北京世纪红山科技有限公司 Computer system and method for constructing virtual storage device based on sectorization management
US8239667B2 (en) * 2008-11-13 2012-08-07 Intel Corporation Switching between multiple operating systems (OSes) using sleep state management and sequestered re-baseable memory
US8489847B2 (en) 2009-03-20 2013-07-16 Hewlett-Packard Development Company, L.P. Inter operating system memory hotswap to support memory growth in a non-virtualized system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1037133A1 (en) * 1999-03-15 2000-09-20 International Business Machines Corporation Method and apparatus for alternation between instances of operating systems in computer systems
US20070055860A1 (en) * 2005-09-07 2007-03-08 Szu-Chung Wang Method of fast booting for computer multimedia playing from standby mode
WO2007109145A2 (en) * 2006-03-16 2007-09-27 Ntt Docomo, Inc. Secure operating system switching
US20080189538A1 (en) * 2007-02-06 2008-08-07 Microsoft Corporation Supporting multiple operating systems in media devices

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
NO AUTHOR NAME SUPPLIED IN SOURCE DATA: "Dynamic Resource Management For Hibernation Swapping of PRE-Hibernated OS Image", IP.COM JOURNAL, IP.COM INC., WEST HENRIETTA, NY, US, 29 September 2003 (2003-09-29), XP013013074, ISSN: 1533-0001 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015142567A1 (en) * 2014-03-20 2015-09-24 Intel Corporation Techniques for switching between operating systems

Also Published As

Publication number Publication date
CN102439573B (en) 2014-07-16
KR20110130435A (en) 2011-12-05
CN102369510B (en) 2016-06-22
BRPI1006211B1 (en) 2020-07-28
US8489847B2 (en) 2013-07-16
WO2010107755A1 (en) 2010-09-23
CN102369510A (en) 2012-03-07
BRPI1006211A2 (en) 2018-03-13
EP2409234B1 (en) 2016-09-28
KR101620655B1 (en) 2016-05-12
US20100241821A1 (en) 2010-09-23
US20100241839A1 (en) 2010-09-23
KR101602991B1 (en) 2016-03-11
EP2409227A1 (en) 2012-01-25
CN102439573A (en) 2012-05-02
EP2409234A1 (en) 2012-01-25
US8327174B2 (en) 2012-12-04
KR20120000089A (en) 2012-01-03

Similar Documents

Publication Publication Date Title
US8327174B2 (en) Loading operating systems using memory segmentation and ACPI based context switch
EP2189901B1 (en) Method and system to enable fast platform restart
US8533735B2 (en) System for execution context isolation in response to invoking a BIOS kernel function during a driver execution environment (DXE) phase of boot-up of a computer
EP2329365B1 (en) Turbo boot systems and methods
US9940291B2 (en) Assigning processors to memory mapped configuration
US7093116B2 (en) Methods and apparatus to operate in multiple phases of a basic input/output system (BIOS)
US9417886B2 (en) System and method for dynamically changing system behavior by modifying boot configuration data and registry entries
US9003174B2 (en) Method for boosting an electronic device with multiple processing units, and electronic device for implementing the same
CN105556461B (en) Techniques for pre-OS image rewriting to provide cross-architecture support, security introspection, and performance optimization
US20100017588A1 (en) System, method, and computer program product for providing an extended capability to a system
US11016923B1 (en) Configuring hot-inserted device via management controller
JP6050528B2 (en) Security coprocessor boot performance
US20160004539A1 (en) Operating environment switching between a primary and a secondary operating system
Sun et al. Supporting Multiple OSes with OS Switching.
US11675680B2 (en) Computing system initialization system
Sun et al. 2007 USENIX Annual Technical Conference

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 201080012607.1

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 10715621

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2010715621

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 20117021841

Country of ref document: KR

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

REG Reference to national code

Ref country code: BR

Ref legal event code: B01A

Ref document number: PI1006211

Country of ref document: BR

ENP Entry into the national phase

Ref document number: PI1006211

Country of ref document: BR

Kind code of ref document: A2

Effective date: 20110909