GVKun编程网logo

虚拟化 – 虚拟化一个非常遗留的应用程序(虚拟化百度百科)

12

这篇文章主要围绕虚拟化–虚拟化一个非常遗留的应用程序和虚拟化百度百科展开,旨在为您提供一份详细的参考资料。我们将全面介绍虚拟化–虚拟化一个非常遗留的应用程序的优缺点,解答虚拟化百度百科的相关问题,同时

这篇文章主要围绕虚拟化 – 虚拟化一个非常遗留的应用程序虚拟化百度百科展开,旨在为您提供一份详细的参考资料。我们将全面介绍虚拟化 – 虚拟化一个非常遗留的应用程序的优缺点,解答虚拟化百度百科的相关问题,同时也会为您带来(13)虚拟化技术之服务器虚拟化、28.1 了解虚拟化 28.2 常见虚拟化软件 28.3 虚拟化架构、APP加密,ios代码混淆工具,虚拟化技术 适用于移动应用程序的虚拟化加密软件、CentOS 7 下 KVM 支持虚拟化 / 嵌套虚拟化配置的实用方法。

本文目录一览:

虚拟化 – 虚拟化一个非常遗留的应用程序(虚拟化百度百科)

虚拟化 – 虚拟化一个非常遗留的应用程序(虚拟化百度百科)

在这个上寻找一些帮助.我有一个客户有一个非常旧的MS DOS应用程序,用一些不明来源的3GL语言编写.最初的软件供应商在1996年左右停业并且没有支持.

我需要虚拟化这个应用程序,因为他们既不想要也没有钱购买更现代的解决方案.

虚拟化机器非常简单.但是,此应用程序会喷出HP PCL代码进行打印,并且仅适用于HP Laserjets.

为了使系统工作,我需要能够打印到非PCL打印机(即三星激光打印机),并可能打印到PDF.

关于如何做到这一点的任何想法都非常感谢,因为这真的是一个工作的阻碍.是否有某种垫片可用或者我在错误的树上吠叫?

我建议使用支持HP PCL代码或HP PCL仿真的打印机.更改打印机/设备比重写遗留应用程序更容易.

我从遗留应用程序处理仓储/生产无人值守打印.我必须验证打印解决方案,因此您需要支持有限数量的设备才有意义.

对于PDF问题,在过去,我需要使用commercial PCL-to-PDF add-on.使用Linux,我们已经能够使用开源软件来处理这个问题.

(13)虚拟化技术之服务器虚拟化

(13)虚拟化技术之服务器虚拟化

1.服务器虚拟化的层次

服务器虚拟化分为寄居虚拟化和裸机虚拟化两种

(1)寄居虚拟化的层次:

寄居虚拟化的虚拟化层一般称为虚拟机监控器(VMM)
这类虚拟化架构系统损耗比较大
就操作系统层的虚拟化而言,没有独立的Hypervisor层
如果使用操作系统层虚拟化,所有虚拟服务器必须运行同一操作系统
(2)裸机虚拟化的层次
架构中的VMM也可以认为是一个操作系统,一般称为Hypervisor
Hypervisor实现从虚拟资源到物理资源的映射
Hypervisor实现了不同虚拟机的运行上下文保护与切换,保证了各个客户虚拟系统的有效隔离
 
VMM无法直接捕获特权指令的解决方案:
(1)完全虚拟化
完全虚拟化具有很好的兼容性,在服务器虚拟化中得到广泛应用。 
(2)半虚拟化
半虚拟化技术降低了由于虚拟化而引入的系统性能损失。 
 
2.服务器虚拟化的底层实现
(1)CPU虚拟化
虚拟CPU的正确运行是要保证虚拟机指令正确运行,现有的实现技术包括模拟执行和监控执行
调度问题是指VMM决定当前哪个虚拟CPU在物理CPU上运行,要保证隔离性、公平性和性能。 
(2)内存虚拟化
内存虚拟化技术把物理内存统一管理,包装成多个虚拟的物理内存提供给若干虚拟机使用,每个虚拟机拥有各自独立的内存空间。 
虚拟内存的管理包括3种地址:机器地址,物理地址和虚拟地址
(3)I/O设备虚拟化
I/O设备虚拟化技术把真实的设备统一管理起来,包装成多个虚拟设备给若干个虚拟机使用,响应每个虚拟机的设备访问请求和I/O请求。
I/O设备虚拟化同样是由VMM进行管理的 
 
3.虚拟机迁移
虚拟机迁移是将虚拟机实例从源宿主机迁移到目标宿主机,并且在目标宿主机上能够将虚拟机运行状态恢复到其在迁移之前相同的状态,以便能够继续完成应用
程序的任务。
需要进行虚拟机迁移的原因:
(1)云计算中心的物理服务器负载经常处于动态变化中,当一台物理服务器负载过大时,若此刻不可能提供额外的物理服务器,管理员可以将其上面的虚拟机迁移到其他服务器,达到负载平衡
(2)云计算中心的物理服务器有时候需要定期进行升级维护,当升级维护服务器时,管理员可以将其上面的虚拟机迁移到其他服务器,等升级维护完成之后,再把虚拟机迁移回来 
从虚拟机迁移的源与目的地角度可分为(1)物理机到虚拟机的迁移 (P2V) (2)虚拟机到虚拟机的迁移(V2V)(3)虚拟机到物理机的迁移(V2P)
实时迁移(LiveMigration),就是保持虚拟机运行的同时,把它从一个计算机迁移到另一个计算机,并在目的计算机恢复运行的技术。 
虚拟机迁移的步骤:预迁移-->预定资源-->预复制-->停机复制-->提交-->启动
 
内存的迁移是虚拟机迁移最困难的部分
内存迁移包含三个阶段:
第一阶段,Push阶段。  第二阶段,Stop-and-Copy阶段。  第三阶段,Pull阶段。 
实际上,迁移内存没有必要同时包含上述三个阶段,目前大部分的迁移策略只包含其中的一个或者两个阶段。
不同迁移策略的比较:
 
网络资源的迁移:
虚拟机这种系统级别的封装方式意味着迁移时VM的所有网络设备,包括协议状态(如TCP连接状态)以及IP地址都要随之一起迁移。
在局域网内,可以通过发送ARP重定向包,将VM的IP地址与目的机器的MAC地址相绑定,之后的所有包就可以发送到目的机器上。 
存储设备的迁移:
迁移存储设备的最大障碍在于需要占用大量时间和网络带宽,通常的解决办法是以共享的方式共享数据和文件系统,而非真正迁移。
目前大多数集群使用NAS(Network Attached Storage,网络连接存储)作为存储设备共享数据。
NAS实际上是一个带有瘦服务器的存储设备,其作用类似于一个专用的文件服务器。
在局域网环境下,NAS已经完全可以实现异构平台之间,如NT、UNIX等的数据级共享。
基于以上的考虑,Xen并没有实现存储设备的迁移,实时迁移的对象必须共享文件系统。 
 
4.隔离技术
虚拟机隔离是指虚拟机之间在没有授权许可的情况下,互相之间不可通信、不可联系的一种技术。 
从软件角度看,互相隔离的虚拟机之间保持独立,如同一个完整的计算机
从硬件角度看,被隔离的虚拟机相当于一台物理机,有自己的CPU、内存、硬盘、I/O等,它与宿主机之间保持互相独立的状态
从网络角度看,被隔离的虚拟机如同物理机一样,既可以对外提供网络服务,也一样可以从外界接受网络服务
虚拟机隔离机制:
(1)网络隔离;
(2)构建虚拟机安全文件防护网;
(3)基于访问控制的逻辑隔离机制;
(4)通过硬件虚拟,让每个虚拟机无法突破虚拟机管理器给出的资源限制;
(5)硬件提供的内存保护机制;
(6)进程地址空间的保护机制,IP地址隔离。
内存隔离:
虚拟机监控器使用分段和分页机制对自身的物理内存进行保护。x86体系结构提供了支持分段机制的虚拟内存,这能够提供另一种形式的特权级分离。 
网络隔离:
 网络隔离的目标 :确保把有害的攻击隔离,在可信网络之外和保证可信网络内部信息不外泄的前提下,完成网间数据的安全交换。 
网络隔离的安全要素:
机密性 完整性 可用性 可控性 抗抵赖
网络隔离的安全机制:
访问控制 身份认证 加密签名 

28.1 了解虚拟化 28.2 常见虚拟化软件 28.3 虚拟化架构

28.1 了解虚拟化 28.2 常见虚拟化软件 28.3 虚拟化架构

28.1 了解虚拟化

28.2 常见虚拟化软件

28.3 虚拟化架构

 

 

 

28.1 了解虚拟化

 

 

比如一台硬件很高的服务器,为了让这个硬件资源充分发挥性能。就可以在这台机器上安装很多个虚拟机出来,本来就一台计算机,那我们可以模拟出来 20 台逻辑计算机,就好比我们就有了 20 个服务器。每一台服务器运行不同的程序,就可以做很多事情。为企业节省了很多资源(机架空间、电量等等)

 

1.VMware Workstation 就是虚拟化

2. 虚拟化简单讲,就是把一台物理计算机虚拟成多台逻辑计算机,每个逻辑计算机里面可以运行不同的操作系统,相互不受影响,这样就可以充分利用硬件资源

#目的是充分利用硬件资源

3. 关键词 Hypervisor (VMM) 虚拟机管理器

#hypervisor 是用来管理逻辑计算机的。也就是说没有 hypervisor,虚拟化是不成立的

4. 虚拟化技术分为全虚拟化和半虚拟化

5. 早期的 CPU 硬件不支持虚拟化,虚拟机上的操作系统(guestos)要想使用 cpu 资源,需要通过 VMM 来翻译指令,这个过程比较耗费资源,这种虚拟化技术叫做全虚拟化(VMware Workstation)

#就像我们在虚拟机上装了 vmwaer,然后虚拟出来一个 linux,就是虚拟机上的操作系统(就叫 guestos)。而 guestos 想要 cpu 的资源,需要通过 vmm 来翻译指令。因为 guestos 不能直接与电脑的 CPU 打交道(语言不相通)。所以要 guestos 来去翻译指令,这种就是全虚拟化(像 vmware)

6. 半虚拟化技术通过修改 guestos 内核,让 guestos 可以直接使用 CPU 资源,而不需要翻译指令了,从而节省了资源,但修改内核比较鸡肋(XEN)

#比如我们每安装一个系统,还要定制内核,就很麻烦

7. 后续 cpu 厂商直接支持虚拟化,不需要通过 VMM 翻译指令了,无所谓半虚拟化和全虚拟化

#比如我们现在使用的 vmware 就不需要修改什么内核了或翻译指令了

8. 参考 http://www.cnblogs.com/xusongwei/archive/2012/07/30/2615592.html

http://itoedr.lofter.com/post/1472ba_69c62fa

 

 

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

 

28.2 常见虚拟化软件

 

 

 

VMware 系列 #所有的软件都是收费的

VMware workstation、VMware vsphere(VMware esxi)、VMware Fusion(Mac)

#VMware workstation 适合在单台计算机上安装

VMware vsphere(VMware esxi)当计算机比较多,规模比较大的时候使用。图形化操作。更方便的克隆、迁移

VMware Fusion(Mac) 使用在 mac(如苹果电脑)上的

Xen 开源 半虚拟化

XenServer 商业,厂商 Ctirx,基于 Xen 的

KVM 开源 基于 linux 内核模块

#相当于是 linux 内核的一个模块,不会更改 linux 内核

Hyper-V 商业,厂商微软

Openvz 开源 基于 linux 虚拟机和宿主机共用一个内核

#优势是可以开很多个虚拟机出来。劣势是稳定性差了点。多用于早期的 vpm 供应商

VirtualBox 开源 Sun 公司开发 Oracle 收购 Sun

#和 vmware 类似

http://developer.huawei.com/ict/forum/thread-23385-1-1.html

 

 

 

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

 

 

28.3 虚拟化架构

 

 

 

参考 http://developer.huawei.com/ict/forum/thread-23385-1-1.html

 

第一种类型,就是我直接拿一张 vmware 的光盘,去安装。省略了安装 windows 系统那一步。安装之后做虚拟化,比如虚拟化一个 linux 安装 centos,或虚拟化 windows 安装 windows2003

第二种类型,就是我们现在正常

APP加密,ios代码混淆工具,虚拟化技术 适用于移动应用程序的虚拟化加密软件

APP加密,ios代码混淆工具,虚拟化技术 适用于移动应用程序的虚拟化加密软件

概述:

KiwiVM是用于移动应用程序的虚拟化加密软件。

它基于Clang编译器扩展,并且在编译项目时虚拟化指定的函数。借助自定义CPU指令的功能,一旦对代码进行加密并且从未解密,攻击者将无法恢复代码并分析核心业务逻辑。帮助公司为通信,支付,算法和核心技术定制加密,以避免由于安全问题而造成的财务损失。

特点与优势:

深度加密:自定义CPU指令,加密的代码不会被解密。

功能虚拟化:针对iOS项目的代码功能的虚拟化保护

完整架构:支持所有cpu架构,例如armv7,armv7s,arm64等。

兼容性:基于LLVM的IR代码的实现没有兼容性问题

文献资料:

您可以在几维安全上找到KiwiVM文档、ios代码混淆效果参考文档。

项目类型:

安卓NDK项目[SO动态库、静态库]

支持iOS项目[APP、动态库、静态库]

虚拟化效果分析:

1.代码虚拟化

在编译阶段以C、C++源文件的代码块为单位进行虚拟化,运行在受保护的虚机中,可防止IDA Pro等逆向工具的静态分析。

在IDA Pro中反编译未加密的函数

代码虚拟化-效果分析1.jpg

在IDA Pro中反编译已加密的函数,原始代码逻辑已被加密隐藏
代码虚拟化-效果分析2.jpg

2、字符串加密

对敏感字符串数据进行加密保护,避免攻击者通过关键词搜索来定位关键代码,增加逆向难度

在IDA Pro中查看未加密的字符串

代码虚拟化-效果分析3.jpg

在IDA Pro中查看已加密的字符串

代码虚拟化-效果分析4.jpg

说明:

目前提供的KiwiVM源码虚拟化产品支持iOS、Android、Linux等多个平台。

依靠团队的技术优势,KiwiSec专注于移动安全领域的下一代技术和产品开发。最初的KiwiVM虚拟机产品经过8年的编译器安全技术积累和3年的不断研究与开发,已完全解决了传统技术固有的保护弱,兼容性差等问题,例如强化和模糊化,为用户提供了便利,有效的安全解决方案。

CentOS 7 下 KVM 支持虚拟化 / 嵌套虚拟化配置

CentOS 7 下 KVM 支持虚拟化 / 嵌套虚拟化配置

开启虚拟化:

cat << EOF > /etc/modprobe.d/kvm-nested.conf
options kvm-intel nested=1
options kvm-intel enable_shadow_vmcs=1
options kvm-intel enable_apicv=1
options kvm-intel ept=1
EOF

重新加载 KVM 内核,注意先关闭所有虚拟机:

modprobe -r kvm_intel
modprobe -a kvm_intel

如果不想热加载可以直接重启宿主机。

验证是否已经开启成功,成功后会输出 Y:

cat /sys/module/kvm_intel/parameters/nested

修改 KVM 的 XML 文件 CPU 模式为 “host-modle” 或 “host-passthrough:

在 KVM 验证是否 CPU 支持虚拟化:

lscpu | grep vmx

 

参考:

http://blog.51cto.com/lidaxia/1911051

https://blog.csdn.net/Linuxprobe18/article/details/78944974

http://blog.51cto.com/zhaijunming5/1713422

我们今天的关于虚拟化 – 虚拟化一个非常遗留的应用程序虚拟化百度百科的分享已经告一段落,感谢您的关注,如果您想了解更多关于(13)虚拟化技术之服务器虚拟化、28.1 了解虚拟化 28.2 常见虚拟化软件 28.3 虚拟化架构、APP加密,ios代码混淆工具,虚拟化技术 适用于移动应用程序的虚拟化加密软件、CentOS 7 下 KVM 支持虚拟化 / 嵌套虚拟化配置的相关信息,请在本站查询。

本文标签: