首页 > 其他分享 >虚拟机基础

虚拟机基础

时间:2023-11-08 21:01:00浏览次数:31  
标签:操作系统 管理程序 虚拟机 基础 应用程序 服务器 物理

什么是虚拟机?

虚拟机指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。在虚拟机中,一台或多台客户机可以运行在一台主机上。

每个虚拟机都有自己的操作系统,独立于其他虚拟机,即使它们位于同一物理主机上。虚拟机通常运行在服务器上,但也可以运行在桌面系统上,甚至是嵌入式平台上。多个虚拟机可以共享一个物理主机的资源,包括 CPU 周期、网络带宽和内存。

企业通过服务器虚拟化可以更有效地利用其物理服务器的计算能力,减少物理服务器的数量并节省数据中心的空间。 

虚拟机如何工作?

一般来说,有两种类型的虚拟机:程序虚拟机(将单个程序分开)和系统虚拟机(将操作系统和应用程序与物理计算机完全分离)。程序虚拟机的例子包括 Java 虚拟机、.NET Framework 和 Parrot 虚拟机。

系统虚拟机依赖管理程序(hypervisor)作为中间人,提供软件对硬件资源的访问。hypervisor模拟计算机的 CPU、内存、硬盘、网络和其他硬件资源,创建一个资源池,可以根据各个虚拟机的特定需求将资源分配给它们。Hypervisor 可以支持多个相互隔离的虚拟硬件平台,使虚拟机能够在同一物理主机上运行 Linux 和 Windows Server 操作系统。

该领域的知名企业包括 VMware (ESX/ESXi)、Intel/Linux Foundation (Xen)、Oracle(适用于 SPARC 的 MV 服务器和适用于 x86 的 Oracle VM 服务器)和微软(Hyper-V)。

台式计算机系统也可以使用虚拟机。例如Mac 用户在自己的Mac上运行虚拟Windows系统。

管理程序有哪两种类型?

管理程序负责管理资源,并将资源分配给虚拟机使用。虚拟机基础_虚拟机基础知识还可以根据管理程序和虚拟机的配置方式来调度和调整资源的分配方式,并且可以根据需求波动重新分配资源。大多数虚拟机管理程序可分为以下两类:

Type1:裸机管理程序直接在物理主机上运行,并且可以直接访问硬件。这类管理程序通常在服务器上运行,通常比 2 类管理程序更高效、性能更好,非常适合服务器、桌面和应用程序虚拟化。这类管理程序包括 Microsoft Hyper-V 和 VMware ESXi。

Type2:有时称为托管管理程序,这类管理程序安装在主机操作系统上,负责管理对硬件资源的调用,通常部署在最终用户系统上。这类管理程序包括 VMware Workstation 和 Oracle VirtualBox。

优缺点

优点:

  • 用户可以在单个硬件上运行多个操作系统,从而节省企业的时间、管理成本和物理空间。
  • 开发人员可以使用虚拟机在安全的沙盒环境中测试应用程序。有助于隔离恶意软件,由于虚拟机内的软件无法篡改主机,恶意软件无法传播。

缺点:

  • 在一台物理主机上运行多个虚拟机可能会导致性能不稳定,尤其是在不满足特定应用程序的基础架构要求的情况下。这也使它们在很多情况下比物理计算机效率低。 
  • 如果物理服务器崩溃,在其上运行的所有应用程序都会崩溃。

虚拟机和容器

虚拟机的增长促进了容器等技术的进一步发展,使这一概念又向前迈进了一步。容器可以对单个应用程序及其依赖项进行虚拟化。与虚拟机相比,容器的开销要少得多,只包含二进制文件、库和应用程序。

虽然有些人认为容器的开发可能会扼杀虚拟机,但虚拟机有足够的能力和优势来推动技术向前发展。例如,在同时运行多个应用程序或在旧操作系统上运行传统应用程序时,虚拟机仍然发挥很大作用。

此外,还有人认为容器不如虚拟机管理程序安全,因为容器只有一个应用程序共享的操作系统,而虚拟机可以隔离应用程序和操作系统。

IDC 软件定义计算部门的研究经理 Gary Chen 在IDC的《2019-2022年全球虚拟机软件预测》中写道:“虚拟机软件市场非常有弹性,并将在未来五年继续积极增长,尽管该市场已经非常成熟并接近饱和。”

标签:操作系统,管理程序,虚拟机,基础,应用程序,服务器,物理
From: https://blog.51cto.com/u_16286833/8258958

相关文章

  • java基础学习:二进制,八进制,十六进制
      ......
  • 金蝶云星空BOS设计器中基础资料字段属性“过滤”设置获取当前界面的基础资料值作为查
     背景说明序列号档案是基础资料,资料里面有组织和客户,都是基础资料的方式。 业务需求售后单表头有客户和组织,明细有序列号,选择序列号的时候,以表头的客户和组织作为选择序列号的过滤条件 格式基础资料的过滤字段的标识=GetValue(当前界面的过滤字段的标识)--如果基础资......
  • C# 如何连接 PostgreSQL 基础教程
    1.准备1.安装PostgreSQL数据库服务器2.安装Npgsql驱动程序,每一个解决方案都要提前添加3.C#开发环境:VisualStudio2.连接PostgreSQL的步骤2.1:导入必要的命名空间usingNpgsql;2.2:创建连接字符串stringconnString="Host=localhost;Port=5432;Username=po......
  • Dart 基础知识笔记
    本文主要介绍Dart基础知识笔记。tourmain()函数是Dart程序的入口main()函数返回void并具有可选的List<String>参数作为参数所有对象都从Object类继承Dart是强类型当您想明确地不希望有任何类型时,使用特殊类型dynamicDart可以在函数内创建函数(嵌套函数或局部函数),可......
  • 【Cpp 基础】主动刷新 cout 缓存区
    使用额外的“刷新”功能(<<flush)来确保根据我们的要求显示输出。//C++程序演示flush函数的使用#include<iostream>#include<thread>#include<chrono>usingnamespacestd;intmain(){ for(inti=1;i<=5;++i) { cout<<i<<""<&......
  • 秦疆的Java课程笔记:22 基础 标识符和关键字
    关键字:abstract,assertboolean,break,bytecase,catch,char,class,const,continuedefault,do,doubleelse,enum,extendsfinal,finally,float,forgotoif,implements,import,instanceof,int,interfacelongnative,newpackage,private,protected,publicreturnstrictfp,sh......
  • 秦疆的Java课程笔记:23 基础 数据类型
    Java是一种强类型语言。或者称为强类型定义语言。要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用。一旦定义了一个变量,指定了某个数据类型,如果不经过转换的话,它就永远是这个类型了。好处是安全性高,相对的,速度就比较慢。弱类型语言,VBScript,JavaScript等,变量......
  • 秦疆的Java课程笔记:21 基础 注释
    平时写代码,代码量比较少的时候还能看懂自己写的,但当项目结构复杂起来,就需要用到注释。注释并不会被执行,是写给写代码的人看的,让别人更容易理解代码。注释是一个非常好的习惯。单行注释publicclassHelloWold{publicstaticvoidmain(String[]args){......
  • 基础课-前端JS
    JAVAScript基础语法意义:让前端界面动起来;它是负责前端界面与用户之间的交互前端界面变化的思维导图:             触发            调用           运行用户进行操作------------>前端事件-----------......
  • Sql server基础使用(一):基础查询语句
    对所学Sqlserver知识进行一下记录总结,欢迎补充和讨论。1.基本查询语句SELECT*FROMdbo.basic_User这句话的意思就是查询“basic_User”表中所有字段/列,所有数据,其中”dbo.“可有可无,”*“表示查询所有字段/列。 如果需要明确显示查询的所有列或部分列,可以用下面的方法......