常用软件 虚拟机
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
常用软件虚拟机
虚拟机是另一种常用的虚拟设备软件。其可以通过软件模拟一个计算机系统,将系统完全与物理计算机隔离。通过虚拟机软件,用户可以在一台物理计算机中模拟多个虚拟计算机,同时运行这些计算机中的程序,而这些程序之间互不干扰。
1.虚拟机的原理
在各种操作系统中,都会提供一些应用程序接口。多数基于这些操作系统的软件,都需要调用操作系统的应用程序接口,以实现各种功能。
在不同的操作系统中,应用程序接口也是各不相同的。例如,Windows操作系统的应用程序接口就和Linux操作系统的完全不同。因此,在Windows操作系统下可以正常工作的软件,往往不能在Linux操作系统下运行。
虚拟机技术是一种特殊的编程技术,其事实上是一种代码模拟技术,作用是读取本地物理计算机操作系统中的各种应用程序接口,然后将其转换为其他操作系统中的应用程序接口,以供虚拟的操作环境中使用。
2.虚拟机的分类
虚拟机系统可以根据具体的用途和与物理计算机的相关性,分为两类,即系统虚拟机和程序虚拟机。
●系统虚拟机
系统虚拟机会提供一个完整地、可以运行操作系统的高度仿真系统平台。典型的系统虚拟机包括VMware公司的VMware WorkStation和微软公司的Virtual PC系列等。
系统虚拟机可以在磁盘上创建一个文件作为虚拟磁盘文件,然后允许用户按照物理计算机的方式,在虚拟磁盘文件中进行分区、格式化、安装操作系统和软件等操作。在一台物理计算机系统中,往往可以运行多台这样的虚拟机系统,为多个用户提供服务。
●程序虚拟机
在计算机中使用的各种应用程序往往是针对某一种平台或某一种操作系统,经过代码编译而成的。如果需要移植到另一种平台下,就必须对代码进行重新编译。单独的代码往往是无法直接执行的。
程序虚拟机是一种应用非常广泛的虚拟机。其主要是为运行某类计算机程序而设计,往往只支持单进程的程序。典型的程序虚拟机包括JVM(Java Virtual Machine,用于Java应用程序的编译和执行)或A VM(ActionScript Virtual Machine,用于Flash脚本语言的编译和执行)等。
程序虚拟机往往会针对多种操作系统和软件平台开发,代替原有的代码编译程序,对代码或二进制指令进行直接编译和执行。这样,用户无需改变开发程序的习惯和编写代码的方式,即可编写出可应用于多种平台或系统的程序。
程序虚拟机为一些特殊的编程语言提供了一个通用的编译平台,忽视因物理计算机的指令集差异和操作系统的应用程序接口区别。
3.虚拟机的应用
如今,虚拟机技术已经广泛应用在几乎所有的服务器和个人计算机平台上。虚拟机技术的出现对于计算机和网络产业具有重大的意义,虚拟机可以应用在以下几方面。
●计算机教育
在计算机教育行业,经常需要教授学生一些有一定危险性的操作方法,例如,磁盘格式化、分区、安装操作系统等。如果让学生使用物理计算机来练习这些操作,往往成本比较高,一旦学生误操作,就很容易造成硬件或软件的损坏。
虚拟机允许用户在每台计算机上安装一个虚拟的操作系统环境,并允许用户在这个虚拟操作环境中做任何类似对物理计算机的操作而不会造成硬件或软件的损害。甚至可以通过网络,在一台服务器中模拟多台虚拟机,用户只需要通过无盘工作站或者其他低性能计算机,即可远程登录虚拟机,进行操作。
虚拟机技术的出现,节省了大量硬件软件维护的成本。典型的用于计算机教育的虚拟机软件主要包括VMWare Player等。
●服务器托管
传统的服务器托管业务,每个用户要想使用服务器,必须租用或者购买一台服务器,并将其放置在通信运营商的机房中。由于多数用户往往无法使用服务器的所有功能,这样做就会造成巨大的系统资源浪费。
虚拟机允许为用户提供一个安全地、低成本的解决方案,在一台物理服务器中设置多台虚拟服务器,由多个用户合力出资租用或购买服务器安装独立的操作系统并创建加密的虚拟磁盘。用户可以随时远程登录到服务器上,对服务器进行各种维护、更新和控制。
虚拟机技术的出现,节省了用户在硬件和网络带宽上的开销。典型的用于服务器托管的虚拟机软件主要包括微软的Hyper-V等。
●软件虚拟化
在编写应用程序时,往往需要针对计算机的CPU指令和操作系统的应用程序接口进行编译,程序才能正常执行。因此,对多种计算机平台和操作系统,程序员在实现同样功能时,往往需要编写多种代码。这无疑加大了程序开发的成本。
虚拟机允许针对不同的CPU指令和操作系统的应用程序接口,为代码提供一个统一的执行环境。这样,程序员就无需考虑程序在不同平台和操作系统中的兼容问题,只需要注重程序本身的功能和可靠性。代码的编译功能和兼容性测试等完全由虚拟机实现。
虚拟机技术的出现,节省了程序开发的成本,提高了程序开发的效率,减轻了程序员的负担。典型的用于软件虚拟化的虚拟机包括Flash播放器等。