cs和cf有什么区别| 一个口一个塞念什么| 宫颈癌是什么| 石斛的作用是什么| 1878年属什么生肖| 什么是渡劫| 阳朔有什么好玩的| 锋芒的意思是什么| 3月27号是什么星座| 什么的角| 全身皮肤瘙痒是什么原因引起的| 粉皮是什么做的| 举目无亲是什么生肖| 海边有什么| 做梦梦到鱼是什么意思| 主管护师是什么职称| 看脚趾头挂什么科| 腺管瘤是什么| 胃动力不足吃什么药| 嗓子发炎是什么原因引起的| 教诲的意思是什么| 肛门口瘙痒涂什么药膏| 7月29日是什么星座| 鼻孔干燥是什么原因| r表示什么| 一月2日是什么星座| 1月18日什么星座| 366红包代表什么意思| 若无其事的若是什么意思| 8个月宝宝吃什么辅食好| 火疖子是什么引起的| 喝菊花茶有什么功效| 什么样的人做什么样的事| 爱奇艺积分有什么用| soda是什么意思| 尿道口感染吃什么药| 90年是什么年| 什么叫应激反应| 香干是什么| 节源开流是什么意思| 肉卷炒什么菜好吃| 什么样的梅花| 嫣然是什么意思| 阵雨是什么意思| 迷瞪是什么意思| 去医院查怀孕挂什么科| 黄曲霉菌是什么颜色| 共襄盛举是什么意思| 栀子花开有什么寓意| 女孩子学什么专业| 让我随你去让我随你去是什么歌| 立秋当天吃什么| 从政是什么意思| 与自己和解什么意思| 9年是什么婚| 温水煮青蛙是什么意思| 小别胜新婚什么意思| 雨中漫步是什么意思| 别字是什么意思| 谷子是什么意思| 白细胞计数偏高是什么意思| 8月11日是什么星座| 尿酸高不能吃什么东西| 法令纹上有痣代表什么| 足跟痛用什么药| ldl是什么意思| 眩晕去医院挂什么科室| 电饭锅内胆什么材质好| 类风湿性关节炎吃什么药| 冲动是什么意思| 大姨妈是黑色是什么原因| 供血不足吃什么药好| 巨蟹座和什么座最配| 什么鸟好养又与人亲近| ysl属于什么档次| 都有什么菜好吃| 白细胞高是什么原因| 怀孕抽烟对孩子有什么影响| 为什么人会打喷嚏| 臭虫怕什么东西| 甲亢什么意思| 经费是什么意思| 脚后跟痒是什么原因| 什么惊什么怪| 什么叫道德绑架| acl是什么意思| 大小姐是什么意思| 喝什么茶清肺效果最好| 关帝是什么神| 后背酸痛是什么原因| 一听是什么意思| 耳鸣吃什么药最有效| 铁塔公司是干什么的| 什么东西辟邪| 花枝招展什么意思| 丙肝有什么症状表现| 航班是什么意思| 头疼呕吐吃什么药| 5月21日什么星座| 尿频尿急尿痛吃什么药| 后卫是干什么的| 智商105是什么水平| 什么是水马| 对数是什么| 冬天手脚冰凉是什么原因怎么调理| 百香果有什么作用| bpm是什么意思| 不约而至是什么意思| 罄竹难书的罄什么意思| 梦见来例假是什么预兆| 86年是属什么的| 满天星的花语是什么| 吃什么白细胞升的最快| 抗原体阳性是什么意思| 滑膜炎吃什么药最好| 2028年是什么年| pdc是什么意思| 痛风吃什么食物好得快| 为什么会得幽门螺旋杆菌| 惊恐发作是什么病| 6.15是什么日子| 小腿酸痛什么原因| 生态棉是什么面料| 牙龈发炎是什么原因| 蚊子为什么要吸血| 梦见头发白了是什么意思| 什么时候补钙最佳时间| 龙和什么生肖相冲| 经常口腔溃疡挂什么科| 欧莱雅适合什么年龄| 窦性心律吃什么药| 顾名思义的顾什么意思| 什么是k金| 考级有什么用| ict是什么意思| 脐下三寸是什么地方| 母亲节做什么| 人得布病什么症状| 醒酒喝什么| 老舍被誉为什么称号| 痔疮开刀后吃什么好| 空气净化器什么牌子好| 前列腺增生吃什么药见效快| 红红火火是什么生肖| 伤官伤尽是什么意思| 孩子流鼻血是什么原因| 惢是什么意思| 尿血是什么原因| 宫颈液基细胞学检查是什么| 低盐饮食有利于预防什么| 右边肚子疼是什么原因| 喝水都会胖是什么原因| 肾盂分离是什么意思| 清真食品是什么意思| 家有一老如有一宝是什么意思| 痰栓是什么| 4月6号是什么星座| 生鱼又叫什么鱼| 来月经喝什么好| 纯度是什么意思| pg在医学是什么意思| 相得益彰什么意思| 庚五行属什么| dic是什么| 转的第四笔是什么| 肺部占位性的病变指什么| 用什么洗脸可以美白| 泌尿系彩超主要是检查什么| 特别是什么意思| 腊肉炒什么最好吃| 黄麻是什么| 胆固醇是什么意思| 小人难防前一句是什么| 晚八点是什么时辰| 金生水什么意思| 四个火念什么| 新农合是什么| 甲状腺是什么意思| 什么是介质| 六点半是什么时辰| anti是什么意思| 最机灵的动物是什么生肖| 风寒是什么意思| 什么时候种大白菜| 牙龈萎缩用什么牙膏好| score什么意思| 咳嗽吐血是什么原因| 4月10号什么星座| 阴道b超检查什么| 撒丫子是什么意思| 什么情况做肠镜| 吃什么对肝好怎么养肝| 痛风能喝什么酒| 什么叫钝角| 鸡的祖先是什么动物| 1991年属什么| 手发胀是什么原因造成的| 煮粥用什么米| 肛裂擦什么药膏| 草酸是干什么用的| 什么是死缓| 度蜜月什么意思| 三道杠是什么牌子| 怀疑是什么意思| 离线缓存是什么意思| 诸葛亮姓什么| 闪购是什么意思| 姑姑的孙子叫我什么| 吃什么瘦肚子最快| 唐僧被封为什么佛| 5201314是什么意思| 821是什么星座| 西瓜不能跟什么一起吃| 日本的国宝是什么| 去医院洗纹身挂什么科| 什么年龄割双眼皮最好| 手脚心热是什么原因| 忐忑什么意思| 躺着头晕是什么原因| 月经后期是什么意思| 二百五是什么意思| 窦性心律逆钟向转位是什么意思| 心慌心悸吃什么药| 绿是什么| 脸基尼是什么意思| 猫咪踩奶是什么意思| 1956年属什么| 烂苹果气味的是什么病| 男人不够硬吃什么好| 恏是什么意思| 成家是什么意思| 身体出现小红点是什么原因| 慢性咽炎吃什么药好| 葡萄是什么茎| 白脸代表什么| 女左上眼皮跳是什么预兆| 右束支传导阻滞是什么意思| 武昌鱼是什么鱼| 人不出汗是什么原因| 葛根在农村叫什么| 白发多吃什么可以改善| 晕车是什么原因引起的| 男性手心热是什么原因| 1944年属什么| 下饭是什么意思| 手足无措是什么意思| 相忘于江湖是什么意思| 腰痛挂什么科| 女性为什么会得疱疹| 过敏性咽炎吃什么药| 取环挂什么科| #NAME?| 滞后是什么意思| 交尾是什么意思| 容易感冒是什么原因| 尿液结晶是什么意思| 子宫前置是什么意思| 狗狗冠状是什么症状| 补肾壮阳吃什么效果好| 非洲有什么动物| 潴留囊肿是什么意思| 什么是心律失常| 什么散步| 上吐下泻吃什么| 百度Jump to content

中国好教育高端沙龙·思享会:破解女教师“产假式”缺员之困

From Wikipedia, the free encyclopedia
(Redirected from Virtual Machine)
百度 据了解,为有效遏制扶贫领域腐败和作风问题,麻阳县贫困户只要到村委会的网络终端机上刷一下身份证,相关惠农、扶贫资金是否足额按时到账,一目了然。

virt-manager running the Haiku operating system in a window

In computing, a virtual machine (VM) is the virtualization or emulation of a computer system. Virtual machines are based on computer architectures and provide the functionality of a physical computer. Their implementations may involve specialized hardware, software, or a combination of the two. Virtual machines differ and are organized by their function, shown here:

Some virtual machine emulators, such as QEMU and video game console emulators, are designed to also emulate (or "virtually imitate") different system architectures, thus allowing execution of software applications and operating systems written for another CPU or architecture. OS-level virtualization allows the resources of a computer to be partitioned via the kernel. The terms are not universally interchangeable.

Definitions

[edit]

System virtual machines

[edit]

A 'virtual machine' was originally defined by Popek and Goldberg as "an efficient, isolated duplicate of a real computer machine."[2] Current use includes virtual machines that have no direct correspondence to any real hardware.[3] The physical, "real-world" hardware running the VM is generally referred to as the 'host', and the virtual machine emulated on that machine is generally referred to as the 'guest'. A host can emulate several guests, each of which can emulate different operating systems and hardware platforms.

The desire to run multiple operating systems was the initial motive for virtual machines, so as to allow time-sharing among several single-tasking operating systems. In some respects, a system virtual machine can be considered a generalization of the concept of virtual memory that historically preceded it. IBM's CP/CMS, the first systems to allow full virtualization, implemented time sharing by providing each user with a single-user operating system, the Conversational Monitor System (CMS). Unlike virtual memory, a system virtual machine entitled the user to write privileged instructions in their code. This approach had certain advantages, such as adding input/output devices not allowed by the standard system.[3]

As technology evolves virtual memory for purposes of virtualization, new systems of memory overcommitment may be applied to manage memory sharing among multiple virtual machines on one computer operating system. It may be possible to share memory pages that have identical contents among multiple virtual machines that run on the same physical machine, what may result in mapping them to the same physical page by a technique termed kernel same-page merging (KSM). This is especially useful for read-only pages, such as those holding code segments, which is the case for multiple virtual machines running the same or similar software, software libraries, web servers, middleware components, etc. The guest operating systems do not need to be compliant with the host hardware, thus making it possible to run different operating systems on the same computer (e.g., Windows, Linux, or prior versions of an operating system) to support future software.[4]

The use of virtual machines to support separate guest operating systems is popular in regard to embedded systems. A typical use would be to run a real-time operating system simultaneously with a preferred complex operating system, such as Linux or Windows. Another use would be for novel and unproven software still in the developmental stage, so it runs inside a sandbox. Virtual machines have other advantages for operating system development and may include improved debugging access and faster reboots.[5]

Multiple VMs running their own guest operating system are frequently engaged for server consolidation.[6]

Process virtual machines

[edit]

A process virtual machine, sometimes called an application virtual machine, or Managed Runtime Environment (MRE), runs as a normal application inside a host OS and supports a single process. It is created when that process is started and deleted when it is closed. Its purpose is to provide a platform-independent programming environment that abstracts away details of the underlying hardware or operating system and allows a program to execute in the same way on any platform.[citation needed]

A process VM provides a high-level abstraction – that of a high-level programming language (compared to the low-level ISA abstraction of the system VM). Process VMs are implemented using an interpreter; performance comparable to compiled programming languages can be achieved by the use of just-in-time compilation.[citation needed]

This type of VM has become popular with the Java programming language, which is implemented using the Java virtual machine. Other examples include the Parrot virtual machine and the .NET Framework, which runs on a VM called the Common Language Runtime. All of them can serve as an abstraction layer for any computer language.[citation needed]

A special case of process VMs are systems that abstract over the communication mechanisms of a (potentially heterogeneous) computer cluster. Such a VM does not consist of a single process, but one process per physical machine in the cluster. They are designed to ease the task of programming concurrent applications by letting the programmer focus on algorithms rather than the communication mechanisms provided by the interconnect and the OS. They do not hide the fact that communication takes place, and as such do not attempt to present the cluster as a single machine.[citation needed]

Unlike other process VMs, these systems do not provide a specific programming language, but are embedded in an existing language; typically such a system provides bindings for several languages (e.g., C and Fortran).[citation needed] Examples are Parallel Virtual Machine (PVM) and Message Passing Interface (MPI).

History

[edit]

Both system virtual machines and process virtual machines date to the 1960s and remain areas of active development.

System virtual machines grew out of time-sharing, as notably implemented in the Compatible Time-Sharing System (CTSS). Time-sharing allowed multiple users to use a computer concurrently: each program appeared to have full access to the machine, but only one program was executed at the time, with the system switching between programs in time slices, saving and restoring state each time. This evolved into virtual machines, notably via IBM's research systems: the M44/44X, which used partial virtualization, and the CP-40 and SIMMON, which used full virtualization, and were early examples of hypervisors. The first widely available virtual machine architecture was the CP-67/CMS (see History of CP/CMS for details). An important distinction was between using multiple virtual machines on one host system for time-sharing, as in M44/44X and CP-40, and using one virtual machine on a host system for prototyping, as in SIMMON. Emulators, with hardware emulation of earlier systems for compatibility, date back to the IBM System/360 in 1963,[7][8] while the software emulation (then-called "simulation") predates it.

Process virtual machines arose originally as abstract platforms for an intermediate language used as the intermediate representation of a program by a compiler; early examples date to around 1964 with the META II compiler-writing system using it for both syntax description and target code generation. A notable 1966 example was the O-code machine, a virtual machine that executes O-code (object code) emitted by the front end of the BCPL compiler. This abstraction allowed the compiler to be easily ported to a new architecture by implementing a new back end that took the existing O-code and compiled it to machine code for the underlying physical machine. The Euler language used a similar design, with the intermediate language named P (portable).[9] This was popularized around 1970 by Pascal, notably in the Pascal-P system (1973) and Pascal-S compiler (1975), in which it was termed p-code and the resulting machine as a p-code machine. This has been influential, and virtual machines in this sense have been often generally called p-code machines. In addition to being an intermediate language, Pascal p-code was also executed directly by an interpreter implementing the virtual machine, notably in UCSD Pascal (1978); this influenced later interpreters, notably the Java virtual machine (JVM). Another early example was SNOBOL4 (1967), which was written in the SNOBOL Implementation Language (SIL), an assembly language for a virtual machine, which was then targeted to physical machines by transpiling to their native assembler via a macro assembler.[10] Macros have since fallen out of favor, however, so this approach has been less influential. Process virtual machines were a popular approach to implementing early microcomputer software, including Tiny BASIC and adventure games, from one-off implementations such as Pyramid 2000 to a general-purpose engine like Infocom's z-machine, which Graham Nelson argues is "possibly the most portable virtual machine ever created".[11]

Significant advances occurred in the implementation of Smalltalk-80,[12] particularly the Deutsch/Schiffmann implementation[13] which pushed just-in-time (JIT) compilation forward as an implementation approach that uses process virtual machine.[14] Later notable Smalltalk VMs were VisualWorks, the Squeak Virtual Machine,[15] and Strongtalk.[16] A related language that produced a lot of virtual machine innovation was the Self programming language,[17] which pioneered adaptive optimization[18] and generational garbage collection. These techniques proved commercially successful in 1999 in the HotSpot Java virtual machine.[19] Other innovations include a register-based virtual machine, to better match the underlying hardware, rather than a stack-based virtual machine, which is a closer match for the programming language; in 1995, this was pioneered by the Dis virtual machine for the Limbo language.

Virtualization techniques

[edit]
Logical diagram of full virtualization

Full virtualization

[edit]

In full virtualization, the virtual machine simulates enough hardware to allow an unmodified "guest" OS (one designed for the same instruction set) to be run in isolation. This approach was pioneered in 1966 with the IBM CP-40 and CP-67, predecessors of the VM family.

Examples outside the mainframe field include Parallels Workstation, Parallels Desktop for Mac, VirtualBox, Virtual Iron, Oracle VM, Virtual PC, Virtual Server, Hyper-V, VMware Fusion, VMware Workstation, VMware Server (discontinued, formerly called GSX Server), VMware ESXi, QEMU, Adeos, Mac-on-Linux, Win4BSD, Win4Lin Pro, and Egenera vBlade technology.

Hardware-assisted virtualization

[edit]

In hardware-assisted virtualization, the hardware provides architectural support that facilitates building a virtual machine monitor and allows guest OSes to be run in isolation.[20] Hardware-assisted virtualization was first introduced on the IBM System/370 in 1972, for use with VM/370, the first virtual machine operating system offered by IBM as an official product.[21]

In 2005 and 2006, Intel and AMD provided additional hardware to support virtualization. Sun Microsystems (now Oracle Corporation) added similar features in their UltraSPARC T-Series processors in 2005. Examples of virtualization platforms adapted to such hardware include KVM, VMware Workstation, VMware Fusion, Hyper-V, Windows Virtual PC, Xen, Parallels Desktop for Mac, Oracle VM Server for SPARC, VirtualBox and Parallels Workstation.

In 2006, first-generation 32- and 64-bit x86 hardware support was found to rarely offer performance advantages over software virtualization.[22]

OS-level virtualization

[edit]

In OS-level virtualization, a physical server is virtualized at the operating system level, enabling multiple isolated and secure virtualized servers to run on a single physical server. The "guest" operating system environments share the same running instance of the operating system as the host system. Thus, the same operating system kernel is also used to implement the "guest" environments, and applications running in a given "guest" environment view it as a stand-alone system. The pioneer implementation was FreeBSD jails; other examples include Docker, Solaris Containers, OpenVZ, Linux-VServer, LXC, AIX Workload Partitions, Parallels Virtuozzo Containers, and iCore Virtual Accounts.

Snapshots

[edit]

A snapshot is a state of a virtual machine, and generally its storage devices, at an exact point in time. A snapshot enables the virtual machine's state at the time of the snapshot to be restored later, effectively undoing any changes that occurred afterwards. This capability is useful as a backup technique, for example, prior to performing a risky operation.[citation needed]

Virtual machines frequently use virtual disks for their storage; in a very simple example, a 10-gigabyte hard disk drive is simulated with a 10-gigabyte flat file. Any requests by the VM for a location on its physical disk are transparently translated into an operation on the corresponding file. Once such a translation layer is present, however, it is possible to intercept the operations and send them to different files, depending on various criteria. Every time a snapshot is taken, a new file is created, and used as an overlay for its predecessors. New data is written to the topmost overlay; reading existing data, however, needs the overlay hierarchy to be scanned, resulting in accessing the most recent version. Thus, the entire stack of snapshots is virtually a single coherent disk; in that sense, creating snapshots works similarly to the incremental backup technique.[citation needed]

Other components of a virtual machine can also be included in a snapshot, such as the contents of its random-access memory (RAM), BIOS settings, or its configuration settings. "Save state" feature in video game console emulators is an example of such snapshots.[citation needed]

Restoring a snapshot consists of discarding or disregarding all overlay layers that are added after that snapshot, and directing all new changes to a new overlay.[citation needed]

Migration

[edit]

The snapshots described above can be moved to another host machine with its own hypervisor; when the VM is temporarily stopped, snapshotted, moved, and then resumed on the new host, this is known as migration. If the older snapshots are kept in sync regularly, this operation can be quite fast, and allow the VM to provide uninterrupted service while its prior physical host is, for example, taken down for physical maintenance.[citation needed]

Failover

[edit]

Similar to the migration mechanism described above, failover allows the VM to continue operations if the host fails. Generally it occurs if the migration has stopped working. However, in this case, the VM continues operation from the last-known coherent state, rather than the current state, based on whatever materials the backup server was last provided with.[citation needed]

Nested virtualization

[edit]

Nested virtualization refers to the ability of running a virtual machine within another, having this general concept extendable to an arbitrary depth. In other words, nested virtualization refers to running one or more hypervisors inside another hypervisor. The nature of a nested guest virtual machine does not need to be homogeneous with its host virtual machine; for example, application virtualization can be deployed within a virtual machine created by using hardware virtualization.[23]

Nested virtualization becomes more necessary as widespread operating systems gain built-in hypervisor functionality, which in a virtualized environment can be used only if the surrounding hypervisor supports nested virtualization; for example, Windows 7 is capable of running Windows XP applications inside a built-in virtual machine. Furthermore, moving already existing virtualized environments into a cloud, following the Infrastructure as a Service (IaaS) approach, is much more complicated if the destination IaaS platform does not support nested virtualization.[24][25]

The way nested virtualization can be implemented on a particular computer architecture depends on supported hardware-assisted virtualization capabilities. If a particular architecture does not provide hardware support required for nested virtualization, various software techniques are employed to enable it.[24] Over time, more architectures gain required hardware support; for example, since the Haswell microarchitecture (announced in 2013), Intel started to include VMCS shadowing as a technology that accelerates nested virtualization.[26]

See also

[edit]

References

[edit]
  1. ^ Dittamo, Cristian (2010). On Expressing Different Concurrency Paradigms on Virtual Execution Systems (Ph.D. thesis). University of Pisa. Retrieved 2025-08-05.
  2. ^ Popek, Gerald J.; Goldberg, Robert P. (1974). "Formal requirements for virtualizable third generation architectures" (PDF). Communications of the ACM. 17 (7): 412–421. doi:10.1145/361011.361073. S2CID 12680060.
  3. ^ a b Smith, James E.; Nair, Ravi (2005). "The Architecture of Virtual Machines". Computer. 38 (5): 32–38, 395–396. doi:10.1109/MC.2005.173. S2CID 6578280.
  4. ^ Oliphant, Patrick. "Virtual Machines". VirtualComputing. Archived from the original on 2025-08-05. Retrieved 2025-08-05. Some people use that capability to set up a separate virtual machine running Windows on a Mac, giving them access to the full range of applications available for both platforms.
  5. ^ "Super Fast Server Reboots – Another reason Virtualization rocks". vmwarez.com. 2025-08-05. Archived from the original on 2025-08-05. Retrieved 2025-08-05.
  6. ^ "Server Consolidation and Containment With Virtual Infrastructure" (PDF). VMware. 2007. Archived (PDF) from the original on 2025-08-05. Retrieved 2025-08-05.
  7. ^ Pugh, Emerson W. (1995). Building IBM: Shaping an Industry and Its Technology. MIT. p. 274. ISBN 978-0-262-16147-3.
  8. ^ Pugh, Emerson W.; et al. (1991). IBM's 360 and Early 370 Systems. MIT. pp. 160–161. ISBN 978-0-262-16123-7.
  9. ^ Wirth, Niklaus Emil; Weber, Helmut (1966). EULER: a generalization of ALGOL, and its formal definition: Part II, Communications of the Association for Computing Machinery. Vol. 9. New York: ACM. pp. 89–99.
  10. ^ Griswold, Ralph E. The Macro Implementation of SNOBOL4. San Francisco, CA: W. H. Freeman and Company, 1972 (ISBN 0-7167-0447-1), Chapter 1.
  11. ^ Nelson, Graham A. "About Interpreters". Inform website. Archived from the original on 2025-08-05. Retrieved 2025-08-05.
  12. ^ Goldberg, Adele; Robson, David (1983). Smalltalk-80: The Language and its Implementation. Addison-Wesley Series in Computer Science. Addison-Wesley. ISBN 978-0-201-11371-6.
  13. ^ Deutsch, L. Peter; Schiffman, Allan M. (1984). "Efficient implementation of the Smalltalk-80 system". POPL. Salt Lake City, Utah: ACM. doi:10.1145/800017.800542. ISBN 0-89791-125-3.
  14. ^ Aycock, John (2003). "A brief history of just-in-time". ACM Comput. Surv. 35 (2): 97–113. doi:10.1145/857076.857077. S2CID 15345671.
  15. ^ Ingalls Jr., Daniel "Dan" Henry Holmes; Kaehler, Ted; Maloney, John; Wallace, Scott; Kay, Alan Curtis (1997). "Back to the future: the story of Squeak, a practical Smalltalk written in itself". OOPSLA '97: Proceedings of the 12th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications. New York, NY, US: ACM Press. pp. 318–326. doi:10.1145/263698.263754. ISBN 0-89791-908-4.
  16. ^ Bracha, Gilad; Griswold, David (1993). "Strongtalk: Typechecking Smalltalk in a Production Environment". Proceedings of the Eighth Annual Conference on Object-oriented Programming Systems, Languages, and Applications. OOPSLA '93. New York, NY, US: ACM. pp. 215–230. doi:10.1145/165854.165893. ISBN 978-0-89791-587-8.
  17. ^ Ungar, David Michael; Smith, Randall B. (December 1987). "Self: The power of simplicity". ACM SIGPLAN Notices. 22 (12): 227–242. doi:10.1145/38807.38828. ISSN 0362-1340.
  18. ^ H?lzle, Urs; Ungar, David Michael (1994). "Optimizing dynamically-dispatched calls with run-time type feedback". PLDI. Orlando, Florida, United States: ACM. pp. 326–336. doi:10.1145/178243.178478. ISBN 0-89791-662-X.
  19. ^ Paleczny, Michael; Vick, Christopher; Click, Cliff (2001). "The Java HotSpot server compiler". Proceedings of the Java Virtual Machine Research and Technology Symposium on Java Virtual Machine Research and Technology Symposium. Vol. 1. Monterey, California: USENIX Association.
  20. ^ Uhlig, Rich; Neiger, Gil; Rodgers, Dion; Santoni, Amy L.; Martins, Fernando C. M.; Anderson, Andrew V.; Bennett, Steven M.; K?gi, Alain; Leung, Felix H.; Smith, Larry (May 2005). "Intel virtualization technology". Computer. 38 (5): 48–56. doi:10.1109/MC.2005.163. S2CID 18514555.
  21. ^ Randal, A. (2019). The Ideal Versus the Real: Revisiting the History of Virtual Machines and Containers.
  22. ^ Adams, Keith; Agesen, Ole (2025-08-05). A Comparison of Software and Hardware Techniques for x86 Virtualization (PDF). ASPLOS’06 21–25 October 2006. San Jose, California, US. Archived (PDF) from the original on 2025-08-05. Surprisingly, we find that the first-generation hardware support rarely offers performance advantages over existing software techniques. We ascribe this situation to high VMM/guest transition costs and a rigid programming model that leaves little room for software flexibility in managing either the frequency or cost of these transitions.
  23. ^ Orit Wasserman, Red Hat (2013). "Nested virtualization: Shadow turtles" (PDF). KVM forum. Retrieved 2025-08-05.
  24. ^ a b Muli Ben-Yehuda; Michael D. Day; Zvi Dubitzky; Michael Factor; Nadav Har’El; Abel Gordon; Anthony Liguori; Orit Wasserman; Ben-Ami Yassour (2025-08-05). "The Turtles Project: Design and Implementation of Nested Virtualization" (PDF). usenix.org. Retrieved 2025-08-05.
  25. ^ Alex Fishman; Mike Rapoport; Evgeny Budilovsky; Izik Eidus (2025-08-05). "HVX: Virtualizing the Cloud" (PDF). rackcdn.com. Retrieved 2025-08-05.
  26. ^ "4th-Gen Intel Core vPro Processors with Intel VMCS Shadowing" (PDF). Intel. 2013. Retrieved 2025-08-05.

Further reading

[edit]
  • James E. Smith, Ravi Nair, Virtual Machines: Versatile Platforms For Systems And Processes, Morgan Kaufmann, May 2005, ISBN 1-55860-910-5, 656 pages (covers both process and system virtual machines)
  • Craig, Iain D. Virtual Machines. Springer, 2006, ISBN 1-85233-969-1, 269 pages (covers only process virtual machines)
[edit]
男人尿频是什么原因 萩是什么意思 女人吃榴莲有什么好处 房性期前收缩是什么意思 湿气到底是什么
璀璨人生是什么意思 王母娘娘属什么生肖 kailas是什么牌子 十二指肠球部溃疡a1期是什么意思 撕漫男什么意思
厕所里应该摆什么花 螺旋菌感染有什么危害 结婚需要什么证件 两面派是什么意思 尿毒症什么症状
甲状腺功能挂什么科 心脏不舒服挂什么科室 帝陀表什么档次 夏至吃什么食物 六月九号什么星座
用什么能把牙齿洗白hcv9jop8ns3r.cn 吃杨梅有什么好处hcv8jop9ns3r.cn 汗臭和狐臭有什么区别怎么辨别hcv9jop3ns6r.cn 毛囊炎长什么样hcv7jop6ns9r.cn 为什么说尽量不戴脚链hcv8jop5ns6r.cn
血液由什么组成hcv8jop7ns5r.cn 妈妈的妹妹叫什么hcv8jop7ns2r.cn 什么是牙结石bysq.com 冠脉cta主要检查什么hcv7jop9ns4r.cn 伤情鉴定需要什么材料hcv8jop7ns1r.cn
l5s1椎间盘突出是什么意思hcv7jop6ns1r.cn ser是什么氨基酸hcv8jop8ns6r.cn 井是什么生肖hcv8jop8ns9r.cn 心电图窦性心律是什么意思hcv7jop7ns3r.cn 事半功倍是什么意思hcv9jop3ns6r.cn
bbc是什么意思hcv9jop5ns9r.cn atp是什么hcv9jop6ns1r.cn 受益匪浅的意思是什么hcv9jop8ns0r.cn 太阳什么的什么的hcv8jop4ns9r.cn 六月二十九日是什么星座hcv8jop3ns9r.cn
百度