US20120023507A1 - Systems and methods for implementing a guest operating system on a host operating system - Google Patents
Systems and methods for implementing a guest operating system on a host operating system Download PDFInfo
- Publication number
- US20120023507A1 US20120023507A1 US12/842,473 US84247310A US2012023507A1 US 20120023507 A1 US20120023507 A1 US 20120023507A1 US 84247310 A US84247310 A US 84247310A US 2012023507 A1 US2012023507 A1 US 2012023507A1
- Authority
- US
- United States
- Prior art keywords
- operating system
- partition
- computer
- guest operating
- memory
- Prior art date
- Legal status (The legal status 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 status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45537—Provision of facilities of other operating environments, e.g. WINE
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45545—Guest-host, i.e. hypervisor is an application program itself, e.g. VirtualBox
Definitions
- An operating system is a set of system software programs in a computer system that regulate the ways application software programs use the computer hardware and the ways that users control the computer.
- operating system programs act as an intermediary between application programs and the computer hardware, although application programs can be executed directly by the hardware.
- a personal computer system (e.g., a micro-computer system) can be configured to execute a number of different operating systems.
- a personal computer system can execute a variety of different MICROSOFT® products, including WINDOWS XP®, WINDOWS 7®, WINDOWS SERVER® and WINDOWS HOME SERVER®.
- MICROSOFT® products including WINDOWS XP®, WINDOWS 7®, WINDOWS SERVER® and WINDOWS HOME SERVER®.
- Personal computer systems can also be configured to execute Linux, MAC OS X®, etc. Each operating system can provide specific features to a user of the computer system.
- FIG. 1 illustrates an example embodiment of a computer network system.
- FIG. 2 illustrates an example embodiment of a computer system.
- FIG. 3 illustrates an example embodiment of a flow chart of a methodology for implementing a guest operating system on a host operating system.
- FIG. 4 illustrates another example embodiment of a flow chart of a methodology for implementing a guest operating system on a host operating system.
- FIG. 5 illustrates yet another example embodiment of a flow chart of a methodology for implementing a guest operating system on a host operating system.
- FIG. 6 illustrates an example embodiment of a computer system that can be employed to implement systems and methods described herein.
- FIG. 1 illustrates an example embodiment of a computer network system 2 .
- the computer network system 2 can include a first computer 4 and a second computer 6 that can communicate over a network 8 .
- the first computer 4 and the second computer 6 could be implemented as personal computers (e.g., microcomputers).
- the network 8 could be implemented, for example, as a network employing transmission control protocol/internet protocol (TCP/IP), such as the Internet.
- TCP/IP transmission control protocol/internet protocol
- the first computer 4 can include a host operating system 10 executing thereon.
- the host operating system 10 can be implemented as an operating system that limits the functionally and/or access to and from an input/output (I/O) port 12 , such as a universal serial bus (USB) port, as discussed herein.
- I/O input/output
- the host operating system 10 can be implemented as MICROSOFT WINDOWS HOME SERVER®.
- the host operating system 10 can be installed on and/or associated with a server pool, which can be referred to as a first partition of the computer system's memory (e.g., one or more hard disk drives).
- the first partition of the memory can be implemented as a New Technology File System (NTFS). It is to be understood that the first partition can span multiple data storage components (e.g., multiple hard disk drives).
- NTFS New Technology File System
- a computer drive can be added to the operating system upon connection of a data drive 14 , such as a flash memory device (e.g., a USB flash drive) to the I/O port 12 .
- a data drive 14 such as a flash memory device (e.g., a USB flash drive)
- a drive letter can be added, and a window can be displayed that allows a user to transfer data to and from the data drive 14 .
- Other operating systems can be initially configured to register the connection of the data drive 14 , but otherwise, the data drive 14 is ignored.
- the only conventional way to access the drive space of the data drive 14 is to format (e.g., erase) the data space of the data drive 14 and merge the drive space of the data drive 14 with the data pool of the operating system which can include the first partition of the memory.
- a user cannot access data stored on the data drive 14 , since such data will either be ignored or erased.
- the other operating systems prevent read and write access to the data drive 14 if the data drive 14 has a partition separate from the first partition.
- the host operating system 10 on the first computer 4 is MICROSOFT WINDOWS HOME SERVER®.
- the host operating system 10 can have additional computer applications installed to enhance the functionality of the host operating system 10 .
- the added applications can be referred to an add-ins.
- the add-ins can be installed in a number of different ways. For instance, the add-ins could be installed through an Internet browser, a CD-ROM, a DVD, etc.
- One such add-in, which can be referred to as a virtualization add-in, installed into the host operating system 10 can repartition the memory to include at least two different partitions, namely the first partition and a second partition.
- the second partition can be implemented with the same file structure or a different file structure as the first partition.
- the second partition can be implemented as a Linux partition, such as ext, ext2, ext3, ext4, etc., although one of ordinary skill in the art will appreciate that other partition formats could be employed as well.
- the virtualization add-in can also install a computer application that creates a virtual machine (VM) 16 , such a VMWARE®.
- the VM 16 can be implemented as software implementation of a computer system that executes programs like a conventional hardware implemented computer system.
- the virtualization add-in can be configured to install a guest operating system 18 on the VM 16 .
- the guest operating system 18 can be implemented, for example, as Linux. Nearly any distribution of Linux could be employed as the guest operating system 18 , including DEBIAN®, RED HAT®, UBUNTO® and DAMN SMALL LINUXTM
- the guest operating system 18 can access the I/O port 12 . Therefore, the guest operating system 18 can provide full read/write access to the I/O port 12 . Accordingly, data stored on the data drive 14 connected to the I/O port 12 can be accessed by the guest operating system 18 without the need for further repartitioning of the memory.
- the data drive 14 can be configured to have a partition that is separate from the first partition and the second partition, and read write access to the data drive 14 is still provided.
- the guest operating system 18 can be implemented to include a virtual network adapter on the VM 16 that can access the network 8 .
- the virtualization add-in and the guest operating system 18 can be configured to create a network link between the VM 16 and the first computer 4 , such that the guest operating system 18 and the host operating system 10 can communicate.
- the network link provides read and write access to the data drive 14 , which access can be provided by employing the Samba protocol over the network link.
- the data drive 14 can be added as a “shared drive” to the host operating system 10 , such that a user of the host operating system 10 can write data to and read data from the data drive 14 seamlessly.
- the second computer 6 can establish a network link with the VM 16 and log into the guest operating system 18 , thereby opening a session with the guest operating system 18 .
- the guest operating system 18 can be configured to execute a remote desktop management system such as VIRTUAL NETWORK COMPUTING (VNC)TM to provide a remote user interface of the guest operating system 18 to the second computer 6 .
- VNC VIRTUAL NETWORK COMPUTING
- a user of the second computer 6 could be provided an interface (e.g., a virtual desktop) that would, for example, allow the user to configure the guest operating system 18 and/or transfer data from the data drive 14 of the first computer 4 to the second computer 6 over the network 8 .
- FIG. 2 illustrates an example embodiment of a computer system 50 .
- the computer system 50 can include, for example, a memory 52 for storing computer executable instructions and data.
- memory refers to both volatile memory (e.g., random access memory) and nonvolatile memories (e.g., a hard drive).
- a processing unit 54 e.g., one or more computer processors
- the computer system 50 also includes an I/O port 56 , such as a USB port.
- I/O port 56 such as a USB port.
- the computer system 50 via the processing unit 54 and the memory 52 , can execute a host operating system 58 .
- the host operating system 58 can be implemented as an operating system that limits the functionality and access to the I/O port 56 .
- the host operating system 58 is implemented as MICROSOFT WINDOWS HOME SERVER®.
- the host operating system 58 can be configured such that upon connection of a data drive 59 , such as a flash memory device (e.g., a USB flash drive) to the I/O port 56 , the host operating system 58 can register the connection of the data drive 59 , but otherwise, the data drive 59 is ignored.
- a data drive 59 such as a flash memory device (e.g., a USB flash drive)
- the only conventional way to access the drive space of the data drive 59 through the host operating system 58 is to format (e.g., erase) the data space of the data drive 59 and merge the data drive 59 with a partition associated with and accessible by the host operating system 58 .
- format e.g., erase
- a user cannot access data stored on the data drive 59 , as such data will either be ignored or erased.
- the host operating system 58 can be stored and associated with a first partition 60 in the memory 52 .
- the host operating system 58 can be initially configured such that the first partition 60 initially employs all of the memory 52 available in the computer system 50 .
- the first partition 60 can employ less than all of the memory 52 available in the computer system 50 .
- the first partition 60 can be implemented as an NTFS partition.
- the host operating system 58 can be configured to include a network connection 62 .
- the network connection 62 of the host operating system 58 can be implemented, for example, as a software module that interfaces with a network interface card (NIC).
- NIC network interface card
- the network connection 62 of the host operating system 58 can, for example, be assigned a network address, such as a TCP/IP address.
- the host operating system 58 can be configured to allow the installation of additional applications (e.g., computer programs), which can be referred to as add-ins.
- add-in which can be referred to as a virtualization add-in
- the second partition 64 can be implemented with the same or different file structure as the first partition.
- the second partition can be implemented as a native Linux partition, such as for example, ext.
- the virtualization add-in can be configured to install a VM 66 , for example by executing VMWARE®, and to install Linux as a guest operating system 68 on the VM 66 .
- the guest operating system 68 can be installed on and associated with the second partition 64 .
- the guest operating system 68 can establish a network connection 70 that operates in a similar manner as the network connection 62 of the host operating system 58 .
- the guest operating system 68 can be assigned its own unique network address.
- the computer system 50 can be assigned two different network (e.g. TCP/IP) addresses, one network address for the network connection 62 of the host operating system 58 and one network address for the network connection 70 of the guest operating system 68 .
- the guest operating system 68 and the virtualization add-in of the host operating system 58 can be configured to establish a network link between the guest operating system 68 and the host operating system 58 .
- the guest operating system 68 and the virtualization add-in can be configured such that, upon detection of the connection of the data drive 59 to the I/O port 56 , data can be transferred between the data drive 59 and the first partition 60 through the network link between the guest operating system 68 and the host operating system 58 .
- the network link can employ, for example the Samba protocol, but one of ordinary skill in the art will understand and appreciate that other protocols could be employed as well.
- a second computer system could be configured to establish a network link with the network connection 70 of the guest operating system 68 .
- a user of the second computer can log into the guest operating system 68 to initiate a session.
- the guest operating system 68 and the virtualization add-in of the host operating system 58 can be configured to provide remote control of the guest operating system 68 by employing a remote desktop management application such as VNCTM.
- VNCTM remote desktop management application
- the user of the second computer can configure the guest operating system 68 .
- the user of the second computer can access files in the first partition 60 or the second partition 64 of the memory 52 or files stored on the data drive 59 by employing transfer protocols such as Samba, FTP, etc.
- FIGS. 3-5 illustrate example embodiments of flow charts of methodologies. It is to be understood and appreciated that the illustrated actions, in other embodiments, may occur in different orders and/or concurrently with other actions. Moreover, not all illustrated features may be required to implement the methodologies.
- FIG. 3 illustrates an example embodiment of a flow chart of a methodology 200 for implementing a guest operating system on a host operating system.
- a VM can be installed on a computer system that is executing the host operating system.
- the memory of the computer system can be partitioned such that the host operating system can be associated with a first partition of the memory and the VM can be associated with a second partition of the memory.
- the host operating system can be configured to limit functionality and access to an I/O port (e.g., a USB port) of the computer system.
- the host operating system can be initially configured to prevent reading and writing data to a data drive connected to the I/O port unless the drive space of the data drive 59 is merged with the first partition.
- the guest operating system can be installed on the second partition.
- a network link can be established between the guest operating system and the host operating system.
- a data drive can be coupled to the I/O port.
- data on the data drive can be transferred to a partition associated with the host operating system, namely the first partition.
- the guest operating system can be accessed remotely, for example, by a remote computer.
- the remote accessing can include, for example, the remote computer remotely logging into and creating a session in the guest operating system.
- the guest operating system can access the host operating system through the network link between the guest operating system and the host operating system.
- the accessing can include, for example, executing a desktop management system that controls a desktop interface of the guest operating system.
- the guest operating system can provide the interface of the guest operating system to the remote computer.
- FIG. 4 illustrates another example embodiment a flow chart of a methodology 300 for implementing a guest operating system on a host operating system.
- a VM can be installed on a computer system that is executing the host operating system.
- the host operating system can be configured to limit functionality and access to an I/O port (e.g., a USB port) of the computer system.
- I/O port e.g., a USB port
- memory of the computer system can be partitioned such that the host operating system can be associated with a first partition of the memory and the VM can be associated with a second partition of the memory.
- the guest operating system can be installed on the second partition, such that the guest operating system can be associated with the second partition of the memory.
- FIG. 5 illustrates yet another example embodiment of a flow chart of a methodology 400 for implementing a guest operating system on a host operating system.
- the memory of a computer system can be partitioned into a first partition and a second partition, such that the host operating system accesses the first partition.
- the host operating system can be initially configured to prevent read and write access to data stored on a data drive connected to an I/O port of the computer system if the data drive has a partition separate from the first partition of the memory.
- a VM can be installed on a computer system as an application of the host operating system, such that the VM can be configured to access the second partition of the memory.
- the guest operating system can be installed on the virtual machine, and the guest operating system accesses the second partition of the memory.
- the guest operating system can detect the data drive connected to the I/O port.
- data stored on the data drive can be transferred to the first partition of the memory.
- FIG. 6 illustrates an example embodiment a computer system 500 that can be employed to implement systems and methods described herein, such as based on computer executable instructions running on the computer system.
- the computer system 500 can be implemented on one or more general purpose networked computer systems, embedded computer systems, routers, switches, server devices, client devices, various intermediate devices/nodes and/or stand alone computer systems. Additionally, the computer system 500 can be implemented as part of the computer systems 4 , 6 and 50 illustrated in FIGS. 1 and 2 executing both a host operating system and a guest operating system running computer executable instructions to perform a method as described herein.
- the computer system 500 includes a processor 502 and a system memory 504 .
- a system bus 506 couples various system components, including the system memory 504 to the processor 502 . Dual microprocessors and other multi-processor architectures can also be utilized as the processor 502 .
- the system bus 506 can be implemented as any of several types of bus structures, including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures.
- the system memory 504 includes read only memory (ROM) 508 and random access memory (RAM) 510 .
- a basic input/output system (BIOS) 512 can reside in the ROM 508 , generally containing the basic routines that help to transfer information between elements within the computer system 500 , such as a reset or power-up.
- the computer system 500 can include a hard disk drive 514 , a magnetic disk drive 516 , e.g., to read from or write to a removable disk 518 , and an optical disk drive 520 , e.g., for reading a CD-ROM or DVD disk 522 or to read from or write to other optical media.
- the hard disk drive 514 , magnetic disk drive 516 , and optical disk drive 520 are connected to the system bus 506 by a hard disk drive interface 524 , a magnetic disk drive interface 526 , and an optical drive interface 534 , respectively.
- the drives and their associated computer-readable media provide nonvolatile storage of data, data structures, and computer-executable instructions for the computer system 500 .
- computer-readable media refers to a hard disk, a removable magnetic disk and a CD
- other types of media which are readable by a computer may also be used.
- computer executable instructions for implementing systems and methods described herein may also be stored in magnetic cassettes, flash memory cards, digital video disks and the like.
- a number of program modules may also be stored in one or more of the drives as well as in the RAM 510 , including an operating system 530 , one or more application programs 532 , other program modules 534 , and program data 536 such as the systems and methods as illustrated in FIGS. 1-5 .
- the computer system 500 can be employed to implement the first or second computer 4 and 6 systems illustrated in FIG. 1 .
- a user may enter commands and information into the computer system 500 through user input device 540 , such as a keyboard, a pointing device (e.g., a mouse).
- Other input devices may include a microphone, a joystick, a game pad, a scanner, a touch screen, etc.
- These and other input devices are often connected to the processor 502 through a corresponding interface or bus 542 that can be coupled to the system bus 506 .
- Such input devices can alternatively be connected to the system bus 506 by other interfaces, such as a parallel port, a serial port or a universal serial bus (USB).
- One or more output device(s) 544 such as a visual display device or printer, can also be connected to the system bus 506 via an interface or adapter 546 .
- the computer system 500 may operate in a networked environment using logical connections 548 to one or more remote computers 550 .
- the remote computer 548 may be a workstation, a computer system, a router, a peer device or other common network node, and typically includes many or all of the elements described relative to the computer system 500 .
- the logical connections 548 can include a local area network (LAN) and a wide area network (WAN).
- the second computer system 6 illustrated in FIG. 1 could be implemented as a remote computer 550 .
- the computer system 500 When used in a LAN networking environment, the computer system 500 can be connected to a local network through a network interface 552 . When used in a WAN networking environment, the computer system 500 can include a modem (not shown), or can be connected to a communications server via a LAN. In a networked environment, application programs 532 and program data 536 depicted relative to the computer system 500 , or portions thereof, may be stored in memory 554 of the remote computer 550 .
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
Description
- General purpose computer systems typically execute an operating system. An operating system is a set of system software programs in a computer system that regulate the ways application software programs use the computer hardware and the ways that users control the computer. For hardware functions such as input/output and memory space allocation, operating system programs act as an intermediary between application programs and the computer hardware, although application programs can be executed directly by the hardware.
- A personal computer system (e.g., a micro-computer system) can be configured to execute a number of different operating systems. For example, a personal computer system can execute a variety of different MICROSOFT® products, including WINDOWS XP®, WINDOWS 7®, WINDOWS SERVER® and WINDOWS HOME SERVER®. Personal computer systems can also be configured to execute Linux, MAC OS X®, etc. Each operating system can provide specific features to a user of the computer system.
-
FIG. 1 illustrates an example embodiment of a computer network system. -
FIG. 2 illustrates an example embodiment of a computer system. -
FIG. 3 illustrates an example embodiment of a flow chart of a methodology for implementing a guest operating system on a host operating system. -
FIG. 4 illustrates another example embodiment of a flow chart of a methodology for implementing a guest operating system on a host operating system. -
FIG. 5 illustrates yet another example embodiment of a flow chart of a methodology for implementing a guest operating system on a host operating system. -
FIG. 6 illustrates an example embodiment of a computer system that can be employed to implement systems and methods described herein. -
FIG. 1 illustrates an example embodiment of acomputer network system 2. Thecomputer network system 2 can include afirst computer 4 and asecond computer 6 that can communicate over anetwork 8. Thefirst computer 4 and thesecond computer 6 could be implemented as personal computers (e.g., microcomputers). Thenetwork 8 could be implemented, for example, as a network employing transmission control protocol/internet protocol (TCP/IP), such as the Internet. - The
first computer 4 can include ahost operating system 10 executing thereon. Thehost operating system 10 can be implemented as an operating system that limits the functionally and/or access to and from an input/output (I/O)port 12, such as a universal serial bus (USB) port, as discussed herein. As one example, thehost operating system 10 can be implemented as MICROSOFT WINDOWS HOME SERVER®. Thehost operating system 10 can be installed on and/or associated with a server pool, which can be referred to as a first partition of the computer system's memory (e.g., one or more hard disk drives). In such a situation, the first partition of the memory can be implemented as a New Technology File System (NTFS). It is to be understood that the first partition can span multiple data storage components (e.g., multiple hard disk drives). - In a computer system executing certain operating systems, a computer drive can be added to the operating system upon connection of a
data drive 14, such as a flash memory device (e.g., a USB flash drive) to the I/O port 12. For instance, upon insertion of thedata drive 14 into a computer system executing MICROSOFT WINDOWS 7®, a drive letter can be added, and a window can be displayed that allows a user to transfer data to and from thedata drive 14. - Other operating systems, (e.g., MICROSOFT WINDOWS HOME SERVER®) can be initially configured to register the connection of the
data drive 14, but otherwise, thedata drive 14 is ignored. In such operating systems, the only conventional way to access the drive space of thedata drive 14 is to format (e.g., erase) the data space of thedata drive 14 and merge the drive space of thedata drive 14 with the data pool of the operating system which can include the first partition of the memory. Thus, in a computer executing one of the other operating systems, a user cannot access data stored on thedata drive 14, since such data will either be ignored or erased. Stated differently, the other operating systems prevent read and write access to thedata drive 14 if thedata drive 14 has a partition separate from the first partition. For purposes of simplification of explanation, it will be presumed that thehost operating system 10 on thefirst computer 4 is MICROSOFT WINDOWS HOME SERVER®. - As with most operating systems, the
host operating system 10 can have additional computer applications installed to enhance the functionality of thehost operating system 10. The added applications can be referred to an add-ins. The add-ins can be installed in a number of different ways. For instance, the add-ins could be installed through an Internet browser, a CD-ROM, a DVD, etc. One such add-in, which can be referred to as a virtualization add-in, installed into thehost operating system 10 can repartition the memory to include at least two different partitions, namely the first partition and a second partition. The second partition can be implemented with the same file structure or a different file structure as the first partition. For example, the second partition can be implemented as a Linux partition, such as ext, ext2, ext3, ext4, etc., although one of ordinary skill in the art will appreciate that other partition formats could be employed as well. Additionally, the virtualization add-in can also install a computer application that creates a virtual machine (VM) 16, such a VMWARE®. The VM 16 can be implemented as software implementation of a computer system that executes programs like a conventional hardware implemented computer system. The virtualization add-in can be configured to install aguest operating system 18 on theVM 16. Theguest operating system 18 can be implemented, for example, as Linux. Nearly any distribution of Linux could be employed as theguest operating system 18, including DEBIAN®, RED HAT®, UBUNTO® and DAMN SMALL LINUX™ - Through the
VM 16, theguest operating system 18 can access the I/O port 12. Therefore, theguest operating system 18 can provide full read/write access to the I/O port 12. Accordingly, data stored on thedata drive 14 connected to the I/O port 12 can be accessed by theguest operating system 18 without the need for further repartitioning of the memory. By implementing theguest operating system 18 in the manner described herein, thedata drive 14 can be configured to have a partition that is separate from the first partition and the second partition, and read write access to thedata drive 14 is still provided. Moreover, theguest operating system 18 can be implemented to include a virtual network adapter on the VM 16 that can access thenetwork 8. In such a situation, the virtualization add-in and theguest operating system 18 can be configured to create a network link between the VM 16 and thefirst computer 4, such that theguest operating system 18 and thehost operating system 10 can communicate. The network link provides read and write access to thedata drive 14, which access can be provided by employing the Samba protocol over the network link. In such a situation, thedata drive 14 can be added as a “shared drive” to thehost operating system 10, such that a user of thehost operating system 10 can write data to and read data from thedata drive 14 seamlessly. - Additionally or alternatively, the
second computer 6 can establish a network link with theVM 16 and log into theguest operating system 18, thereby opening a session with theguest operating system 18. Moreover, theguest operating system 18 can be configured to execute a remote desktop management system such as VIRTUAL NETWORK COMPUTING (VNC)™ to provide a remote user interface of theguest operating system 18 to thesecond computer 6. In such a situation, a user of thesecond computer 6 could be provided an interface (e.g., a virtual desktop) that would, for example, allow the user to configure theguest operating system 18 and/or transfer data from thedata drive 14 of thefirst computer 4 to thesecond computer 6 over thenetwork 8. -
FIG. 2 illustrates an example embodiment of acomputer system 50. Thecomputer system 50 can include, for example, amemory 52 for storing computer executable instructions and data. In the present example, it is understood that the term memory refers to both volatile memory (e.g., random access memory) and nonvolatile memories (e.g., a hard drive). A processing unit 54 (e.g., one or more computer processors) can access thememory 52 and execute computer executable instructions. Thecomputer system 50 also includes an I/O port 56, such as a USB port. For purposes of simplification of explanation, other well known computer hardware components (e.g., additional I/O ports, I/O controllers, etc.) have been omitted fromFIG. 2 , but are to be considered to be part of thecomputer system 50. - The
computer system 50, via theprocessing unit 54 and thememory 52, can execute ahost operating system 58. Thehost operating system 58 can be implemented as an operating system that limits the functionality and access to the I/O port 56. For the present example, it will be assumed that thehost operating system 58 is implemented as MICROSOFT WINDOWS HOME SERVER®. Thehost operating system 58 can be configured such that upon connection of adata drive 59, such as a flash memory device (e.g., a USB flash drive) to the I/O port 56, thehost operating system 58 can register the connection of the data drive 59, but otherwise, the data drive 59 is ignored. Moreover, the only conventional way to access the drive space of the data drive 59 through thehost operating system 58 is to format (e.g., erase) the data space of the data drive 59 and merge the data drive 59 with a partition associated with and accessible by thehost operating system 58. Thus, in a computer executing MICROSOFT WINDOWS HOME SERVER® as thehost operating system 58, a user cannot access data stored on the data drive 59, as such data will either be ignored or erased. - The
host operating system 58 can be stored and associated with afirst partition 60 in thememory 52. As one example, thehost operating system 58 can be initially configured such that thefirst partition 60 initially employs all of thememory 52 available in thecomputer system 50. In other implementations, thefirst partition 60 can employ less than all of thememory 52 available in thecomputer system 50. As one example, thefirst partition 60 can be implemented as an NTFS partition. - The
host operating system 58 can be configured to include anetwork connection 62. Thenetwork connection 62 of thehost operating system 58 can be implemented, for example, as a software module that interfaces with a network interface card (NIC). Thenetwork connection 62 of thehost operating system 58 can, for example, be assigned a network address, such as a TCP/IP address. - The
host operating system 58 can be configured to allow the installation of additional applications (e.g., computer programs), which can be referred to as add-ins. Once such add-in, which can be referred to as a virtualization add-in, can be configured to reconfigure (e.g., repartition) thememory 52 to include asecond partition 64. Thesecond partition 64 can be implemented with the same or different file structure as the first partition. As one example, the second partition can be implemented as a native Linux partition, such as for example, ext. Moreover, the virtualization add-in can be configured to install aVM 66, for example by executing VMWARE®, and to install Linux as aguest operating system 68 on theVM 66. Virtually any distribution of Linux can be employed. Theguest operating system 68 can be installed on and associated with thesecond partition 64. Theguest operating system 68 can establish anetwork connection 70 that operates in a similar manner as thenetwork connection 62 of thehost operating system 58. Moreover, theguest operating system 68 can be assigned its own unique network address. Thus, thecomputer system 50 can be assigned two different network (e.g. TCP/IP) addresses, one network address for thenetwork connection 62 of thehost operating system 58 and one network address for thenetwork connection 70 of theguest operating system 68. Moreover, theguest operating system 68 and the virtualization add-in of thehost operating system 58 can be configured to establish a network link between theguest operating system 68 and thehost operating system 58. - The
guest operating system 68 and the virtualization add-in can be configured such that, upon detection of the connection of the data drive 59 to the I/O port 56, data can be transferred between the data drive 59 and thefirst partition 60 through the network link between theguest operating system 68 and thehost operating system 58. In such a situation, the network link can employ, for example the Samba protocol, but one of ordinary skill in the art will understand and appreciate that other protocols could be employed as well. - Furthermore, it is considered that a second computer system (not shown) could be configured to establish a network link with the
network connection 70 of theguest operating system 68. In such a situation, a user of the second computer can log into theguest operating system 68 to initiate a session. Upon logging in, theguest operating system 68 and the virtualization add-in of thehost operating system 58 can be configured to provide remote control of theguest operating system 68 by employing a remote desktop management application such as VNC™. Thus, the user of the second computer can configure theguest operating system 68. Moreover, the user of the second computer can access files in thefirst partition 60 or thesecond partition 64 of thememory 52 or files stored on the data drive 59 by employing transfer protocols such as Samba, FTP, etc. -
FIGS. 3-5 illustrate example embodiments of flow charts of methodologies. It is to be understood and appreciated that the illustrated actions, in other embodiments, may occur in different orders and/or concurrently with other actions. Moreover, not all illustrated features may be required to implement the methodologies. -
FIG. 3 illustrates an example embodiment of a flow chart of amethodology 200 for implementing a guest operating system on a host operating system. At 210, a VM can be installed on a computer system that is executing the host operating system. At 220, the memory of the computer system can be partitioned such that the host operating system can be associated with a first partition of the memory and the VM can be associated with a second partition of the memory. The host operating system can be configured to limit functionality and access to an I/O port (e.g., a USB port) of the computer system. For instance, the host operating system can be initially configured to prevent reading and writing data to a data drive connected to the I/O port unless the drive space of the data drive 59 is merged with the first partition. At 230, the guest operating system can be installed on the second partition. - At 240, a network link can be established between the guest operating system and the host operating system. At 250, a data drive can be coupled to the I/O port. At 260, data on the data drive can be transferred to a partition associated with the host operating system, namely the first partition.
- At 270, the guest operating system can be accessed remotely, for example, by a remote computer. The remote accessing can include, for example, the remote computer remotely logging into and creating a session in the guest operating system. At 280, the guest operating system can access the host operating system through the network link between the guest operating system and the host operating system. The accessing can include, for example, executing a desktop management system that controls a desktop interface of the guest operating system. At 290, the guest operating system can provide the interface of the guest operating system to the remote computer.
-
FIG. 4 illustrates another example embodiment a flow chart of amethodology 300 for implementing a guest operating system on a host operating system. At 310, a VM can be installed on a computer system that is executing the host operating system. The host operating system can be configured to limit functionality and access to an I/O port (e.g., a USB port) of the computer system. At 320, memory of the computer system can be partitioned such that the host operating system can be associated with a first partition of the memory and the VM can be associated with a second partition of the memory. At 330, the guest operating system can be installed on the second partition, such that the guest operating system can be associated with the second partition of the memory. -
FIG. 5 illustrates yet another example embodiment of a flow chart of amethodology 400 for implementing a guest operating system on a host operating system. At 410, the memory of a computer system can be partitioned into a first partition and a second partition, such that the host operating system accesses the first partition. The host operating system can be initially configured to prevent read and write access to data stored on a data drive connected to an I/O port of the computer system if the data drive has a partition separate from the first partition of the memory. At 420, a VM can be installed on a computer system as an application of the host operating system, such that the VM can be configured to access the second partition of the memory. At 430, the guest operating system can be installed on the virtual machine, and the guest operating system accesses the second partition of the memory. At 440, the guest operating system can detect the data drive connected to the I/O port. At 450, data stored on the data drive can be transferred to the first partition of the memory. -
FIG. 6 illustrates an example embodiment acomputer system 500 that can be employed to implement systems and methods described herein, such as based on computer executable instructions running on the computer system. Thecomputer system 500 can be implemented on one or more general purpose networked computer systems, embedded computer systems, routers, switches, server devices, client devices, various intermediate devices/nodes and/or stand alone computer systems. Additionally, thecomputer system 500 can be implemented as part of thecomputer systems FIGS. 1 and 2 executing both a host operating system and a guest operating system running computer executable instructions to perform a method as described herein. - The
computer system 500 includes aprocessor 502 and asystem memory 504. Asystem bus 506 couples various system components, including thesystem memory 504 to theprocessor 502. Dual microprocessors and other multi-processor architectures can also be utilized as theprocessor 502. Thesystem bus 506 can be implemented as any of several types of bus structures, including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures. Thesystem memory 504 includes read only memory (ROM) 508 and random access memory (RAM) 510. A basic input/output system (BIOS) 512 can reside in theROM 508, generally containing the basic routines that help to transfer information between elements within thecomputer system 500, such as a reset or power-up. - The
computer system 500 can include ahard disk drive 514, amagnetic disk drive 516, e.g., to read from or write to aremovable disk 518, and anoptical disk drive 520, e.g., for reading a CD-ROM orDVD disk 522 or to read from or write to other optical media. Thehard disk drive 514,magnetic disk drive 516, andoptical disk drive 520 are connected to thesystem bus 506 by a harddisk drive interface 524, a magneticdisk drive interface 526, and anoptical drive interface 534, respectively. The drives and their associated computer-readable media provide nonvolatile storage of data, data structures, and computer-executable instructions for thecomputer system 500. Although the description of computer-readable media above refers to a hard disk, a removable magnetic disk and a CD, other types of media which are readable by a computer, may also be used. For example, computer executable instructions for implementing systems and methods described herein may also be stored in magnetic cassettes, flash memory cards, digital video disks and the like. - A number of program modules may also be stored in one or more of the drives as well as in the
RAM 510, including anoperating system 530, one ormore application programs 532,other program modules 534, andprogram data 536 such as the systems and methods as illustrated inFIGS. 1-5 . For example, thecomputer system 500 can be employed to implement the first orsecond computer FIG. 1 . - A user may enter commands and information into the
computer system 500 throughuser input device 540, such as a keyboard, a pointing device (e.g., a mouse). Other input devices may include a microphone, a joystick, a game pad, a scanner, a touch screen, etc. These and other input devices are often connected to theprocessor 502 through a corresponding interface orbus 542 that can be coupled to thesystem bus 506. Such input devices can alternatively be connected to thesystem bus 506 by other interfaces, such as a parallel port, a serial port or a universal serial bus (USB). One or more output device(s) 544, such as a visual display device or printer, can also be connected to thesystem bus 506 via an interface oradapter 546. - The
computer system 500 may operate in a networked environment usinglogical connections 548 to one or moreremote computers 550. Theremote computer 548 may be a workstation, a computer system, a router, a peer device or other common network node, and typically includes many or all of the elements described relative to thecomputer system 500. Thelogical connections 548 can include a local area network (LAN) and a wide area network (WAN). Thesecond computer system 6 illustrated inFIG. 1 could be implemented as aremote computer 550. - When used in a LAN networking environment, the
computer system 500 can be connected to a local network through anetwork interface 552. When used in a WAN networking environment, thecomputer system 500 can include a modem (not shown), or can be connected to a communications server via a LAN. In a networked environment,application programs 532 andprogram data 536 depicted relative to thecomputer system 500, or portions thereof, may be stored inmemory 554 of theremote computer 550. - What have been described above are examples of the present invention. It is, of course, not possible to describe every conceivable combination of components or methodologies for purposes of describing the present invention, but one of ordinary skill in the art will recognize that many further combinations and permutations of the present invention are possible. Accordingly, the present invention is intended to embrace all such alterations, modifications, and variations that fall within the scope of the appended claims.
Claims (16)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/842,473 US9141418B2 (en) | 2010-07-23 | 2010-07-23 | Systems and methods for implementing a guest operating system on a host operating system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/842,473 US9141418B2 (en) | 2010-07-23 | 2010-07-23 | Systems and methods for implementing a guest operating system on a host operating system |
Publications (2)
Publication Number | Publication Date |
---|---|
US20120023507A1 true US20120023507A1 (en) | 2012-01-26 |
US9141418B2 US9141418B2 (en) | 2015-09-22 |
Family
ID=45494608
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/842,473 Expired - Fee Related US9141418B2 (en) | 2010-07-23 | 2010-07-23 | Systems and methods for implementing a guest operating system on a host operating system |
Country Status (1)
Country | Link |
---|---|
US (1) | US9141418B2 (en) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120084381A1 (en) * | 2010-09-30 | 2012-04-05 | Microsoft Corporation | Virtual Desktop Configuration And Operation Techniques |
US20130318599A1 (en) * | 2012-05-25 | 2013-11-28 | Ca, Inc. | Protecting virtual machine console from misuse, hijacking or eavesdropping in cloud environments |
US8924958B1 (en) | 2011-05-24 | 2014-12-30 | BlueStack Systems, Inc. | Application player |
US9445392B1 (en) | 2011-10-07 | 2016-09-13 | BlueStack Systems, Inc. | Method of providing non-native notifications and system thereof |
US10089093B1 (en) | 2011-05-24 | 2018-10-02 | BlueStack Systems, Inc. | Apparatuses, systems and methods of switching operating systems |
US10095532B2 (en) | 2014-04-28 | 2018-10-09 | Netkine, Inc. | Providing excess compute resources with virtualization |
US20190215341A1 (en) * | 2018-01-10 | 2019-07-11 | Cisco Technology, Inc. | Fine granularity authorization control in fc-nvme storage area network |
US10791538B1 (en) * | 2011-07-06 | 2020-09-29 | BlueStack Systems, Inc. | Cloud-based data synchronization |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5901330A (en) * | 1997-03-13 | 1999-05-04 | Macronix International Co., Ltd. | In-circuit programming architecture with ROM and flash memory |
US20070294707A1 (en) * | 2006-06-15 | 2007-12-20 | Microsoft Corporation | Enhancing or replacing host operating system functionality by leveraging guest operating system functionality |
US20080086725A1 (en) * | 2006-10-10 | 2008-04-10 | Gregory Jensen Boss | Method of and System for Transferring Information |
US20080184218A1 (en) * | 2007-01-24 | 2008-07-31 | Kenneth Largman | Computer system architecture and method having isolated file system management for secure and reliable data processing |
US20090144510A1 (en) * | 2007-11-16 | 2009-06-04 | Vmware, Inc. | Vm inter-process communications |
US7620955B1 (en) * | 2001-06-08 | 2009-11-17 | Vmware, Inc. | High-performance virtual machine networking |
US20110307888A1 (en) * | 2010-06-15 | 2011-12-15 | Microsoft Corporation | Protection of virtual machines executing on a host device |
US8528059B1 (en) * | 2008-10-06 | 2013-09-03 | Goldman, Sachs & Co. | Apparatuses, methods and systems for a secure resource access and placement platform |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7400648B2 (en) | 2004-05-28 | 2008-07-15 | International Business Machines Corporation | Virtual USB communications port |
US8332846B2 (en) | 2008-02-28 | 2012-12-11 | Sony Mobile Communications Ab | Selective exposure to USB device functionality for a virtual machine by filtering descriptors |
US20090249329A1 (en) | 2008-03-25 | 2009-10-01 | Sambit Kumar Dash | Limited service life through virtualized service images |
US8578064B2 (en) | 2008-08-12 | 2013-11-05 | Moka5, Inc. | Interception and management of I/O operations on portable storage devices |
-
2010
- 2010-07-23 US US12/842,473 patent/US9141418B2/en not_active Expired - Fee Related
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5901330A (en) * | 1997-03-13 | 1999-05-04 | Macronix International Co., Ltd. | In-circuit programming architecture with ROM and flash memory |
US7620955B1 (en) * | 2001-06-08 | 2009-11-17 | Vmware, Inc. | High-performance virtual machine networking |
US20070294707A1 (en) * | 2006-06-15 | 2007-12-20 | Microsoft Corporation | Enhancing or replacing host operating system functionality by leveraging guest operating system functionality |
US20080086725A1 (en) * | 2006-10-10 | 2008-04-10 | Gregory Jensen Boss | Method of and System for Transferring Information |
US20080184218A1 (en) * | 2007-01-24 | 2008-07-31 | Kenneth Largman | Computer system architecture and method having isolated file system management for secure and reliable data processing |
US20090144510A1 (en) * | 2007-11-16 | 2009-06-04 | Vmware, Inc. | Vm inter-process communications |
US8528059B1 (en) * | 2008-10-06 | 2013-09-03 | Goldman, Sachs & Co. | Apparatuses, methods and systems for a secure resource access and placement platform |
US20110307888A1 (en) * | 2010-06-15 | 2011-12-15 | Microsoft Corporation | Protection of virtual machines executing on a host device |
Non-Patent Citations (2)
Title |
---|
MTe, Sharing files bewteen Ubuntu host and Virtual Machine, December 17, 2007, PP 1 - 4 * |
Russ, Sharing files between a Windows guest and Ubuntu host using VMware and Samba, April 22, 2007, PP 1 - 12. * |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120084381A1 (en) * | 2010-09-30 | 2012-04-05 | Microsoft Corporation | Virtual Desktop Configuration And Operation Techniques |
US8849941B2 (en) * | 2010-09-30 | 2014-09-30 | Microsoft Corporation | Virtual desktop configuration and operation techniques |
US8924958B1 (en) | 2011-05-24 | 2014-12-30 | BlueStack Systems, Inc. | Application player |
US10310892B1 (en) | 2011-05-24 | 2019-06-04 | BlueStack Systems, Inc. | Apparatuses, systems and methods of switching operating systems |
US10089093B1 (en) | 2011-05-24 | 2018-10-02 | BlueStack Systems, Inc. | Apparatuses, systems and methods of switching operating systems |
US10791538B1 (en) * | 2011-07-06 | 2020-09-29 | BlueStack Systems, Inc. | Cloud-based data synchronization |
US9804864B1 (en) | 2011-10-07 | 2017-10-31 | BlueStack Systems, Inc. | Method of mapping inputs and system thereof |
US9445392B1 (en) | 2011-10-07 | 2016-09-13 | BlueStack Systems, Inc. | Method of providing non-native notifications and system thereof |
US10255080B2 (en) | 2011-10-07 | 2019-04-09 | BlueStack Systems, Inc. | Method of providing non-native notifications and system thereof |
US8959623B2 (en) * | 2012-05-25 | 2015-02-17 | Ca, Inc. | Protecting virtual machine console from misuse, hijacking or eavesdropping in cloud environments |
US20130318599A1 (en) * | 2012-05-25 | 2013-11-28 | Ca, Inc. | Protecting virtual machine console from misuse, hijacking or eavesdropping in cloud environments |
US10095532B2 (en) | 2014-04-28 | 2018-10-09 | Netkine, Inc. | Providing excess compute resources with virtualization |
EP3137997A4 (en) * | 2014-04-28 | 2018-11-07 | Netkine, Inc. | Providing excess compute resources with virtualization |
US20190215341A1 (en) * | 2018-01-10 | 2019-07-11 | Cisco Technology, Inc. | Fine granularity authorization control in fc-nvme storage area network |
US10708309B2 (en) * | 2018-01-10 | 2020-07-07 | Cisco Technology, Inc. | Fine granularity authorization control in FC-NVMe storage area network |
Also Published As
Publication number | Publication date |
---|---|
US9141418B2 (en) | 2015-09-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9141418B2 (en) | Systems and methods for implementing a guest operating system on a host operating system | |
US10261800B2 (en) | Intelligent boot device selection and recovery | |
US8924703B2 (en) | Secure virtualization environment bootable from an external media device | |
US8612633B2 (en) | Virtual machine fast emulation assist | |
US8595723B2 (en) | Method and apparatus for configuring a hypervisor during a downtime state | |
JP4942966B2 (en) | Partition bus | |
US9317314B2 (en) | Techniques for migrating a virtual machine using shared storage | |
US9075541B2 (en) | Virtualizing storage for WPAR clients using node port ID virtualization | |
US20070050767A1 (en) | Method, apparatus and system for a virtual diskless client architecture | |
US9792136B2 (en) | Hardware assisted inter hypervisor partition data transfers | |
US11709692B2 (en) | Hot growing a cloud hosted block device | |
CN113312140B (en) | System, storage medium, and method for virtual trusted platform module | |
US8880582B2 (en) | User access to a partitionable server | |
CN113312141B (en) | Computer system, storage medium and method for offloading serial port simulation | |
US20140149977A1 (en) | Assigning a Virtual Processor Architecture for the Lifetime of a Software Application | |
US10394512B2 (en) | Multi-monitor alignment on a thin client | |
Németh | Computing resource optimization using open source virtualization technologies |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P., TEXAS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:TRAVIS, STEVEN L.;REEL/FRAME:024736/0430 Effective date: 20100723 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
FEPP | Fee payment procedure |
Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
LAPS | Lapse for failure to pay maintenance fees |
Free format text: PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
STCH | Information on status: patent discontinuation |
Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362 |
|
FP | Expired due to failure to pay maintenance fee |
Effective date: 20190922 |