当前位置: 首页 > news >正文

淘宝客不建立网站怎么做三维网站搭建教程

淘宝客不建立网站怎么做,三维网站搭建教程,投资公司投资项目流程,秦淮做网站价格数据分层#xff08;应用分层#xff09;技术简介 近几年虚拟化市场实现了非常大的发展#xff0c;桌面虚拟化在企业中应用越来越广泛#xff0c;其拥有的如下优点得到大量企业的青睐#xff1a; 数据安全不落地。在虚拟化环境下面数据保存在中心服务器上面#xff0c;…数据分层应用分层技术简介 近几年虚拟化市场实现了非常大的发展桌面虚拟化在企业中应用越来越广泛其拥有的如下优点得到大量企业的青睐 数据安全不落地。在虚拟化环境下面数据保存在中心服务器上面只要保障中心服务器的安全那么就能保障数据的绝对安全。高扩展性。与普通的硬件PC相比桌面虚拟化具有高扩展性可以随时将虚拟化资源归还给虚拟化主机以及分配给其他虚拟化主机使用。容易部署。桌面虚拟化一般可以通过模板话部署将应用数据一键部署到新的虚拟机上。统一化资产管理。资产管理一直是企业管理的难点市面上有许多公司的管理软件都包括了资产管理这一环在桌面虚拟化下面资产管理得到了很好的解决。 通常情况下的虚拟化架构如下 在上述架构中我们可以安装层级来划分 硬件层主要是我们的实体硬件包括内存CPU存储。主机层主要是我们的Host主机操作系统一般来说以Linux居多。客户机层主要是我们的虚拟机操作系统在这一层上面实现我们的具体应用办公开发娱乐等。 那么能否对客户机Guest这一层继续进行细化分层呢例如我们实现 我们将个人数据存放在一个单独层级。无论我们使用虚拟机的还原系统还是登录一台全新的虚拟机我们将数据层进行合并让我们个人数据和应用不会丢失。 本文来介绍一种在虚拟机中数据分层的技术下面我们详细看一下其技术原理和实现。 1. 简介 数据分层是针对虚拟机来说的以Windows系统为例从下到上我们可以将其分为三层 系统OS层该层表示Windows系统镜像安装的原始OS层代表这一个可正常运行的OS。应用层该层表示各种应用程序组成的层例如Chrome浏览器微信QQ等各种应用程序。数据层该层表示应用程序运行时候生成的各种文件数据例如浏览器的记录收藏夹QQ微信的聊天数据。 其示意图大致如下 一般来说每个层都是一个独立的磁盘将每个磁盘通过分层技术合并成一个整体可以正常使用运行的磁盘如下 对于各层来说一般有如下特征 操作系统层只有一个数据磁盘表示该层表示运行的系统。应用程序层该层是一个集合层多个应用程序层元素组成该层表示通常情况下我们需要的应用程序。个人数据层该层可以由一个或者多个磁盘组成不过大部分情况下我们只需要一个磁盘层即可。 对于上面这种情况在实际的使用场景下可以进一步简化将操作系统层和引用程序层合并成一个层大致如下 对于通常场景我们可以将操作系统层和应用程序层合并成一个层到操作系统层也就是说我们在安装操作系统的时候就将我们需要的应用软件安装好后面使用过程中我们只需要弹性使用个人数据层即可。 我们的数据分层主要是针对这种简化的分层对于应用分层可以参考我们的文章Windows内核沙盒原理详解。 对于数据分层我们的应用有 还原系统下面我们可以将自己程序的各种数据存放到自己的磁盘或者云盘上面这样我们虚拟主机是还原系统但是数据是个人的数据可以达到虚拟机重复利用的目的例如我们10台主机可以分时间段给100个人甚至更多人使用只要拥有个人数据磁盘就行。数据上云比如我们可以将个人数据层同步到自己的云盘无论我们使用哪个电脑虚拟机或者物理主机可以将数据层进行合并使得每台电脑使用的数据完全一致。 针对数据分层我们主要的技术在于分层数据的合并对于这个合并有两个点 注册表数据的合并。文件数据的合并。 2. 注册表数据分层 注册表数据的分层需要对注册表的各种查询进行HOOK然后将数据查询进行合并将数据写入进行分发注册表的HOOK技术有两种 基于用户层API HOOK技术。基于内核回调函数的HOOK技术。 这里我们使用内核回调函数的实现方式使用CmRegisterCallbackEx来注册注册表的各种回调函数 NTSTATUS CmRegisterCallbackEx(PEX_CALLBACK_FUNCTION Function,PCUNICODE_STRING Altitude,PVOID Driver,PVOID Context,PLARGE_INTEGER Cookie,PVOID Reserved );注册表的各种回调函数有如下 typedef enum _REG_NOTIFY_CLASS {RegNtDeleteKey,RegNtPreDeleteKey,RegNtSetValueKey,RegNtPreSetValueKey,RegNtDeleteValueKey,RegNtPreDeleteValueKey,RegNtSetInformationKey,RegNtPreSetInformationKey,RegNtRenameKey,//... } REG_NOTIFY_CLASS;理论上我们需要对所有函数进行处理主要的操作有 RegNtPreCreateKeyEx对注册表的打开做处理打开操作系统层的注册表还是打开数据层的注册表。RegNtPreQueryValueKey对注册表值得查询做处理一般来说我们需要对注册表得值进行合并选择的方式是将数据层覆盖操作系统层的注册表值当然还需要做很多情况的处理。RegNtPreEnumerateKey枚举注册表项这个函数也是最复杂的实现函数因为我们需要对操作系统层和数据层的注册表项进行合并去重等。RegNtPreDeleteKey和RegNtPreDeleteValueKey注册表的删除也是非常麻烦的操作因为我们需要对注册表进行标记处理不能将操作系统层的数据真实删除。 上面这些接口只是示例实际的实现要复杂很多大致例如如下 regRoutineTable[RegNtPreQueryValueKey] NanosRegNtPreQueryValueKeyCallback; regRoutineTable[RegNtPreEnumerateValueKey] NanosRegNtPreEnumerateValueKeyCallback; regRoutineTable[RegNtPreQueryMultipleValueKey] NanosRegNtPreQueryMultipleValueKeyCallback; regRoutineTable[RegNtPreDeleteValueKey] NanosRegNtPreDeleteValueKeyCallback; regRoutineTable[RegNtPreDeleteKey] NanosRegNtPreDeleteKeyCallback; regRoutineTable[RegNtPreRenameKey] NanosRegNtPreRenameKeyCallback; regRoutineTable[RegNtPostRenameKey] NanosRegNtPostRenameKeyCallback; regRoutineTable[RegNtPreEnumerateKey] NanosRegNtPreEnumerateKeyCallback; regRoutineTable[RegNtPreQueryKey] NanosRegNtPreQueryKeyCallback; regRoutineTable[RegNtPostQueryKey] NanosRegNtPostQueryKeyCallback; regRoutineTable[RegNtPreSetValueKey] NanosRegNtPreSetValueKeyCallback; regRoutineTable[RegNtPreCreateKeyEx] NanosRegNtPreCreateKeyExCallback; regRoutineTable[RegNtPreOpenKeyEx] NanosRegNtPreOpenKeyExCallback; regRoutineTable[RegNtCallbackObjectContextCleanup] NanosRegNtCallbackObjectContextCleanupCallback; regRoutineTable[RegNtPreQueryKeySecurity] NanosRegNtPreQueryKeySecurityCallback; regRoutineTable[RegNtPreSetKeySecurity] NanosRegNtPreSetKeySecurityCallback;完成上述注册表的函数之后我们就完成了注册表的分层合并和写入的功能了。 3. 文件分层 文件分层来说和注册表类似也可以使用两种方式来实现 基于用户层API HOOK技术。基于文件过滤驱动来实现。 这里我们使用基于Minifilter的文件系统过滤驱动来实现Minfilter基本框架如下 我们使用FltRegisterFilter来注册文件系统过滤驱动如下 NTSTATUS FLTAPI FltRegisterFilter(PDRIVER_OBJECT Driver,const FLT_REGISTRATION *Registration,PFLT_FILTER *RetFilter );该函数需要我们提供各种文件系统的回调函数如下 typedef struct _FLT_REGISTRATION {USHORT Size;USHORT Version;FLT_REGISTRATION_FLAGS Flags;const FLT_CONTEXT_REGISTRATION *ContextRegistration;const FLT_OPERATION_REGISTRATION *OperationRegistration;PFLT_FILTER_UNLOAD_CALLBACK FilterUnloadCallback;PFLT_INSTANCE_SETUP_CALLBACK InstanceSetupCallback;PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK InstanceQueryTeardownCallback;PFLT_INSTANCE_TEARDOWN_CALLBACK InstanceTeardownStartCallback;PFLT_INSTANCE_TEARDOWN_CALLBACK InstanceTeardownCompleteCallback;PFLT_GENERATE_FILE_NAME GenerateFileNameCallback;PFLT_NORMALIZE_NAME_COMPONENT NormalizeNameComponentCallback;PFLT_NORMALIZE_CONTEXT_CLEANUP NormalizeContextCleanupCallback;PFLT_TRANSACTION_NOTIFICATION_CALLBACK TransactionNotificationCallback;PFLT_NORMALIZE_NAME_COMPONENT_EX NormalizeNameComponentExCallback;PFLT_SECTION_CONFLICT_NOTIFICATION_CALLBACK SectionNotificationCallback; } FLT_REGISTRATION, *PFLT_REGISTRATION;同样对于上述文件过滤驱动我们需要实现其所有回调函数这里我们简要介绍几个功能 IRP_MJ_CREATE是文件创建的回调函数在该函数中我们需要实现文件的重查询文件的写时拷贝文件安装属性等功能。IRP_MJ_SET_INFORMATION文件设置这里有两个重要的流程需要处理就是删除和重命名对于操作系统层的文件需要对其进行虚拟删除一般是通过标记法来标记文件的删除。IRP_MJ_DIRECTORY_CONTROL这个是目录文件的查询这个函数也是非常复杂的一个函数主要需要对操作系统层和数据层的数据进行查询合并。 我们对IRP_MJ_CREATE重查询的关键代码做分析大致如下实现对文件的重查询 FLT_PREOP_CALLBACK_STATUS NanosFileCreatePreCallback(PFLT_CALLBACK_DATA Cbd, PCFLT_RELATED_OBJECTS FltObjects, PVOID *CompletionContext) { UNICODE_SIRING NewFileName; //将要重定向的目标文件路径//... FileObject Cbd-Iopb-TargetFileObject;status IoReplaceFileObjectName(FileObject ,NewFileName.Buffer,NewFileName.Length); //替换文件对象的名称if (status 0){FileObject-FileName NewFileName;NewFileName.Length 0;NewFileName.MaximumLength 0;NewFileName.Buffer 0;}Cbd-IoStatus.Status STATUS_REPARSE; //告诉系统重新分析文件对象的名称将对新文件名发起一个新的I/O请求。//... }4. 实现效果 通过上面的文件和注册表分层实现之后我们就可以完成对数据的分层实现了一般来说为例不影响用户的体验对于分层数据磁盘我们是隐藏起来因此在使用的时候我们并无法看到该磁盘的存在该磁盘被合并到了整个操作系统层实现如下 首先我们将分层驱动停用查看操作系统盘和数据盘数据如下 启用我们数据分层驱动之后我们可以看到数据盘的数据已经合并到了操作系统盘C盘如下 可以查看具体数据如下 至此我们完成了操作系统和整个数据盘的合并或者换一种说法我们将操作系统和数据层分开存储但是合并显示了。 和数据分层类似我们可以对整个应用程序进行分层可以参考https://blog.csdn.net/tianxilink/article/details/132612811?spm1001.2014.3001.5502的实现。
http://www.hkea.cn/news/14462984/

相关文章:

  • 微信网站是什么意思北京免费发布企业信息网站
  • 做响应式网站怎么设计恩施网站制作公司
  • 网站设计咨询苏州快速建设网站公司
  • 仿站小工具+wordpress网站文章百度不收录
  • 网站开发专业前景小程序制作教程零基础入门
  • 做酒的网站有哪些怎么制作网站站内链接
  • 吉林做网站公司厦门蓝典网站建设
  • 做区块链在哪个网站想自己做网站怎么做
  • 南京网站开发南京乐识专注免费logo头像在线制作
  • dede本地搭建好网站后台密码和用户名是什么怎么做像滴滴一样网站
  • 做设计外包的网站创建微信公众号教程
  • 培训机构网站建设方案网站页面优化简单吗
  • 北京网站建设方案品牌公司wordpress主题微博
  • 上海做网站高端产品设计工具
  • 江门网站开发wordpress 分类调用
  • 南京哪家公司做网站farfetch 购物网站
  • 无锡网站的优化上海定制网站建设公司哪家好
  • 企业网站建设多少家seo求职信息
  • 网站建设宁波深圳建筑网站
  • 怎么做科技小制作视频网站扬中潘杰
  • 网站建设企业电话网站备案 湖北
  • 网站做城市地图推广任务平台
  • 金华市住房和城乡建设局网站深圳vi设计企业
  • 怎么在网站上做图片轮播手机模板网站开发
  • 网站的空间是什么意思网站备案证书安装
  • 织梦系统怎么做单页网站大企业服务品牌建设
  • 外贸营销型网站建设平台西安网站制作多少钱
  • 澧县网站建设wordpress 配置安装
  • 东莞网站建设教程cms网站开发网站模板
  • 网站推广资讯建设棋牌网站流程