CN1954297A - 在具有病毒、间谍软件以及黑客防护特征的虚拟处理空间中的隔离复用多维处理 - Google Patents

在具有病毒、间谍软件以及黑客防护特征的虚拟处理空间中的隔离复用多维处理 Download PDF

Info

Publication number
CN1954297A
CN1954297A CNA2005800083183A CN200580008318A CN1954297A CN 1954297 A CN1954297 A CN 1954297A CN A2005800083183 A CNA2005800083183 A CN A2005800083183A CN 200580008318 A CN200580008318 A CN 200580008318A CN 1954297 A CN1954297 A CN 1954297A
Authority
CN
China
Prior art keywords
data
computing environment
reservoir
processing logic
equipment
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CNA2005800083183A
Other languages
English (en)
Inventor
肯尼思·拉尔格曼
安东尼·B·莫尔
杰弗里·布莱尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
VIR2US Inc
Original Assignee
VIR2US Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=34837764&utm_source=***_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=CN1954297(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by VIR2US Inc filed Critical VIR2US Inc
Publication of CN1954297A publication Critical patent/CN1954297A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)
  • Hardware Redundancy (AREA)
  • Multi Processors (AREA)

Abstract

信息装置、计算设备或基于其他处理器或微处理器的设备和***提供了安全性和反病毒、反黑客和反网络恐怖特征,并且可以自动地创建多个顺序地或并发地和间歇地隔离和/或受限的计算环境,以通过使用这些计算环境,结合移动和复制数据的受限和受控的方法,以及破坏位于计算环境和数据存储器中的而已代码的进程,防止病毒、恶意或其他计算机入侵。利用维持在单个物理处理器上执行的多个进程的隔离的***、设备、架构和方法来时间复用处理流。虚拟多位处理空间和虚拟处理环境。在单个CPU中时间复用处理。使用地址控制和映射来进行进程隔离。在物理和/或虚拟处理或计算空间中选择、配置、切换和/或复用多个进程,以创建物理和/或虚拟处理或计算环境。

Description

在具有病毒、间谍软件以及黑客防护特征的虚拟处理空间中的隔离复 用多维处理
相关申请
本申请按照35 U.S.C 120要求于2004年12月23日申请的、名称为“Isolated Multiplexed Multi-Dimensional Processing In a VirtualProcessing Space Having Virus,Spyware,And Hacker ProtectionFeature”的美国实用专利申请No.11/022,290以及名称都为“ComputerSystem Architecture And Method Providing Operating-SystemIndependent Virus-,Hacker-,And Cyber-Terror-Immune ProcessingEnvironments”的、在2004年1月15日申请的美国实用专利申请No.10/760131和在2004年10月13日申请的PCT/US2004/33955的优先权;两者都是Kenneth Largman,Anthony B.More和Jeffrey Blair作为发明人,每件申请都在此引入作为参考。
技术领域
本发明一般涉及计算机、信息装置、移动通信设备及其他电子设备的安全和防病毒、防黑客、防网络恐怖的特征;尤其涉及支持安全和防病毒、防黑客和防网络恐怖特征的计算机、信息装置、移动通信设备和其他电子及计算设备,其产生多个同时或顺序的时间处理环境和过程及程序,其可以防止可能存在于设备中的恶意代码影响***或其他用户或程序数据。
背景技术
当基于现有技术时,计算机、蜂窝电话、以及使用计算机或处理器技术的宽频设备容易受到计算机黑客、病毒、网络恐怖、间谍软件、和/或其他恶意的或有害的计算机程序代码的攻击。虽然防病毒软件是已知的,对于每一种被编写和释放的新病毒而言,这种防病毒软件经常会变得过时。此外,对某些计算机的至少某些破坏通常是在这种释放的初始阶段进行的。使用防火墙及其他防护措施也是已知的,然而,防火墙通常并不集成到便携式计算机或通过公司信息技术(IT)环境外部的公用网操作的便携式计算机中,在任何情况下多数黑客技术都可以存在以攻克这种防火墙。每年来自计算机病毒、间谍以及黑客的破坏的全世界范围内的开销被估算为达到100亿美元。更加重要的是不断增加计算机的可靠性,以控制和保持空中交通、运输***、大楼环境控制、股票市场、电话***、核电站、以及其他公共的和私有的基础设施的运行,这种恶意代码形成的潜在危害将超出任何金钱估价。
所需要的是一种提供免除计算机黑客、病毒、间谍、网络恐怖袭击等、恶意行为的措施的架构、***和操作方法。在某种意义上,保留对抗这种恶意代理的通用杀病毒软件的需求。也保留对与常规的计算机(其允许用户在需要时通过回复到已知的未受感染的操作***和应用程序软件和/或数据的安装来启动“修复”)不同的计算机的需求,该计算机复位或擦除存储器和数据存储器以在打开文件或数据集之前创建已知的未受感染的或已杀过毒的储存环境。
附图说明
图1示出了根据现有技术的膝上型计算机或其他计算***;
图2示出了包含本发明的一个实施例的膝上型计算机***或其他信息装置;
图3示出了根据本发明的一个实施例用于支持多个独立的计算环境的架构和***的示意图;
图4示出了使用本发明的一个实施例的方法的实施例示意流程图;
图5示出了启动计算环境的方法的一个实施例的示意流程图;
图6示出了用于配置计算环境的一个或多个开关***的方法的一个实施例的示意流程图;
图7示出了包含专用子***或计算环境及公共控制器的本发明的另一个替换实施例;
图8示出了本发明的另一个替换实施例;
图9示出了本发明的架构和***的又一个替换实施例的实施例;
图10示出了本发明的架构和***的再一个替换实施例的实施例;
图11示出了具有组合的控制计算环境和至少一个隔离计算环境以用于用户处理的本发明的附加实施例;
图12示出了提供单个物理计算环境的本发明的架构和***的一个实施例,但是其使用间歇访问和组件和访问的时间分离分配来支持多个逻辑或虚拟计算环境;
图13示出了根据本发明的某些方面的本发明的架构和***配置的另一个实施例;
图14示出了例如PC卡实现的本发明的接口卡实施例的实施例;
图15示出了表示PC卡和***总线、主总线以及主处理器之间连通性的图14的PC卡实施例的实施例;
图16示出了在本发明的一个实施例内的动态配置和组件切换以及连通性的特征;
图17示出了在本发明的一个实施例内的动态配置和组件切换以及连通性的替换特征;
图18示出了包含本发明的计算环境如何耦合多个键盘和鼠标并提供多个分离的分层视频集的本发明的一个实施例的又一特征;
图19示出了其中处理或计算环境被保持为与处理器输入和处理器输出隔离的处理***配置的一个实施例;
图20示出了具有多个虚拟的和物理的处理或计算环境的N维虚拟处理空间的实施例;
图21示出了用于保持输入与处理器之间的隔离的方法的实施例;
图22示出了用于在仅具有一个处理器的物理或虚拟处理环境中执行多个进程的时间复用的***、设备和架构的特定实施例;
图23示出了用于保持计算机中的多个处理之间受控隔离度的另一个***的实施例。
发明内容
本发明提供安全、防病毒、防黑客及防网络恐怖的特征,并且可以自动创建多个顺序地或同时地以及间歇地隔离的和/或受限制的计算环境,以通过使用这些计算环境结合移动和复制数据的受限制和受控的方法,结合破坏位于计算环境和数据存储器中的恶意代码的进程来防止病毒、恶意的或其他计算机入侵(hacking)、计算机或设备的损坏和故障。
在一个实施例中,本发明提供一种用于配置和操作的信息装置架构、***、设备和方法。一种具有用于程序和数据的第一储存器以及处理器逻辑并且执行计算机程序指令以执行涉及用户数据的任务的类型的信息装置,该信息装置操作,从而创建并保持分离的控制处理环境和用户处理环境,以便:(1)使具有未知或非信任内容的用户数据在控制处理器逻辑中不会暴露给可以执行嵌入在该用户数据中的任何计算机程序代码指令的计算机程序代码;以及(2)当与第一存储存隔离时,具有未知或非信任内容的用户数据仅暴露在用户处理器逻辑环境中不同于第一储存器的临时储存器中。
在另一个实施例中,本发明提供一种信息装置,该信息装置具有至少一个处理逻辑设备,用于执行至少一个指令;第一储存器,用于存储第一数据和包含所述至少一个指令并包含用户数据的第一程序代码;第二储存器,用于存储第二数据;切换***,用于在自动控制下可选择地独立地耦合和去耦合所述处理逻辑设备与第一储存器和/或第二储存器,该切换***从所述处理逻辑设备接收至少一个控制信号以用于选择该切换***的状态;所述处理逻辑设备根据以下条件在控制配置和用户数据配置下操作:(i)当该处理逻辑装载有不能执行具有非信任内容或不是源自已有的受控环境的数据项的程序指令时,该处理逻辑设备可以与第一储存器耦合;(ii)当该处理逻辑装载有可以执行具有非信任内容或不是源自已有的受控环境的数据项的程序指令时,该处理逻辑设备不能与第一储存器耦合;(iii)当该处理逻辑装载有可以执行具有非信任内容或不是源自已有的受控环境的数据项的程序指令时,该处理逻辑设备可以与第二储存器耦合;以及(iv)当该处理逻辑装载有仅能将数据项从第一储存器复制到第二储存器或从第二储存器复制到第一储存器的程序指令时,该处理逻辑设备可以与第一储存器和第二储存器耦合。提供一种配置和操作该信息装置的方法。
本发明的实施例提供在物理和/或虚拟处理或计算空间中选择、配置、开关和/或复用多个进程,以创建物理的和/或虚拟的处理或计算环境。在一个特定的实施例中,以保持进程之间的隔离的方式来提供多个进程的时间复用,以便在一个进程(例如执行程序病毒)中的问题不会对另一个进程或存储的程序或数据带来影响。隔离也可以通过信任的管理员使用信任的架构和程序元件来有选择地无效(override)。
本发明的实施例可以应用到各种电子设备和信息装置中,例如从包含但不局限于以下装置的组中选择的装置:包含处理或计算逻辑的任何设备、计算机、笔记本电脑、个人数据助理、个人数据管理器、蜂窝电话、移动电话、无线电接收机、无线电发射机、GPS接收机、卫星电话、车载计算机、机载计算机、导航设备、家用电器、打印设备、扫描设备、照相机、数字照相机、电视接收机、广播控制***、电子工具、医疗监控设备、安全设备、环境控制***、进程监控或控制***,以及这些装置的任何组合。
优选实施例的描述
本发明一般涉及计算机、信息装置、移动通信设备、蜂窝电话以及移动电话、个人数据助理(PDA)、音乐储存设备及播放器、数据管理器、包含这些功能元件的混合设备,以及其他电子***和设备。本发明还特别涉及提供安全特征和防病毒、防黑客和防网络恐怖的特征的这种***和设备;并且还特别涉及可以自动创建多个顺序地或同时地以及间歇地隔离的和/或受限制的计算环境,以通过使用这些计算环境结合移动和复制数据的受限制的和受控制的方法,结合破坏位于计算环境和数据存储器中的恶意代码的进程来防止病毒、恶意的或其他计算机入侵、计算机或设备的损坏和故障。
在本发明中,通过提供操作计算设备和其他信息装置的架构、***和途径及方法来满足这些需求。该新的方法导致对黑客和病毒以及其他恶意代理和代码固有地具有免疫力的计算机和信息装置。此外,与允许用户在需要时通过回复到以前的软件备份启动“修复”的计算机不同,本发明的架构、***和方法的实施例在打开每个文件之前复位或擦除存储器和数据存储器,以保持已有的未受感染的或已杀过毒的储存器和处理环境。例如,使用这一新的技术,数据储存器可以自动地被重新格式化或擦除,并且在该计算环境中移动或打开新的文件之前,在每一个或每一次计算环境被暴露给非信任的或未知的代码之后,存储器都可以被清除或复位。
将会理解的是,在本发明的实施例的架构、***和方法的环境中,本发明实施例提供由自动控制***创建、操作和终止的间歇地、顺序地隔离的,和/或可通信地受限制的计算环境。根据计算环境和/或包含或使用该计算环境的设备的需求可以实现不同的隔离级别和/或安全或免于恶意代码影响的级别。
本部分描述了用于保护计算机和计算设备免受黑客、病毒、网络恐怖的攻击,以及免受诸如间谍软件(spy-ware)、按键录音机的潜在损坏或侵扰以及来自黑客、病毒、蠕虫、特洛伊木马的损坏以及类似的威胁和攻击的架构、***、装置、方法、计算机程序和计算机程序产品。网络恐怖是一种例如通过源自非授权进入用户的私人数据的企图的攻击来削弱或毁灭计算***的企图。本发明提供了针对潜在的网络恐怖事件的解决方案。
现有技术中的计算机***典型地包括:处理器、存储器、显示器、显示控制器,以及输入/输出控制器。本发明提供多个专用子***(物理地或时间地分离),其容纳在计算机***(或其他设备)外壳或机箱内。这些专用子***典型地执行有限的功能,并且与其他专用子***之间具有有限的交互。
通用或专用子***(在某些实施例中也称作“隔离的处理单元”,“隔离的计算环境”,或也简称为“计算环境”,有时还以功能性描述的形容词为特征)可以出于很多目的而被设计成包括支持存储信息、执行工作以及处理通信。
还应注意的是,计算环境和这种计算环境的组件可以是模块化的或动态配置的,以便特定的缺陷组件和/或计算环境可以通过例如CSCE或CCE计算环境的控制实体来去除服务,直到包含计算环境的缺陷组件或组件集被换出工作部分或被修复。可以执行附加组件的可选诊断过程(例如通过一个或多个开关或其他方式)以及测试和移除组件,以便识别和隔离所述问题。
下面描述计算环境方面。由于可以实现的特定实施例和物理实施方案的广义范围,本描述稍微概括一些。计算环境可以执行一个或多个计算机程序指令。一个或多个计算环境可以与计算机***耦合。该计算环境可以通过物理表示、逻辑表示和/或物理表示与逻辑表示的组合来表示。在物理表示中,计算环境可以包含多个物理计算机组件,诸如中央处理单元(CPU)、一个或多个存储器、以及一个或多个***设备。在逻辑计算环境表示中提供了通过使用一个或多个公共的计算组件,第一计算环境可以与其他计算环境共存。第一计算环境与其他计算环境隔离,从而支持第一计算环境与其他可能传递病毒、黑客或其他故意的或偶然的恶意代码或数据的计算环境之间的通信。例如,在一个实施例中,仅存在有限信息集的间接通信。在另一个实施例中,可以存在直接通信,但是这种通信可能限定在特定的方式,以便仅允许授权的数据类型和数量,例如窗口屏幕坐标、鼠标位置坐标,或其他这里另外详细描述的数据类型和数量。可以使用过滤器或限幅器来限制第一计算环境与第二或其他计算环境之间的通信。在一些实施例中,这些过滤器和/或限幅器是不会被恶意代码破坏的硬件电路,在其它实施例中,软件和/或固件可以用于这种过虑或限制,并且在其他实施例中也可以使用混合的软件-硬件/固件过滤器和/或限幅器。每个计算环境典型地能够执行包括通过I/O开关***从一个或多个***设备接收输入以及通过I/O开关***向一个或多个***设备发送输出的处理行为。由一个计算环境执行的处理行为典型地独立于另一个计算环境的处理行为。根据本发明的一个实施例,一个计算环境的潜在恶意处理行为不会直接干涉到另一个计算环境的处理行为。
根据一个实施例,隔离计算环境和其他物理的或逻辑的计算环境可以存在于与计算机***对应的不同的地址空间中。因此,每个物理或逻辑计算环境与其他逻辑计算环境中的每一个的操作隔离。此外,应当明白的是,可以使用各种配置来管理多个逻辑计算环境的创建和操作。此外,还应当明白的是,操作***(例如Linux,Macintosh,Microsoft Windows(R),和/或其他操作***)可以与逻辑计算环境,物理计算环境和/或逻辑计算环境与物理计算环境的组合对应。
控制计算环境可以从用于配置和/或重新配置数据存储器开关***配置和/或I/O开关***配置的计算环境中进行选择。数据存储器开关***配置可以支持控制计算环境与保护数据存储器之间的通信,如上所述。根据本发明的一个实施例,初始引导序列可以识别计算机COMS数据中的初始配置信息,以识别控制计算环境、保护数据存储器,以及启动对数据存储器开关***配置和/或I/O开关***配置的配置。
一个或多个用户计算环境可以从与控制计算环境和其他用户计算环境隔离执行计算处理的计算环境中进行选择。可以通过用户计算环境经由可与该用户计算环境通信耦合的数据存储器接收数据(例如计算机文件)。根据一个实施例,控制计算环境可以与第一数据存储器和保护数据存储器可通信地耦合,该第一数据存储器可以包括用户信息,该保护数据存储器也可以包含用户信息。控制计算环境被配置成支持在保护数据存储器与第一数据存储器之间复制信息。在控制计算环境初始化第一数据存储器之后,第一数据存储器可以从控制计算环境中可通信地去除(de-attach),并且随后附加到与独立于其他计算环境而使用的用户计算环境上。在用户计算环境完成一个行为(例如编辑文件,接收电子邮件等)之后,第一数据存储器可以从用户计算环境可通信地去除并附加到控制计算环境中。同样,控制计算环境被配置成支持在保护数据存储器与第一数据存储器之间复制信息。因此,可以独立于用户计算环境的处理行为而保存数据。因此,在用户计算环境内处理的恶意代码不会破坏在保护数据存储器上存储的其他文件和/或数据。
在一个实施例中,当仅为复制操作时,可有选择地和间断地移除复杂的处理能力(例如可以提供执行恶意计算机程序代码或软件的能力的处理能力)。复杂的处理或进程本身在复制操作期间响应于来自控制实体的信号而被切换出访问或被禁用,然后当所述操作完成时重新激活。该操作例如可以用于文件保存操作,或者当将数据或主模板复制到计算环境中时使用。
返回到其他特征的描述,我们注意到,在一个实施例中,储存器专用子***或计算环境(或保护储存器计算环境)可以被设计成存储数据和检索数据,同时允许对所存储的数据进行有限的存取。工作专用子***(也称作独立的处理单元计算环境)可以被设计成处理信息以实现与具有各个应用程序的通用计算机相同的结果,但是同时又整体保护该***和用户数据以免于丢失或破坏。通信专用子***(或控制和切换计算环境)可以被设计成促进其他专用子***或计算环境之间的通信。
根据要实现的处理,每个专用子***或计算环境典型地可以包括下述中的一个、某些组合或所有:处理能力、存储器、逻辑,和用于耦合专用子***或计算环境与其他(内部或外部)组件通信的接口。处理能力可以是某些类型的计算机处理单元(CPU)或ASIC。处理能力可以是计算机***CPU,或由多个专用子***共享的CPU。因此,与专用子***关联的处理能力也可以由计算机***或其他专用子***使用。
本发明的典型特征和方面首先被描述成提供本发明的架构、特征和优点的至少部分介绍。该部分后面还详细描述了几个典型的架构和结构拓扑,以便本发明的广义范围和特定的结构和方法的实施方案可以更易于理解。
本发明的各个实施例同时和/或间断和连续的或时间(时分)隔离,和/或处理或计算环境、数据储存器和进程及通信的限制。在至少一些实施例中,在使用该计算或处理环境用于后续操作之前,例如在打开用于一个操作的其他文件或数据集之前,该隔离和/或限制与事先使用的处理或计算机环境的擦除、重新格式化、复位或其他杀毒处理组合。
在一个实施例中,计算机***或包含计算环境或能力的其他设备在连续和自动擦除/复位以及复制所有或部分模板的基础上可以提供有新型自我修复特征,在每次打开新的文件之前,可以修复计算机或防止在第一种情况下失败。
在一个典型的实施例中,用户数据存储在一个或多个同时或间断连续隔离的和/或受限的数据存储器中和/或间断隔离的和/或受限的保护计算环境中。这里,一个或多个保护数据存储器或保护计算环境可以被称作保护数据储存器(PDS)。保护数据储存器可以存储任何类型的数据,比如用户数据和文件、应用程序代码程序或小程序、操作***及其部分、设备驱动器、状况或状态信息,或任何其他任何类型的信息。
虽然保护数据存储器或更通用的保护数据存储器的结构、组织、和存储的内容可以根据***而变化,下面相对于一个实施例来描述某些可能存在的特征(包括某些可选特征)。保护数据储存器代表用于以防止数据(任何数据,包括但是不局限于该数据存储器中的用户数据、计算机程序代码、电子邮件、网页、指令、操作***代码,或任何其他二进制比特集或集合)执行的方式存储信息的数据存储器。因此所述数据并不暴露于典型地根据存储信息的内容对存储的数据或信息执行处理或操作的处理环境下。该同样的暴露隔离也适用于在数据和软件复制操作期间,从而包含在其中的任何恶意代码直到其处在隔离的计算环境中都不能执行,在该环境中,到执行能力中的暴露将至多污染没有包含在隔离中的特定的计算环境。
根据本发明的一个实施例,用户文件(例如用户字处理文档、电子邮件、电子表格、Microsoft Outlook、或其他联系文件、密码、蜂窝电话电话号码表、PDA存储数据,或任何其他用户数据或程序)可以存储在保护数据存储器中。在一个实施例中,通过将数据存储在保护存储器中实现保护,从而数据不能被任何会导致例如可能存在于病毒、机器人、黑客代码或其他恶意代码中的恶意代码或二进制序列执行的结构或进程访问。理想的,可以独立于在保护数据存储器上或在计算机(或其他电子设备例如PDA,蜂窝式电话,模拟或数字照相机,或其他信息装置)的位置中存储的文件的原始版本,对原始数据的副本执行用户操作,例如编辑对应的工作处理文件或打开和查看电子邮件信息(以及其上的任何附件)。原始文件或数据集的保护存储以及对文件或数据的副本的存储和操作的分离还会在其他地方更详细地描述。在此上下文中,可以明白的是,与可以执行病毒或其他恶意代码的处理器分离不是问题,这种代码简单的是“0”和“1”比特的集合,即使在其存储在数据存储器或从一个数据存储器移动或复制到另一个数据存储器时。
可以使用一个或多个本发明的数据存储器来定义保护数据存储器。多个保护数据存储器可以可选地定义,但是通常不是必须的。根据本发明的一个实施例,独立于可以修改用户文件的处理环境,保护数据存储器可以用于存储用户数据或其他文件(可能包括计算机应用程序、操作***、以及其他非用户代码或数据)。应当注意,主模板可以是以保护储存器的形式存储的非用户数据的一种类型。这另外也可以被称为保护主模板存储器。
根据本发明的一种调整,编辑文档的用户决定会使该文档的原始版本从保护数据存储器复制到第二数据存储器。可与第二数据存储器耦合的用于编辑原始文档的用户计算环境可用于创建该文档的第二版本。用户的行为,例如保存该文档的第二版本,产生将该文档的第二版本从第二数据存储器复制到保护数据存储器的一系列的指令。将该文档的第二版本复制回到保护数据存储器可以改写该文档的原始版本。
将在本说明书其他部分详细描述用于存储和从保护数据存储器和/或从保护主模板存储器检索二进制数据的结构和过程,以及在没有使可能包含恶意代码的或存储在相同存储设备上或在相同计算机***内的数据受影响的情况下如何操作在计算***中处理的该保护信息。
下面返回到对该***的描述,其利用切换通信,控制计算环境根据需要同时或间断地隔离和/或限制与保护数据储存器的通信,以保护该保护数据储存器免于处理或执行可能出现未知的或潜在的恶意代码的代码。保护数据储存器上的数据目录例如可以通过控制计算环境或保护储存器计算环境创建(进一步参见对这些特定的计算环境配置的描述),并且该目录可以传送至(同时或间断地)隔离的和/或受限制的计算环境,例如桌面计算环境。这些控制计算环境、保护储存器计算环境、以及桌面计算环境的实施例,以及其他计算环境在本说明书的其他地方及附图中将更详细的描述。应当注意,在一个实施例中,所述目录通过可以包含有限处理能力的保护储存器计算环境来创建。例如,其可以包含读取和写入ASCII以及扩展的ASCII文件名和目录的功能,并且可以包含复制和移动数据的能力,可以包含创建文件目录的能力,但是通常不包含识别或执行代码或可能对***、程序或数据完整性有害的其他功能所需要的其他功能或能力。该信息可以通过控制计算环境收集或通过保护储存器计算环境发送至控制计算环境。
应当理解的是,在本发明的至少一个实施例中,以下结构和/或过程中的一个、一个以上、或任意组合都可以组合成一个计算环境配置和/或进程,并且这些可以预先确定或动态确定和配置:(a)控制环境,(b)保护储存器,(c)桌面环境,(d)开关,(e)开关配置,(f)重新格式化/擦除环境,(g)视频控制环境,(h)视频处理,以及任何这些环境的组合或子集。如在本说明书其他地方描述的,也可以同时或另外实现其他可选的结构和/或过程元件。因此,例如,在一个实施例中,本发明可能由两个计算环境构成,一个包含所有的环境和开关以及开关配置,但是不包含用户环境,以及第二环境仅包含用户环境。
为了打开用户数据,用户可以选择例如文件名或“捷径”或“别名”的数据表示,其位于桌面计算环境中或由桌面计算环境来识别。实际的文件并不在桌面计算环境中打开或执行,并且在本发明的实施例中,并不实际存在于桌面计算环境中。反之,该文件名和位置信息(该文件或数据集的指针或参考)也可以随后被发送至控制计算环境,该控制计算环境可以不与桌面计算环境隔离。在该实施例中,控制计算环境可以将与由用户(或其他指定实体)选择的文件名对应的文件从保护数据储存器复制到多个同时或间断隔离和/或可通信地受限的计算环境中的一个(例如用户计算环境#1)。在该实例中,命令被发送给用户计算环境#1以打开所述文件,并且命令被发送给开关以终止与用户计算环境#1的无限通信。与这种操作有关的架构、***和方法在本说明书的其他部分将有更详细的描述。
至少部分地出于此种原因,如果用户数据被恶意代码“感染”并执行,除了对原始受感染的数据文件的损坏外,其不能损坏或破坏免于执行恶意代码的破坏的储存器中的其他用户数据或信息。同时如果应用程序计算机代码或操作***程序代码已被污染或损害,因为最多是副本已被污染或损害,并且不会被重复使用,所以这种污染或损害将不会对该***或设备的继续操作具有任何影响,这同样是正确的。
在该典型的实施例中,一个可选的受限的通信通路可以将用户计算环境#1连接到控制计算环境,并且该通信通路可以以几种方式中的任何一种或多种来进行限制。例如,该通信通路可以通过ASIC限幅器或过滤器来限制,该限幅器或过滤器可能具有高度受限的通信能力,例如仅允许预定的ACSII字符集通过,该集或排序被已知具有确定的或预定的不支持可执行指令的高概率。该限幅器例如可以将试图传送的比特或字符集与允许的比特或字符集进行比较。在该特定的实施例中,例如,可以仅包含或拥有被要求来向控制环境传送非常有限数量和/或二进制“0”或“1”比特的组合或序列的功能,表示例如:“保存文件”和“擦除/复位该计算环境”的概念,并且例如可以包含对在某一时间周期或响应某一或某些事件其可能传送的信息量的限制。
可替换的或者另外,例如,电子的或光脉冲或其他信号可以被传送至与控制环境连接的接收机,并且例如指示“保存文件”的一个脉冲,以及指示“擦除/复位该计算环境”的两个同步的连续脉冲。将会理解的是,这些仅仅是示例,那些本领域普通技术人员根据这里所提供的本说明书将会明白,也可以实现其他限制信息量或信息特性但提供所需操作的信令方案。
在数据存储器及其计算环境已“暴露”给用户文档,并且因此潜在地暴露给病毒、间谍软件或类似有意或无意的恶意程序代码后,数据储存设备可以被完全地重新格式化和/或清除、擦除并在任意组合下被复位,从而消除所有的数据,例如隐藏分区、驱动器、引导扇区、隐藏代码等。计算环境也可以以确保在其下一次使用之前没有残余污染的方式被“重新设置”(例如能量循环或清除或重载)。
上述(以及在本说明书其他地方的各个替代实施例中的)切换及复制进程可以用于安全地向/从隔离的计算环境和数据储存设备或储存子***移动数据;该进程可以由控制计算环境以及相关的软件和连接的开关控制和编排。根据需要,可以在数据储存设备之间复制主模板(在其它地方的各个实施例中将更详细的描述,但是其以简化的术语包含或包括干净的未受污染的可执行代码)。
结合几个实施例描述了几种开关和切换***及装置。此外,因为本发明的架构、***、和方法广泛应用到许多不同的物理方案和设备类型中,本描述稍微概括一些。在一个实施例中,可以使用普通的开关***来耦合一个或多个源和一个或多个目的地以支持源与目的地之间的通信,例如第一与第二储存器设备之间或网络接口卡(NIC)与计算环境之间,以便仅命名可以被命名的多个示例中的两个。该通信可以支持源与目的地之间的双向或单向通信。所述普通的开关***可以与用于确定哪个源将与哪个目的地耦合的开关配置耦合。该开关配置例如可以包括一个或多个逻辑电路或多个电路,数据文件,查找表,和/或任何其他用于识别或指定源与目的地之间的连接或有效激活的通信通路的装置。在一个实施例中,该开关配置可以识别无效或未激活的通信通路,在又一个实施例中,该开关配置可以识别可能的源与目的地之间的无效(未激活)或有效(激活)的通信通路。该普通的开关***可以以硬件、软件和/或硬件与软件的结合实现。
根据本发明的一个实施例,该普通开关***可以以硬件实现为物理开关。所述源可以被表示为IDE驱动,所述目的地可以表示为计算环境。每个源可以使用IDE电缆与普通的开关***耦合。每个目的地也可以使用IDE电缆与普通的开关***耦合。根据本发明的一个实施例,所述开关配置可以根据该开关的物理能力表示,并且其中该IDE电缆物理地耦合至该开关。从而该物理开关的物理操作和/或扭曲可以将与源对应的给定的IDE电缆连接到与目的地对应的给定的第二IDE电缆,以用于支持源与目的地之间的通信。源与目的地之间的通信可以支持双向通信。根据本发明的一个实施例,该开关可以手动和/或在一个或多个计算环境的指示和/或控制下激活。
根据本发明的一个实施例,普通开关***可以以硬件和软件的结合来实现,例如通过使用与普通开关***耦合的计算机***。该计算机***可以执行一个或多个计算机指令并且可以用于配置该普通开关***。几种示例的指令可以包括配置指令、通信指令、以及存取指令。配置指令可以用于配置通信以支持给定的源与目的地之间的通信的激活或去激活。通信指令可以用于接收、发送和/或验证与一个或多个配置相关的信息。例如,通信指令可以用于接收可由配置指令随后使用的信息。存取指令可以用于读取和/或写入与开关配置有关的信息。然而,应当理解的是,也可以使用其他指令和/或指令集。
数据存储器开关***可以包括普通开关***的功能,其中所述源可以表示数据存储器,所述目的地可以表示计算环境。所述普通配置可以用于识别哪个数据存储器与哪个计算环境耦合。如上所述,IDE设备可以表示数据存储器的一个实施例,该数据存储器可以被配置成支持与一个或多个计算环境的通信。
根据本发明的一个实施例,数据存储器开关***可以与数据存储器开关***配置耦合,该开关***配置可以扩展与普通配置对应的特性的数量和/或类型。该数据存储器开关***特性还可以支持配置源与目的地之间的通信。
I/O和/或其他***设备或设备开关***可以包括普通开关***的功能,其中源可以表示***设备,目的地可以表示计算环境。普通配置可用于识别哪个数据存储器与哪个计算环境耦合。键盘设备可以表示***设备的一个实施例,其可以被配置成支持与一个或多个计算环境的通信。
根据本发明的一个实施例,I/O***可以与I/O***配置耦合,该I/O***配置可以扩展与普通配置对应的特性的数量和/或类型。该I/O开关***特性支持配置源与目的地之间的通信。在这种切换和通信通路的上下文内,在一个实施例中,数据存储器开关通信通路被用于将计算环境与数据存储开关耦合。所述数据存储开关通信通路被用于根据数据存储器开关配置支持与至少一个数据存储器的通信,如上所述。根据一个实施例,一个与计算环境耦合的数据存储器包括可由计算环境作为计算机引导设备使用的操作***。
以类似方式,I/O开关通信通路被用于将计算环境与I/O开关***耦合。该I/O开关通信通路可用于将一个或多个***设备与一个或多个计算环境耦合。该I/O开关***配置可用于将输出从一个或多个计算环境导引到单个输出设备。类似的,I/O开关***配置可用于将输入从单个***设备计算设备导引到一个或多个计算环境。
I/O开关***配置可以被配置成根据相应的特性将接收的输入(或输出)导引到至少一个计算环境。并且,该I/O开关***配置可以被配置成根据对应的特性将由一个或多个计算环境产生的输出导引到输入/输出设备,***设备,或该***中的其他某些组件,或从该***中的其他组件导引出(参见本说明书中对特性的描述)。
注意另一个类型的信号,应当注意的是,在一个实施例中,当恶意代码可能不再执行时(例如,当输出已被转换成图形“基元和属性”,和/或其中视频信号是模拟信号时),从每个隔离的计算环境输出的视频信号在处理这些视频信号时可以被组合或混合。这防止了表示发生在隔离的计算环境中的进程的窗口视频信号被用作反对(cross)污染不同的计算环境的介质。(应当注意的是,不是所有的计算环境都需要或产生视频输出信号,因为某些处理特别是在专用设备中的处理可以处理计算环境中的数据但是不提供用户可以浏览的视频显示或信号。)
在一个实施例中,也可以将所谓的“隔离全局工具栏”用于预定的或动态的(例如上下文敏感的)命令和/或其他操作或功能。该隔离全局工具栏可以出现在其自有的隔离视频层或桌面计算环境上以保护其免受恶意代码攻击。有利地是,该隔离全局工具栏总是在最上或响应某些用户命令或行为而显示,从而在一个计算环境中,用户或其他信任的控制实体可以直接控制行为。例如,如果用户看到某些在显示屏的窗口视频部分中呈现的可疑的输出,用户可以访问该隔离全局工具栏并中断在该计算环境中发生的处理,包括可选地采取各种选项,例如保存或不保存文件。在一个实施例中,这为用户或操作者提供了对整个***操作以及在任何计算环境内部发生的操作的管理控制。原则上,全局工具栏可以允许任意操作或功能,但是某些实施例,全局工具栏具有更有限的管理功能或操作集。在某些实施例中,通过全局工具栏访问的功能和操作可以根据***故障、管理喜好、用户喜好、或根据其他规则或政策来设置。
在一个实施例中,这些功能和操作也可以或另外在计算机程序软件指令中执行。在其他实施例中,可以是硬件组件,而在另外的实施例中可以是硬件与软件的组合。因此,每个环境可以用软件隔离,也可以通过软件等执行切换和复制。
应当注意的是,可选的过程步骤可以被删减或消除,并且这里所描述的计算环境的功能可以根据需要被混合和匹配。在某些场合中,对包含或排除可选步骤或过程的判定将在威胁的环境、数据和/或操作的敏感性、速度的需求、存储设备属性(例如磁存储器病毒电子RAM),以及其他因素的范围内进行。例如,控制计算环境的功能可以与桌面计算环境和/或开关配置,和/或开关,和/或保护储存器组合。
本发明的原理超越了任何特定的计算机操作***、应用程序、用户接口、或设备类型或特性。本质上,本发明的架构、***、方法和过程可应用于任何具有可以使用信息(例如以二进制比特形式)执行预期的逻辑或算术操作的逻辑电路的可选设备并因此容易受由于具有引入的不同的或附加信息而改变或破坏的影响,从而不能执行预期的操作或执行附加的操作。在现代设备中,例如计算机、信息装置、蜂窝式或其他移动电话、汽车电子设备、家用电器、GPS接收机、PDA等,逻辑是控制器、处理器、微处理器、或其他可编程逻辑电路或逻辑装置等;并且使用的信息是计算机程序指令和可选的数据。在未来,预计当前开发的可选计算***将进一步被商业化,因此本发明同样将变得可应用于光计算和信息处理***以及光学处理器中。
这里的描述主要集中在计算机和计算环境上,但是将会理解的是,本发明可应用于具有翻译指令和/或数据的逻辑并且易受病毒、黑客、间谍软件、网络恐怖事件或其他外部代理引起的偶然的或故意的恶意攻击的影响的所有设备和***方式。
下面把注意力转到传统的计算***的某些特征以及本发明的各个实施例的比较方面。由于本发明可以以多种不同的物理形式实现,我们描述了多个实施例作为如何实现典型的***的例子。那些本领域普通技术人员将会理解的是,这些仅仅是体现了这些特征中的某些或所有特征的本发明的附加实施例。
图1是表示根据现有技术典型的膝上型(或其他)计算机***1900的图示。该计算机***包括其中设置有电子设备和任何机械组件,例如CPU 1508-1,数据存储器1502-1(典型地以转动式磁硬盘驱动器的形式),以及一个或多个***设备1541-1,1541-2,…,1541-N的机箱或壳体,与现有技术中已知的一样。机箱或壳体1904典型的还安装或承载显示屏1904和键盘以及例如鼠标的指示设备。附加的***设备可以通过所提供的各种典型的连接器端口附接或连接到这种计算机***1900。在这种传统的计算***中,数据存储器1502-1和***设备1514-N通常通过***和***设备总线以固定的拓扑结构耦合至CPU 1508-1,如现有技术中已知的。例如,数据存储器1502-1,典型地为硬盘驱动器或某些固态存储器(RAM),总是耦合至CPU,除非从该***1900中物理地移除。同样,CPU耦合的存储器典型地总是耦合至CPU,除非被移除,在大多数传统的计算***中,这种存储器(比如片上高速缓存器的形式)的特定部分总是并永久地耦合至CPU。类似的,例如CDROM、DVD读取/写入器、网络接口卡(NIC)、调制解调器、软盘驱动器(FDD)、无线接口卡的***设备以及其他***设备都耦合至该***并通过固定总线或互连直接或间接连接至CPU。由于这些连接总是存在,它们会提供将病毒或其他恶意代码引入到CPU、与CPU相关的存储器、BIOS或数据存储器中的机会。这种恶意代码可以立即产生影响或潜伏直到未来的某一时间或事件。这种用于实现对这种攻击免疫的级别的攻击和装置还将相对于本发明的实施例进行描述。
图2示出了典型的信息装置,例如桌面计算机***、膝上型计算机***、笔记本计算机***、个人数据助理(PDA)、固定的或移动的有线或无线通信设备(例如移动电话、蜂窝电话、卫星电话、射频发射机和/或接收机,等等)。通常,本发明的架构、方法、计算机程序以及计算机程序产品是可应用的并且可以与包含或者适于包含至少一个处理元件(例如控制器或微控制器、CPU、ASIC、微处理器、逻辑电路、或任何其他处理元件)的任何电子设备或***一起使用。(本发明的其他实施例已描述,并且可以使用两个或其他多个这种处理元件,包括所列举的处理元件类型的任意组合)。这种***可以被实现来执行各种操作,例如某些预定的,动态确定的或其他逻辑,计算,字处理,电子邮件,网络计算,音乐处理,视频处理,互联网浏览,语音处理或编码或解码,诸如在包含数字照相机的移动电话的数字照相机中的图片或图像获取或处理,GPS信号接收和处理,定位导航,娱乐。那些本领域技术人员根据这里提供的说明将会理解的是,很多电子设备和***都落入到本申请的可应用范畴。本发明提供特殊的优点:希望防病毒和防黑客保护,同时希望同时处理多个应用,通过这些可以分别实现这两个优点。
在所示出的实施例中,创建单个计算环境,或更有利地,在本发明***和方法的大多数实施例中,创建多个多重独立的计算环境1508-1,1508-2,…1508-N。这些计算环境1508具有类似于图7和图8的实施例中的专用子***1120的特征,并且在详细描述本发明的几个实施例之后相似之处将变得更加清晰。独立的计算环境例如可以使用硬连线的或可编程的算术或逻辑电路,可编程微控制器,处理器,微处理器,CPU,ASIC,以任意组合以及可能在诸如微处理器存储器、电源等的支持组件的支持下物理地实现。至少某些实施例使用中央处理单元(CPU)、微处理器、微控制器、ASIC、或某些组合以提供物理结构来创建计算(处理)环境1508。在某些场合下,处理或计算任务的复杂度将规定将支持所需的计算环境的物理元件。在一个实施例中,创建所述计算环境的元件是可动态选择和配置的。这种选择和配置可以在用户控制下进行,或者更典型地,可以根据某些预定的或动态确定的规则或政策,并且可选地,但是是所希望的,根据某些测量的计算***的物理或逻辑状态、环境条件、处理请求和复杂度、应用程序大小和数据集大小,在计算***2000的自动控制下进行。也可以提供备用组件,从而这种备用组件(例如CPU、存储器、储存器、视频处理器、协处理器、调制解调器、网络或以太网处理器,等等)可以接入以替代故障组件。动态分配和配置也可以提供效能,其中存在许多计算环境,其不需要为每个环境提供所有处理能力。
计算环境1508是或可以根据切换命令或I/O开关配置数据或逻辑1512经由可选的I/O开关***1510耦合或可选择地耦合至***设备1514-1,…,1514-N。在本发明的特定实施例中,对可选的I/O开关***1510的任何要求可以取决于比如特定的***设备的特性、以及所需的或所希望的安全或隔离度之类的因素。在一些实施例中,特定的***设备可以与一个或所述选择的计算环境直接连接、永久连接、永久断开、或可切换地连接。图2的计算机***2000例如可以包括附接到机箱或框架1902或由机箱或框架1902支撑的显示设备1904。其通常还包括例如键盘的输入设备和指示设备,但是考虑到很多替代的输入和输出替换(例如语音输入、触摸屏、声音或口头的计算机生成语音等等),这并不是必需的。LCD显示器也可以代替如蜂窝式电话、PDA和数码相机的设备或其他设备中的计算机屏幕。
至于在此所描述的其他开关和切换***,切换可以是机械的、电子的、电子设备、晶体管、二极管、微处理器、数字的或模拟中的任何一种、多种或多种样式,其实现所需的切换并保持所需的或所希望的电压、电流、隔离、阻抗、终端、和/或电气特性。例如,将硬盘驱动器与CPU连接或断开的开关将这样做而不损坏CPU或硬盘驱动器。在具有某些设备的某些情况下,切换可以通过关闭设备、或设备的一部分,或限制工作电压或电流,通过中止设备的时钟,通过中断数据线或通信通路但是不中断电源线,或其他中止操作的方式来实现,如现有技术中已知的。如在本说明书中其他部分所描述的,在一些情况下,这些切换操作意在提供计算***与不同的计算环境1508-1,…,1508-N的组件之间的隔离的保障度。
根据切换命令或数据存储器开关配置数据或逻辑1506,多个计算环境(也称作图7和图8的实施例中的专用子***1120)通过数据存储器开关***1504也可以选择性地耦合或可以耦合至一个或多个数据存储器1502。数据存储器可以是现有技术中任何已知的或将要开发的存储设备的组合,例如包括但不局限于旋转式磁硬盘驱动器、旋转式磁软盘驱动器、CD、DVD、全息记录、基于纳米技术的存储器、固态存储器(RAM、ROM、EEPROM、CMOS等),分子或原子存储器、化学存储器、以及任何其他存储设备或***。将会明白的是,分离的逻辑储存器元件1502-1,1502-2,…,1502-N可以被配置或分配在单个物理设备或在任意物理设备组合上,甚至对单个逻辑储存设备1502-2(例如),可以使用多个不同的物理设备来获取所需的或所希望的储存容量、将数据复制到设备的速度、从储存设备写数据的速度、清除和/或擦除或改写速度和性能、或其他操作特性。例如,在笔记本电脑的一个实施例中,某些数据存储器1502被实现为单个物理硬盘驱动器的逻辑分区。在另一个实施例中,利用固态存储设备实现所有数据存储器1502,以提供快速读取、写入、以及擦除速度性能。各种多端口的存储器类型和结构都是可得到的,并且可用。例如,可以使用Rambus存储器,同样可以使用更多的传统存储器芯片。在又一个实施例中,几个数据存储器1502可以被实现为多磁盘硬磁盘驱动器上的分离的盘片或磁盘。这种驱动器可以具有单个控制器和可控的读取/写入磁头组,或者可以具有独立的控制器或可选择的独立可操作的激励器臂和读取/写入磁头以确保数据通路的隔离,从而恶意代码(例如来自病毒、机器人或计算机黑客)不能从一个计算环境转移到另一个计算环境,并且破坏期望的隔离以及几个计算环境的独立性。
期望的是,对于物理上的小设备(例如PDA,移动电话或其他通信设备),与具有机械移动部分的存储器相比,由于低能耗、较小的尺寸、较低的热量生成、较快的存取速度、读/写速度,以及加快和减缓或擦除的原因,优选是仅使用固态存储器。这种固态存储器可以是设备内部的(例如移动电话),外部的但是通过机械的和电子连接器***或耦合的(例如通过使用紧凑存储卡或模块,索尼SmartMedia,基于Microsoft Windows操作***(OS)和PalmPilot OS的PDA的基本或附加存储器;PDA蜂窝电话组合;PDA、蜂窝式电话、以及数码相机组合设备;数码相机;蜂窝电话,数字音频和/或视频录音机和播放器;MP3播放器;以及其他设备和存储器***,如现有技术中已知的)。也可以使用不属于固态的小型廉价存储器设备和子***。
图1的传统计算机***1900与图2的本发明的实施例2000之间的比较揭示了几个区别。在传统的***中,数据存储器1502-1直接连接或通过某些或多或少的固定或永久的连接而连接到CPU 1508-1,例如通过一个或多个总线或互联。(在某些情况下以及对于某些设备类型,机械和手动地断开连接也是可能的,但是在根据特定存储设备、***设备、或根据处理操作此时的其他***组件的需求或期望的计算机的操作期间,在可编程控制下,这是不可能的)。通过与传统的***1900比较,如果发生的话(取决于数据存储器开关***1504的状态),计算机***2000的几个数据存储器1502-1,…,1502-N通过数据存储器开关***耦合至计算环境(例如,包括某些处理或计算能力(例如但不局限于CPU)的计算环境)。通常,任何一个数据存储器1502可以耦合至任何一个计算环境,或不与任何一个耦合。更典型地,当存在对这种耦合或连接的需求时,任何给定的数据存储器将间歇地耦合或连接到计算环境,以及在存在计算环境期间可以改变的特定的数据存储器1502。除非控制器或控制计算环境特别地希望、要求并允许,主要的缺省设定是这种数据存储器和其他设备不耦合或连接。
此外,在本发明的实施例中,例如特定的CPU的物理组件与特定的数据存储器(例如硬盘驱动器或固态存储器芯片)之间的削减或切换连接可以(但不必须)针对不同的处理操作进行动态改变。同样,在至少某些包括可选的I/O开关***1510和可选的I/O开关配置1512的实施例中,计算环境1508仅通过I/O开关***1510耦合至***设备1514。可切换地连接或耦合可能涉及各种切换方案中的任何一种,例如涉及改变一个或多个电气连接,从接口或***设备移除电源,停止***设备操作所需的时钟信号的方案,以及如现有技术中已知的用于使***设备不出现或不为计算环境可取的其他方案、结构和方法。
将会明白的是,激活或禁止(或连接和断开)数据存储器1502和/或***设备1514的操作可能在程序控制下自动发生,而不需要人为用户干预(虽然激活或禁止可能是由计算机***的用户命令或其他行为的结果),并且当操作本发明的计算机***2000的操作需要时,该激活和禁止可能每秒发生多次。例如,其中计算机具有操作在100M赫兹的接口或总线时,可以根据启动、执行和完成接口或总线上的操作的需要,可切换地耦合和去耦合数据存储器和***设备。例如,切换可以至少发生在1Hz、10Hz、100Hz、1kHz、1MHz和10MHz的速率上,以及更高或更低的速率和任何中间的速率。还将明白的是,根据本描述,数据存储器开关***1504和I/O开关***1510(当存在时)可以同时切换以将不同的CPU激活或连接,或禁止或断开,到数据存储器和/或***设备。
在典型的传统计算机***1900中,***设备1514直接连接到CPU1508,并且在操作计算机***期间是不可切换地连接和断开(或激活和禁止)的。将会明白的是,数据存储器和***设备的断开也可以使它们可用于其他计算环境。在传统的***中,即使其中某些***设备是可热插拔的,插拔***设备是需要人为用户交互的手动操作。在对本发明的其他实施例的描述的上下文中,将会更好地理解传统计算***和方法与本发明的***和方法之间的其他区别。
图3示出了支持多个独立计算环境1508-1,…,1508-N的架构和***1500的示意图,包括能够执行多个独立的计算环境的计算机***,该多个独立的计算环境可有利地用于分离和隔离某些处理操作以防止通过恶意病毒、机器人或黑客损坏用户数据进行的污染或攻击。这种计算机***1500可以包括多个数据存储器1502,数据存储器开关***1504(以及可选的数据存储器开关配置单元1506),例如包含通过可选的I/O开关***和I/O开关配置单元耦合至计算环境1508的一个或多个***设备1514的I/O***,以及一个或多个计算环境1508。
一个或多个数据存储器1502可以与计算机***耦合。数据存储器1502表示存储区。数据存储器可以通过任何类型的存储介质实现,例如磁硬盘驱动器,光学存储介质,固态存储器,其他数据存储器形式,或这些数据存储介质类型的组合。数据存储器可以表示与磁盘和/或一个或多个磁盘驱动器的一部分,和/或组合或物理磁盘驱动器对应的存储区。根据本发明的一个实施例,数据存储器1502可以包含主模板的副本。以下将相对于图4描述结合本发明的***使用的一种方法的实施例。
使用可以支持多个独立计算环境的计算机***的方法实施例
参照图4,图5,和图6,下面将注意力转向对用于建立和初始化以及操作根据本发明的计算机***的典型实施例的操作和方法的各方面的描述。典型的方法和过程至少可应用于图2和图3的实施例中所示的体系结构和***中,将会明白的是,由于本发明的其他实施例中的结构稍微不同导致适当修改,例如但不局限于相对图9-17所描述和例示的实施例。在该部分以及整个说明书中提供的标题和子标题是要用于方便阅读者的参考,其中描述了本发明和本发明的实施例的特定方面,但是将会理解的是,本发明和本发明的实施例的方面在整个说明书、附图以及权利要求中描述,在理解本发明时说明书、附图和权利要求书作为总体考虑。
在本发明的一个实施例中,用于创建或建立计算环境、初始化、配置开关、控制处理、操作一个或多个计算环境、执行计算环境内的用户和/或控制操作、完成用户处理、保存文件,以及终止计算环境中的处理的本发明的方法和组件过程可以被有利地实现作为存储在有形介质上的计算机程序或计算机程序产品,并且包括用于执行本发明的方法和***的方法步骤的计算机程序指令。其他实施例可以使用硬件逻辑、固件、和/或软件的组合来实现这些过程中的某些或全部。
下面描述本发明的方法的各方面。本发明方法及过程的这些及其他方面(包括实施例特定的可选的过程和步骤)在整个说明书中特定实施例的上下文中描述。
初始***启动和建立计算环境
参照图4,根据本发明方法的一个实施例,使用多个独立的计算环境(1508-N)可以包括开始***启动(1602),配置在1604的I/O开关***配置(1512)以及在1604的数据存储器开关配置1506,配置I/O开关***1510以支持通信,配置数据存储器开关***1504以支持通信,执行在1623的控制处理,以及在1631的用户处理。典型地,控制处理还可以包括在1615的控制建立处理和在1621的控制保存处理。
在1602的开始***启动可以包括与已有的计算机***引导序列类似的初始引导序列。该引导序列还可以包括对定义和/或修改在1604的一个或多个开关配置的支持,例如数据存储器开关配置和/或I/O开关配置。每个切换***的初始配置可以被启动来根据相应的开关配置1604在一个或多个源与一个或多个目的地之间建立一个或多个通信通路。开关的配置1800还可以包括配置数据存储器开关1804和配置I/O***开关1806的过程以及启动图6中所示的计算环境的过程。(本发明的其他实施例在初始配置或当重新配置一个计算环境时提供配置数据存储器和I/O开关的组合过程。)
进一步参照图5,示出了根据本发明的一个实施例用于启动一个计算环境的过程的实施例。在启动操作1702过程中,可以通过物理开关1704来接通电源以开始***启动。在***启动时,可以使用CMOS存储器1708来定义初始化进程和/或引导序列的一个或多个步骤。引导序列1706或某些其他初始化序列或过程可以使用与CMOS 1708或其他存储器耦合的信息以建立开关***配置,并随后初始化相应的开关***以应用和/或修改所述配置以可通信地耦合源和目的地。也可以通过在1602的***启动来启动一个或多个计算环境。
进一步参照图4,在1608和1622建立计算环境可以包括配置I//O开关***配置和数据存储器开关配置,配置I/O开关***以支持通信,以及配置数据存储器开关***以支持通信。
根据一个实施例,两个数据存储器(例如数据存储器1502-1,1502-N)可以与计算环境耦合。第一数据存储器可以包括操作***以支持计算环境的处理行为。第二数据存储器可以包括各种可以被计算环境使用或操作的信息。该各种信息例如可以包括特定的用户信息和/或配置信息。特定的用户信息可以包括将由用户编辑的文档。配置信息可以被用于控制计算环境以配置数据存储器开关配置和/或I/O开关配置。
典型地,在建立任何用户计算环境之前,在1608建立控制计算环境。在一些实施例中,控制计算环境或等同物可以在初始化时建立。第一控制计算环境如上所述可以由引导序列建立。第一数据存储器可以支持计算机操作***。第二数据存储器可以表示保护数据存储器。在数据存储器耦合至计算环境之后,该计算环境可以引导来允许用户与该计算环境交互。通过被配置成将与控制计算环境的特性对应的输入传送给控制计算环境(例如区域特性和计算环境识别特性)的I/O开关***1510可以接收用户输入。类似地,来自控制计算环境的输出可以根据与该控制计算环境对应的特性被发送至***设备(例如***设备1514-1,…,1514-N)。因此,控制计算环境可以从第一数据存储器引导并可以访问保护数据存储器。因此,用户可以与控制计算环境交互。
下面把注意力转向使用本发明的架构、***和方法的实施例中的可选“特性”的选项。本说明书其他部分参照该特性,虽然可有利使用的是可选的特征。在一个实施例中,至少一个特征、属性、描述符或特性可用于表示每个源和目的地(以及表示***的其他组件的特性)。该特性可以表示物理标识符和/或逻辑标识符。根据IDE磁盘驱动存储设备示例,如上所述,每个IDE电缆可以由与物理开关的物理耦合来识别。IDE驱动信息(例如主和/或从标记,驱动器大小等等)可用于识别驱动器和/或与驱动器耦合的数据存储器。
类似地,使用至少一个特性来表示每个目的地,例如计算环境或CE。如果该计算环境代表分离的物理计算环境,其可以由分离的物理计算特性来识别,例如与普通开关耦合的唯一的接口。根据本发明的一个实施例,计算环境可以被表示为可以共享与另一个计算环境对应的某些或所有的物理计算属性的逻辑计算环境。逻辑计算环境可以以各种方式识别,例如通过唯一的进程标识符识别。
一个或多个特性可以与输出设备(例如计算机监视器和/或计算机图形卡)对应。根据一个实施例,一个特性可以对应于与计算机监视器的可能的浏览区域相关的显示区域。可以根据显示区域特性定位来自源的显示输出,从而来自一个计算环境的输出被指示用于在与一个区域特性相关的区域中显示。一个区域特性可以包括一对x,y坐标,该对坐标定义与计算机监视器的可能的浏览区域相关的矩形显示区域。因此,来自特定的计算环境的显示输出可以根据对应的区域而不是另一个区域内的一个或多个特性来表示。
一个或多个特性可以对应于输入设备。如上所述,与可能的浏览区域相关的区域特性可以进一步扩展以识别何时将输入传送至特定的计算环境。鼠标移动和鼠标命令也可以与矩形显示区域相关联,从而与该矩形显示区域对应的输入可以被导引到相应的计算环境。因此,区域内的鼠标移动可以和与相同区域对应的计算环境通信。特性的使用一般可以扩展到任何设备、子***或***所使用的、与之相关的、或根据需要可能可用的***设备,并且可以包括外部设备或***,本发明的***可以被置为与之通信。
计算环境特性可以被用来将一个或多个输出识别为源自计算环境。计算环境特性还可以被用来识别一个或多个输入以及作为指定的输入接收方的对应的计算环境。一个或多个计算环境特性可以被用来识别计算环境。计算环境特性可以被用来唯一地识别计算环境。该特性可以通过对应的物理属性、逻辑属性或属性的组合来识别计算环境。例如,一个特性可以识别一个或多个计算***组件的物理地址。或者,一个特性可以识别与逻辑计算环境对应的逻辑地址。此外,还应当明白的是,一个特性可以识别给定的计算环境的多个特性,并且对应的特性的数量和类型可以根据本发明而变化。
特性例如可以被用于辅助编排和配置本发明***的组件以实现一个或一组处理任务。这种配置可以包括配置各种开关、切换***、以及切换装置以提供所需的与储存设备、I/O设备和/或其他***设备的连通性。
在控制环境内配置开关和最小化用户处理
一种可以配置开关***的计算环境是控制计算环境。(本发明的其他实施例提供组合不同的计算环境,以便如其他地方所描述的,这个的其他变化形式也是可行的)。控制计算环境可以重新配置所述开关***配置,例如数据存储器开关配置和I/O开关配置。对应的开关***的配置可以以各种方式激活,例如当对支持开关配置作出和/或确定任何变化时,通过开关配置和/或重新配置通信。此外,控制计算环境与开关***和/或开关***配置之间的通信可以被加密以帮助确保仅仅控制计算环境能够配置所述开关***。
在一个实施例中,禁止或不允许对控制计算环境内的用户数据或未知或非信任数据的处理,以消除与保护数据存储器对应的数据或其他信息的破坏的可能性,其中在保护数据存储器中例如可以存储保护数据或主模板。根据本发明的一个实施例,如果用户启动用户操作,例如典型地可由用户执行的行为,(例如电子邮件,字处理等),那么该用户操作可以在分离的计算环境中处理。在本发明的实施例中,将用户接口、控制操作和/或保护存储器组合到单个计算环境中或子***中,则该环境的配置使得这种环境不支持以将允许这种用户数据在该控制环境中执行并破坏该数据或***的方式处理所述用户数据。可以支持例如复制操作之类的处理操作,但是这种复制操作将以不允许恶意代码执行或感染其他***文件的方式实施。
控制计算环境可以接收用户输入以启动用户操作。计算机鼠标输入可以由I/O开关***接收并根据该I/O开关***配置导引到控制计算环境。来自其他***设备的其他输入也可以通过I/O开关***由该控制计算环境接收。
在用户计算环境内启动并执行用户操作
控制计算环境的用户可以启动用户操作。在一个例子中,用户可以双击在监视器区域内显示的特定图标。该鼠标动作可以由控制计算环境接收并导致分离的计算环境的在1612的初始化以执行在1631的用户处理,例如,字处理。控制计算环境可以初始化分离的处理环境的创建,以执行与已有的和/或新的文档对应的字处理。如果其是已有的文档,则控制计算会话可能需要将该文件的副本复制到第三数据存储器中以供用户计算环境后续使用。控制计算环境可以配置开关***以支持用户环境。数据存储器开关***可以被配置成将第三数据存储器和第四数据存储器与该用户计算环境耦合。I/O开关***可以被配置成将***设备与用户计算环境耦合,例如显示器的区域可以与用户计算环境耦合。用户计算环境也可以通过信号或由对一个或多个开关配置的改变触发的事件来启动。也可以使用各种替代的方式来初始化用户计算环境。
作为在1606的用户计算环境的初始化的一部分,将要编辑的文件可以在用户计算环境被引导之后启动。根据另一个实施例,已有的用户计算环境可以与对应的数据存储器耦合,以使该文件可用于在用户计算环境内的处理。根据本发明的一个实施例,将要编辑的一个或多个文件可以驻留在预定的位置,以便对应的应用程序可以被启动以打开对应的文件和/或支持用户的行为。控制处理可以由控制计算环境执行,并且可以包括配置一个或多个开关配置,初始化一个或多个开关***的重新配置,在一个数据存储器与其他数据存储器之间复制信息,在保护数据存储器与其他数据存储器之间复制信息。
用户处理可以包括与控制计算环境和用户计算环境的交互。可由用户执行的任何典型地与功能相关的处理都可以被配置为在独立的用户计算环境中处理。因此,用户处理行为可以不会直接干扰控制计算环境的处理行为和/或其他用户计算环境的处理行为。根据支持特定的用户处理行为(例如字处理行为)所必需的计算机信息可能要求访问待编辑的用户文件,通过将计算机信息从一个数据存储器复制到另一个数据存储器可以使该信息可为用户计算环境访问。
典型地,控制计算进程可以包括在1615的控制建立处理以及在1628的控制保存处理。控制建立可用于支持建立将被用于执行至少一处理行为(例如字处理行为)的用户计算环境。控制保存处理可以包括将用户信息保存到保护数据存储器。一旦用户处理行为完成,那么与用户处理行为有关的信息可以在1618保存到保护数据存储器中,而不允许用户计算环境执行直接进入保护数据存储器的保存功能。
根据本发明的一个实施例,控制计算环境可以将一个或多个文件复制到临时数据存储器中。控制计算环境在1616可以更新数据存储器开关配置以允许用户计算环境访问临时数据存储器。根据一个实施例,控制计算环境可以验证用户计算环境已与临时数据存储器可通信地耦合。随后,控制计算环境在1614可以等待与一个或多个用户计算环境对应的处理完成。在等待用户计算环境完成时,控制计算环境执行可与普通桌面功能对应的功能。所述桌面功能可以对应于数据存储器的管理、配置数据存储器、在数据存储器之间复制计算信息以例如擦除一个或多个具有计算机病毒的数据存储器。典型地,与桌面功能对应的功能被限制到减少破坏在保护数据存储器中存储的计算信息的可能性。
用户处理的完成
在完成用户处理行为时,可以根据各种不同的通知方式来通知控制计算环境。根据这种方式,用户计算环境可以终止,以便由相应的开关***感应该终止。开关***可以向控制计算环境通知,数据可以包含应当在保护数据存储器中被替换的用户信息。
响应于用户行为的完成,控制计算环境可以将用户数据存储器与控制计算环境耦合,以便用户信息和/或文件可以独立于可能由用户计算环境执行的任何进程而被复制到保护数据存储器中。因此,存储在保护数据存储器中的其他文件将不会被独立的用户计算环境的操作破坏。
根据本发明的一个实施例,文件保存命令可以被用作一个触发事件,该触发事件使得控制计算环境独立于可以在该用户计算环境的范围内执行的其他操作而将用户文件存储到保护数据存储器中。根据本发明的一个实施例,临时数据存储器可以与用户计算环境和控制计算环境耦合,以便用户计算环境不能破坏与控制计算环境耦合的其他文件。用户计算环境可以将文件保存在临时数据存储器中,其中控制计算环境可以包括将文件复制到保护数据存储器和/或中间数据存储器中的能力。中间数据存储器随后可以被用于例如当关闭用户应用程序时,将对应的文件保存到保护数据存储器中。用户计算环境之间的通信可以被动地实现以帮助确保该用户计算环境不会破坏在保护数据存储器中存储的文件。
根据文件保存命令,用户文件可以被保存到临时数据存储器中。在启动保存命令之后,数据存储器开关***可以验证数据存储器与保存的文件耦合。如果文件存在,则可以执行一系列指令以将文件从临时数据存储器复制到保护数据存储器中。
根据本发明的一个实施例,控制计算环境可以等待对应的计算环境完成用户行为,例如保存文件。随后,数据存储器开关可以被配置成使临时数据存储器与用户计算环境去耦合。然后,临时数据存储器可以与控制计算环境耦合。保护数据也与控制计算环境耦合。文件可以独立于用户计算环境而从临时数据存储器复制到保护数据存储器。然后,临时数据存储器可以与控制计算环境去耦合并与用户计算环境重新耦合。
根据本发明的替代实施例,保存过程可以关闭(trip)和/或设置与切换***对应的标志,该标志被传送至控制计算环境。可以验证一个或多个文件的存在。如果文件的验证指示文件存在,则可以执行一系列计算机指令以将一个或多个文件从临时数据存储器复制到保护数据存储器。
根据本发明的替代实施例,可以使用键盘命令(例如Control-S)来保存文件。I/O开关***可以被配置成将命令序列传送到用户计算环境和控制计算环境。因此,控制计算环境可以重新配置数据存储器开关和/或I/O开关***,以支持将在用户计算环境保存的文件复制到保护数据存储器中。
根据本发明的替代实施例,当关闭和/或关断用户计算环境时,文件可以被转送至保护数据存储器。一个或多个开关***可以感测所述关闭和/或关断。根据本发明的一个实施例,关闭的用户计算环境可以由数据存储器开关***通过与数据存储器对应的变动的电源状态来验证,该电源状态由用户计算环境提供。
根据本发明的替代实施例,与计算机显示监视器对应的图形区域可以用于识别何时接收到与特定的计算环境对应的用户输入。可以根据具体的实施方案在I/O开关***和/或控制计算环境内分析用户输入。根据一个实施例,与用户计算环境对应的保存命令和/或关闭命令可用于识别用户信息可能需要保存到保护数据存储器中,和/或触发将计算机信息保存到保护数据存储器中。
关闭用户计算环境可以包括关闭电源开关。开关***可以感测电源消耗和/或中断中的变化。如果用户关闭应用程序和对应的用户计算环境,则控制计算环境可以感测这种转变,并将任何对应的用户数据保存到保护数据存储器中。在重新配置数据存储器之前,对应的开关***可以验证包含用户数据的数据存储器的电源是处于禁止和/或关闭状态。然后,控制计算环境可以使包含用户信息的数据存储器与用户控制环境去耦合,并将用户信息复制到保护数据存储器中,如上所述。
根据本发明的一个实施例,数据存储器可以在与用户计算环境耦合之后清除。在用户计算环境已使用数据源之后,控制计算环境可以重新格式化和/或清除一个或多个数据存储器。主模板数据存储器也可以用于在将数据存储器与用户计算环境耦合之前初始化数据存储器。根据另一个实施例,控制计算环境可以启动被定义为支持重格式化和/或清除一个或多个数据存储器的另一个用户计算进程。
已经描述了与图2和图3的实施例有关的拓扑结构和***结构,以及与图4、图5和图6的方法和过程有关的初始化和操作方面;下面把注意力转移到这种计算设备、信息装置和处理机的附加架构拓扑、结构和方法方面。
图7示出了在计算机***1110内包括专用子***或计算环境1120(例如1120-1和1120-2)和公共控制器1130的本发明的实施例1105,该计算机***1110与包含显示器1140、键盘1150和鼠标1160的多个***设备1108耦合。
将会理解的是,虽然在附图中仅示出了两个专用子***,该***可以包括单个子***或计算环境或任意多个这种子***,可以包括多个但仅有效地使用单个专用子***,或者可以包括多个具有不同结构和/或操作特性的专用子***。例如,所述多个可以是2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,32,50,64,100,或者更多的专用处理***,或任何中间数值,这受物理空间、电路密度、生热性以及其他封装和连通性设计问题的影响,如现有技术中公知的。
此外,在至少一个实施例中,本发明的结构和方法可以以仅具有单个或一个子***或计算环境的硬件实现,其中计算环境或子***连续用于不同的进程。在该单个计算环境***的一个实施例中,可以使用独立的逻辑来执行计算环境状态的存储和恢复,使得计算环境可用于执行期望的处理操作并维持恢复第二或控制进程的初始状态或任何中间状态的能力。
所述结构和/或处理特征可以包括但不局限于具有不同处理能力(例如每秒不同的操作数量,不同的处理器相关存储器量,不同的处理器体系结构或指令集,或不同的操作***)或以物理或逻辑分配或硬盘驱动器、光存储介质或固态存储器为形式的不同数量的海量存储器的专用子***。
控制器1175及其相关且耦合的存储器1176双向耦合至多个专用子***中的所选择的子***或所有子***(例如耦合至专用子***1120-1和1120-2)。向或来自任何专用子***的双向耦合的任一方向可以是间歇地,和/或可切换地激活或禁止。此外,控制器1175和存储器1176之间的连接是可切换地激活和禁止的。
正如图示的,可选的分离逻辑控制设备1180可以耦合在第一和第二专用子***1120之间。公共控制器1130通过接口1170与专用子***1120-1和专用子***1120-2耦合。本发明的实施例为它们提供同一接口或分离的接口。可选接口1170可以耦合在专用子***1120-1和1120-2之间,并且当不需要或不期望时,这种耦合可以是间歇地或遭受激活或禁止。在该实施例中,所述接口被图示为双向的,但是也可以分离地使用、激活或独立地禁止任一单向接口或作为一组使用。此外,需要理解的是,虽然在附图中为了清楚示出了单条线,所述接口也可以实现为多个连接或通信通路,例如但不局限于多线总线接口。需要理解的是,显示器或显示子***(例如包含视频处理器卡或芯片组,驱动器以及显示屏的传统显示子***)从公共控制器1130接收以电信号为形式的数据,并且公共控制器1130依次从一个或两个专用子***1120-1和1120-2或作为在一个或两个专用子***1120-1和1120-2上执行的处理的结果接收其输入。显示子***1140、公共控制器1130,和/或专用子***1120-1和1120-2中例如算术和逻辑电路、软件和固件或其组合的硬件产生所需的图形显示,例如反映用户计算环境桌面、以及当前有效的和当前无效的窗口的图形显示。
键盘1150和鼠标输入1160典型地也是单向的,从键盘或鼠标回到公共控制器,除非以电信号或音频、机械或触觉反馈的形式提供某些反馈。显示屏、键盘和鼠标装置的单向特性是指这些典型地都对来自本地计算环境外部的恶意的计算机攻击具有免疫力,并且当它们出现时至少在某些情况下被看作是信任的或安全的输入。
图8示出了与相对图7示意和描述的实施例类似的本发明的替代实施例1106。该替代实施例在计算机***1110内部包括专用子***1120和公共控制器1130,该计算机***1110与包括显示器1140、键盘1150和鼠标1160的多个***设备1108耦合。如图所示,控制***可以耦合在第一和第二专用子***1120-1和1120-2之间或当中,或者与图7中的一样,耦合在任意多个这种专用子***之间。在该实施例中,控制器1175和相关的耦合存储器1176使用被作为控制器***1177操作的一个专用子***1120-3来实现。控制器***1177(1120-3)通过接口1170有选择地耦合至其他专用子***1120中的一个、一个以上,或所有,以及公共控制器1130。典型的专用子***的结构和其如何被配置作为应用程序执行和处理单元操作,或被配置成具有各种主控和/或监控功能以便作为控制器***1170操作的方式,在本说明书中的其他地方针对其他附图进行描述。
下面把注意力转向本发明的信息装置、计算机或数据存储设备的架构、***和方法的又一个实施例。回想到本发明的信息装置或计算机***的其他实施例已经描述为包括多个包含至少一个保护数据存储器的数据存储器;多个用于将至少一个源与多个目的地可通信地耦合(或去耦合)的切换***,包括数据存储器开关***,其中所述源是数据存储器源,以及I/O开关***,其中所述源是***设备源;用于独立于其他计算环境而执行处理行为的多个计算环境(有时被称为命令解释程序),其耦合在数据存储器开关***与I/O开关***之间,其中所述目的地是该计算环境,并且所述开关***可通信地耦合所述源和目的地;至少一个从多个计算环境选择出的控制计算环境,用于根据处理行为配置开关配置,可通信地与保护数据存储器耦合;以及从多个计算环境中选择出的至少一个用户计算环境,其中不对保护数据存储器执行处理行为。
在该信息装置和计算***的一个实施例中,每个计算环境还被定义成由从多个特性中选择的至少一个特性识别,切换***根据所述特性可通信地耦合所述源和目的地,并且从多个计算环境中选择出至少一个控制计算环境,用于根据所述处理行为和特性配置开关配置。
图9中的实施例提供暴露了其他可以***使用本发明的设备和***中的方面和特征的附加实施方案和结构详情。通过相对于图2和图3已经描述的内容,该***架构和结构之间的相似性将很明显。
在该实施例中,5个计算环境2108-1到2108-5被具体地示出,尽管可以动态或静态地提供任意数量的计算环境。将会理解的是,这些计算环境2108-1,…,2108-5中至少某些表现为具有稍微不同的组件或内部结构。事实上,在本发明的某些实施例中,计算环境的结构和操作可以是不同的(也许大大不同),尽管在其他实施例中它们可以是相同的,并且在另外的实施例中硬件可以相同但是执行不同的操作***或应用程序或具有其他一些软件配置差异。在这些计算环境的一些环境中,多个计算环境的配置被动态地配置成硬件、固件、软件或它们的任意组合。
在图9的***2100中,两个计算环境2108-4和2108-5表现为具有相同的结构配置(而它们仍具有不同的软件和数据),并且其他三个计算环境2108-1,2108-2,和2108-3表现为具有不同的结构。下面对这些不同的计算环境的结构和操作进行描述,随后将针对图10说明这些不同的结构和操作是如何可选的但是使用公共结构的计算环境模块可以有利地实现,该模块可以被动态地定制以提供所期望的有效的结构和操作。
用户接口计算环境
首先来关注用户接口计算环境(UICE)2108-1,其提供用户接口操作,但不是传统的用户接口,并且其包括中央处理单元(CPU)21,该中央处理单元通常包括处理器和与处理器耦合的存储器。所述CPU还可以包括其他芯片或电路,其如现有技术中已知的通常被称为处理器芯片组。CE 2108-1还包括可切换地耦合至CPU 2120的储存器2121。
在一个实施例中,应当注意的是,用户可以独立于计算机***和计算环境的实际操作,稍微透明地操作文件或数据组。例如,在一个实施例中,从用户的观点看,他/她仅仅是将图标或文件名或其他描述参考从一个位置(例如桌面,硬盘驱动图标,或任何其他位置)拖拽到任何其他位置。实际上,对于桌面的例子,控制计算环境或用户接口计算环境,计算向/从与桌面坐标对应的区域拖拽的项目(例如文件)并在桌面环境或其他目的地中创建该项目的图标,而实际的文件可以位于保护储存器中。
在所示的实施例中,储存器2121被表示为具有两个储存部分,即,辅助模板部分(STP,secondary template portion)2122,用于存储所述主模板的所有或所选择的部分(参见本说明书的其他地方对主模板的描述),和可选的临时数据存储器部分(TDP)2123,用于存储用户数据文件,但是在大多数实施例中,其可以根据需要取消以提供该环境中的最小的存储器。回想到在该计算环境2108-1的优选实施例中,在该环境中不存在任何应用程序或实际文件而是仅存在到达这种程序或实际文件的参考、链接或指针。(应当注意的是,其他计算环境也可以具有最小的临时存储需求,作为其最小处理需求的结果)。计算环境2108-1被识别为用户接口计算环境(UICE),并提供人类用户或操作员2129与计算***2100之间的接口。
通常,用户接口计算环境(UICE)2108-1将具有辅助模板部分,仅包括提供计算或数据处理或对计算环境识别的控制能力所需的操作***组件和应用程序(若有的话)。例如,由于UICE将主要从人类用户2129接收请求和命令,并且处理这些请求和命令以便将信号发送给控制和切换计算环境,该UICE不需要在其所存储的辅助模板2122中具有任何字处理、照片编辑、电子邮件、网络或互联网浏览,或其他公共的或非公共的应用程序。其还可以具有与其他仅包含代码、代码部分、库、或支持其责任的操作***的其他特征的计算环境或操作***不同的操作***。该仅提供操作***组件和应用程序或应用程序组件的相同原理也应用到其他计算环境辅助模板,虽然不被认为是优选方式,在所有情况下,可以提供主模板的完整副本或多于最小需求的操作***和应用程序。
在其他实施例中,例如在被生成来或配置成执行图像处理操作的计算环境的实施例中,STP 2122可以存储Microsoft Windows2000操作***代码和Adobe Photoshop应用软件,并且TDP 2123可以存储一个或多个输入数字图像文件,在图像处理期间执行Adobe Photoshop应用软件时创建的中间文件,以及任何生成的输出文件。TDP 2123还可以存储任何其他用户或临时***数据,例如取消前次编辑的文件或复制到剪切板的数据。
在实际的实现中,STP和TDP可以是相同的物理存储设备,例如固态存储器、磁盘驱动器、或任何其他存储介质的一部分,或者它们可以是不同的物理设备,甚至是不同类型的设备。此外,使用某些在此描述的动态切换配置方法,甚至STP和/或TDP每个都可以包括多个类似的或不同的数据存储器类型,例如硬盘驱动器储存器和固态RAM、ROM、EEPROM等的组合。
储存器2121可以有选择地和可切换地耦合至CPU 2120。在图9的实施例中,分离的第一开关2124和第二开关2125被示出来用于将CPU2120连接到STP 2122和TDP 2123或将CPU 2120与STP 2122和TDP2123断开。示出了开关的简单图标,但是将会理解的是,根据这里所提供的描述,所述切换可以是,但通常不是,一个简单的被连接或断开的布线;并且更典型的是一组诸如接口总线的导体和用于该接口总线上的信号的信号调节电路。对将CPU连接到存储器的切换可以通过任何装置实现,这使得可以在CPU与存储器之间通信,对断开CPU与存储器的连接可以由任何禁止CPU与存储器之间的连接的装置实现,如在本说明书中所描述的。这些STP-CPU和TDP-CPU开关224,225(或更通用的储存器2221到CPU开关(没有单独示出))的操作,以与其他结构和过程交互操作来保护计算机2100的完整性,这将在已更详细描述***2100的其他组件之后接着描述。
***设备开关2157被提供来耦合和去耦合(或激活和禁止)***设备、输入设备、输出设备等中的一个或其组合。例如,键盘、鼠标、网络接口或NIC、麦克风、扬声器、耳机、软盘驱动器(FDD)、硬盘驱动器(HDD)、PC卡、存储卡、CD、DVD、串行或并行接口设备、GPS设备、USB设备、扫描仪、生物统计阅读器、无线接口、或其他任何***设备都可以被分配给特定的计算环境。虽然开关25157被表示为是桌面和用户接口计算环境(UICE)2108-1的一部分,但是其也可以被认为和实现为分离的独立的开关或开关子***,受CSCE或其他控制计算环境的控制。在另一个实施例中,在需要并许可的情况下,其被控制并将***设备直接耦合到其他计算环境。在另一个实施例中,从计算环境输出的视频可以通过***设备或输入/输出切换***来进行切换和/或处理。这些***设备切换和连接能力还可以与用于存储设备的其他切换***2150组合,并受本说明书的其他部分描述的CSCE 2108-2控制。计算机环境2108-1还可以包括在某一时刻对于特定的功能和操作不需要或未激活的其他组件。这种附加组件例如可以包括ROM,RAM,ASIC,和/或附加电路和逻辑元件。
保护储存器和读取/写入控制计算环境
保护储存器计算环境(PSCE)2108-3被配置成将原始的或主要的主模板PMT 2148存储在主模板保护存储器2142中,将主用户数据2149存储在用户数据保护储存器2143中。在一个实施例中,由保护储存器计算环境(PSCE)2108-3执行的功能和操作可以与由控制和切换计算环境2108-2执行的功能和操作组合,反之亦然。
主模板采取多种形式或内容中的任何一种,并且例如可以是表示计算机***或计算机***的组件的理想状态的数据(命令,指令,数据元件等)的副本。该主模板例如可以通过从操作的计算机***或计算机***的组件复制数据,或以其他方式创建。该计算机***在创建主模板之前可以处在理想状态。计算机***的理想状态可以通过可为该计算机***访问的数据表示。其中不同的辅助模板将被用于不同的计算环境。将存在不同的主模板部分或具有可以单独与其他计算环境2108通信的部分的单个主模板。在该上下文内,数据可以包括操作***(例如Linux,Unix,Windows 98,Windows 2000以及对这些操作***的增强和扩展),应用程序(例如WordPerfect,Microsoft Office),用户数据(例如操作***喜好,背景图像、创建的文档)以及组件数据(例如BIOS,PRAM,EPROM)。在一些实施例中,数据也可以或替代地包括任何可为计算机***(包括本地的和远程的数据存储设备)访问的信息,以及其他数据库中的数据,只要遵从本发明的保护措施和过程以保持这些其他数据元件的隔离。作为一个例子,一个计算机***的主模板可以包括安装在计算机***上的所有信息,例如MicrosoftWindows98或2000操作***,WordPerfect应用程序,Microsoft Word应用程序,以及由用户创建的文档。该信息可以安装在如这里所描述的可由计算机***访问的一个或多个存储元件上。此外,主模板可以包括BIOS设置的理想状态的版本的副本,或者可以提供适于特定的计算环境的多个BIOS。
在一些实施例中,主模板可以表示新购买的计算机***的快照(snapshot)。这种***典型地处在理想状态,其具有操作***和各种预安装应用程序,从而允许用户开始使用该计算机***。对于特定的用户,主模板可以表示例如包括操作***、应用程序和用户定制的计算机***的理想状态。作为一个例子,用户定制可以包括用户对用作桌面背景的图形或“.jpg”图像的在先选择,例如用户宠物的图像。
可选地,主模板可以从第一计算机***创建,随后可以被用作不同计算机***的主模板。第一计算机***可以是制造商计算机***。从而第一计算机的理想状态被传送至第二计算机***或任何数量的计算机***。在一些实施例中,主模板可以在一个计算环境中创建,然后利用适当的安全措施将其转移并存储作为主模板。本发明的实施例有利地提供了对主模板的元件进行更新、打补丁、重新安装、以及替换的支持,以便这些操作可以利用基本上或相同的用户交互,以及基本上相同或相同的操作结果来执行。或者,主模板可以由有选择地复制的处理来创建。例如,根据使用的特定OS,程序可以询问注册表,确定何种入口与特定的程序或应用程序相关,然后选择来有选择地仅将那些与特定的程序或应用程序相关的文件和输入复制到主模板。
在图9所示的保护储存器和读/写计算环境的实施例中,没有到任何将允许对在主模板保护储存器2142或用户数据保护储存器2143中存储的二进制信息执行处理的处理器的任何连接。该隔离可以通过物理地不提供任何这种处理能力(例如CPU),或通过禁止或断开这种CPU与保护储存器的连接来实现。该禁止或断开可以使用在本说明书中描述的开关或通过其他已知的用于防止保护存储器中的二进制数据的装置,计算机程序代码指令或数据来实现。
在该实施例中,允许对存储在主模板保护储存器2142或用户保护储存器2143中的二进制数据进行的处理操作仅仅是读取操作,但是在一些情况下(如在此描述的)是写入操作。这些传统地可以被称作复制操作。
本发明的架构、***、方法、过程和计算机程序产品保护计算机、计算设备、信息装置、PDA、手机和其他处理器***设备免受黑客、病毒、网络机恐怖事件的影响,以及免于潜在的破坏或入侵(例如间谍软件、按键记录器)的影响以及免于黑客、病毒、蠕虫、特洛伊木马、和类似的威胁和攻击,而不管它们是否是恶意的或无意地引入或暴露的。
在一个实施例中,主模板保护储存器2142存储一组或多组计算机程序代码指令,该一组或多组计算机程序代码指令可以被传送至其他计算环境并且足以为该计算环境的指定操作提供操作能力。在一些实施例中,存在单组计算机程序代码,其允许执行由用户或***本身在某一时刻以在此所描述方式请求的任何操作,每个计算环境接收该完整主模板的副本。在其他实施例中,主模板保护储存器2142存储多个不同组,并且仅有提供需要特定计算环境的操作的组被设置为它。这通常会导致较小的和较快的复制操作和较低的单独的和整体的存储需求。在需要擦除的情况下,对于较小的模板大小,可以实现附加的时间节约。不同的辅助模板可以根据需要而存储或生成,然而,以准备好复制的形式存储辅助模板揭示了较低的安全风险和较大的操作速度。
在一个实施例中,用户数据保护储存器2143存储被称为保护用户数据2149的用户数据或文件的原始版本(或副本)。例如,这种用户数据可以包括数据或文件集或从数据或文件集中选择,所述数据和文件集例如是电子邮件、任何类型的电子邮件附件、字处理文档、TIFF图像文件、JPEG图像文件、MP3文件、计算机程序、操作***或操作***文件的存储版本、计算机程序应用程序的存储版本、设备驱动器、以及任何类型的计算机数据、文件或“0”和/或“1”比特。有趣的是,用户数据保护储存器甚至可以有意或无意地存储计算机病毒或包含计算机病毒的文件、计算机机器人或僵尸(bot)、间谍软件或其他恶意的计算机程序代码。这种保护储存器2142、2143中的病毒、僵尸(bot)、间谍软件、或其他恶意的计算机程序代码的存在和单独存储不会造成任何威胁,并且不会由于其存在于存储器中而带来伤害。在一个实施例中,当不需要对存储在其中的数据或计算机程序代码进行访问时,处理器与保护存储器去耦合;然而,在其他实施例中,在处理器没有被配置成能够执行数据或计算机程序文件并且不能导致对保护存储器、处理器或保护存储器计算环境2108-3的破坏时,该处理器可以与保护储存器保持耦合。在一些实施例中,对在保护储存器计算环境2108-3内保持保护储存器与处理器之间的连续通信通路的判定可以取决于在保护储存器计算环境中支持的功能或操作集。这些相同的考虑可以应用到合并了保护储存器计算环境和例如用户接口计算环境和控制及切换计算环境(除了用户数据隔离的计算环境)的其他计算环境的本发明的实施例中。
正如所建议的,在一个实施例中,保护储存器计算环境2108-3可以包括诸如CPU 2140的去耦合或被禁止的处理器,其可以通过开关2144、2145切换至保护储存器,以用于初始化主模板或用户数据、编译、病毒扫描或检测、测试、或其他特殊操作的装载或重装。假设病毒或其他恶意计算机程序代码存在或被执行,则激活CPU与保护储存器之间的连接通常仅在其中采取了预防措施来防止保护储存器内的其他数据被破坏时才被允许。在其中仅支持保护储存器、CPU或其他处理器之间的“哑复制(dumb copy)”操作的实施例中,可以保持与保护储存器的耦合或连接至保护储存器。哑复制是不打开或将要复制的文件暴露给可能导致污染或感染的计算机程序代码的复制。哑复制可以是逐比特的、逐字节的或其他复制或比特复制操作,例如可以通过固定的硬件逻辑电路或ASIC或在通过使用软件或固件采取预防措施的情况下,或通过使用硬件和软件/固件的组合来实现。
保护数据储存器计算环境2108-3可以通过多个开关2250与其他计算环境2208-1,2208-2,2208-4,和2208-5(或M个计算环境中的任何一个)耦合,例如从MTPS使能开关2251复制,从UDPS使能开关2252复制,以及向UDPS 2253写入。
在一个实施例中,来自MTPS使能开关(SW1)2251的命令允许(或禁止)适当的主模板部分被访问(或拒绝访问)并被读取或复制到计算环境的辅助模板部分,例如复制到计算环境2108-1的STP2122。从UDPS使能开关(SW2)的复制允许(或禁止)适当的用户数据或文件被访问(或拒绝访问)和被读取或复制到计算环境的用户数据储存部分,例如复制到计算环境2108-1的TDP 2123。通常,将仅仅需要执行操作的一个文件或文件集合被复制,而不是保护储存器2143中用户数据的整个集合被复制。其他实施例可以复制整个用户数据集合,但是这是不够的,并且典型地提供不是很明显的有益的目的,除了在维护、诊断、和/或修复操作期间的特定情况下。
向UDPS(SW3)的写入允许(或禁止)适当的用户数据或文件被访问(或拒绝访问),并从其他计算环境中的一个读取和复制,其中它已被创建或修改并写回到计算环境2108-3的UDPS 2143。在一些实施例中,单个开关提供从用户数据保护储存储器2143读取和向用户数据保护储存器2143写入的双向能力,以便仅需要一个开关(或一个开关组)。还将观察到的是,由于从MTPS 2143复制和发送的辅助模板通常不被修改,典型地不需要写回到MTPS 2142中。因此,从MTPS到STP的复制可以是双向的。分离的双向握手和控制信号或电平可以被用作用于诸如请求复制、准备复制、复制完成、数据接收等的事件的信令协议。奇偶检错和其他检错和纠错可以如现有技术中已知的来实现,并且与本发明的方面和特征一致以验证没有错误发生的传送,尽管这是可选的。
在一个实施例中,主模板(或在该***中可用的其他模板)的修改可以涉及:(i)复制或装载到一个用户隔离计算环境;然后(ii)使用任何必要的操作***、应用程序、编译器、调试、链接、或其他如现有技术中已知的编程过程对其更新;以及(iii)将其复制回并作为新的主模板保存在保护储存器中。复制的和保存的主模板的版本可以替代原始的或者可以被保存作为新文件或更新的版本。
这些开关或开关组可以是计算环境2108-3的一个组件或一组组件,计算环境2108-3外部的分离组件或一组分离组件,或这些组件的组合。在一个实施例中,开关以硬件逻辑电路提供,在另一个实施例中,开关由具有非常有限的处理能力集的微控制器实现,以便可以实现复杂的多组件和多信号的切换方案,但是不会允许恶意代码执行。在又一个实施例中,所述切换被实现为专用集成电路(ASIC)。在又一个实施例中,所述切换在具有作为辅助模板部分(STP)安装的非常有限的指令集的微处理器的控制下执行,以便其不能执行或不允许执行恶意代码。
如这里所描述的,保护储存器可以在任意类型的储存设备或存储器或任意类型的组合上或内部实现。在一个实施例中,提出了外部和便携式保护储存器的方案,以便例如用户可以使自己的保护储存器在***大小的存储设备(例如闪存卡,USB存储设备,索尼记忆棒,基于PC卡的存储器,或任何其他存储器形式)上和仅将其***在任何一个支持计算机或设备上。在一个实施例中,所述架构、***和方法提供可选的隐藏和保护备份存储存***。
控制&切换计算环境
下面来关注控制和切换计算环境(CSCE)2108-2,其负责(结合来自用户接口计算环境2108-1的贡献)控制和协调***2100的其他计算环境的操作。以稍微简单的术语,所述开关将源连接到目的地。在***2100的一些实施例中,支持数据存储器开关***特性,并且这种特性还可以支持配置所选择的源与目的地之间的通信通路。应当注意的是,在至少一些实施例中,CSCE或其他控制计算环境具有将任何***设备切换和耦合到任何计算环境的能力。
计算环境2108-2从用户接口计算环境(UICE)2108-1接收输入并操作保护储存计算环境(PSCE)2108-3的开关2250(例如开关组,SW1 2251,SW2 2252,和SW3 2253),以及与其他每个计算环境2108交互以操作开关耦合或去耦合(允许或禁止)该计算环境的处理器(例如CPU)与储存器(例如STP和TDP)之间的连接或通信。开关控制或多或少是直接的,例如通过电性连接和信号或电压电平或电信号或电平集合;间接的,通过处理器、CPU、ASIC、或计算环境内的电路或逻辑元件,该计算环境从控制和切换计算环境2108-2接收信号;或作为这些直接和间接的架构和方法的组合。
如在控制和切换计算环境2108-2的实施例中所示的,其包括***切换控制单元2138,其考虑到电流状态和包括可用的计算机资源的计算***2100的配置,响应于用户输入和命令或***行为和事件从UICE 2108-1接收命令。在一些实施例中,调度和组件优先化和使用仲裁也由***开关控制器2138提供。开关配置和状态以及其他信息和数据可以存储在开关配置信息存储器2139中,其可操作地通过一个或多个总线、接口或通信路径与***开关控制器2138耦合。
在该实施例中,CSCE 2108-2从UICE2108-1接收一个或通常一组信号2180。这些信号通常足以将用户请求输入传送到UICE 2108-1,以便计算机***2100的其他元件可以被配置成执行所述请求。例如,用户可以利用鼠标点击UICE桌面上期望装载的Microsoft Word图标或Microsoft Word字处理程序的示例。虽然UICE 2108-1可以被配置成向外部人员用户2129呈现UICE 2108-1及其组件(例如CPU 2120和储存器2121)已安装了Windows2000操作***,Microsoft Word2000以及用户期望编辑的文档;但是事实上可以不具有这些文档,可以仅在其他计算***元件中提供到这些操作***、应用程序和用户数据文件的指针、链接、替换入口或其他参考。
特别的,Microsoft操作***和Microsoft Word应用程序将呈现作为MT 2148并被存储在PSCE 2108-3的保护存储器MTPS 2142中。该用户字处理文档如果存在并且不是新创建的,则将被存储在保护储存器UDPS 2149中且可从保护储存器UDPS 2149中检索。
已经描述了也被称作***“大脑”的控制和切换计算环境(CSCE)的一些结构和操作特性,下面提出的是其中CSCE参与的某些特定实施例中的某些功能和操作的部分列表。不是所有这些功能都需要由CSCE(或者后面描述的实施例中的CCE)执行。将会理解的是,特定的功能和操作将取决于作为整体的计算机***、CSCE(或CCE)以及其他计算环境的实现。
在本发明的一些实施例中,CSCE在启动(或复位)时装载其自己的操作***(OS),其在装载之后将编排(某些或所有的)通过***的剩余部分激活的或支持的操作或功能。本发明的架构、***和方法是与操作***无关的,并且任何已有的操作***都可以用于或适用于本发明。甚至不同的操作***可以用在该***的不同计算环境中,从而如果需要,该计算环境可以操作不同的操作***和适于那些操作***的一系列应用程序。在本发明的一些实施例中,只要计算***硬件可以支持操作***和预期的操作,当例如用户隔离计算环境被指定来执行特定的处理功能或操作时可以动态地确定负载。
本发明的一些实施例将对不同的计算环境使用不同的操作***,并且根据***的需要、用户选择的处理任务、数据的特性、或根据其他因素,这种操作***可以被预先确定或动态地确定为时间或任务的函数。例如,任何已知的或公布的Microsoft Windows操作***(例如Windows 98,Windows NT,Windows2000,Windows XP,及其改进、增强和扩展),Linux,Unix,Apple操作***,各种磁盘操作***(DOS),或其他专用或特有的操作***或控制程序可以用于各种计算环境中,只要它们支持预期的操作和用于该操作的设备。
在本发明的一些但不必是所有实施例中,CSCE操作***或应用程序(或这两者的组合)可以负责控制或编排(某些或所有)以下功能,其仅仅是示意性的部分列表:(i)数据储存设备(DSD)连接切换;(ii)向计算环境发送命令以通过对接收命令和/或完成命令操作的可选验证来启动计算机应用程序(或当可应用时启动硬连线的操作);(iii)跟踪可点击窗口和/或光标的坐标;(iv)执行病毒或其他恶意代码的修复和检测、清除、和/或毁灭;(v)引导和控制切换、重新格式化、擦除、模板和/或主模板的复制、复位、重启、以及其他所述的操作;(vi)产生和显示“隔离全局任务栏”或等效的用户可访问的用户交互工具(可替代的,该任务栏或工具可以通过桌面和接口计算环境产生)。这些或其他实施例也可以可选地提供下述中的任何一个或多个:(vii)“打开”对话屏幕;(viii)“保存”对话屏幕;(ix)网络通信的引导切换(例如参见对“netlock”操作的描述);(x)从通信环境接收安全信号;(xi)跟踪其中创建通信环境的顺序(order)和/或当前的通信环境顺序或优先权;(xii)到不同的计算环境或在不同的计算环境之间的鼠标和键盘的引导切换;(xiii)到不同的计算环境或在不同的计算环境之间的其他输入/输出或***设备的引导切换;(xiv)协调电子邮件访问和处理;和/或这些功能的其他组合。
在一个实施例中,CSCE还可以负责控制、协调和/或处理与在各种计算环境中的处理行为(包括CSCE本身的处理行为)相关的视频信号,或者分离的计算环境或视频处理单元或逻辑电路或其他装置也可以用于此目的。当使用分离的视频处理器或控制器时,CSCE通常可以负责与其他***组件一起协调和编排其操作,但是在一些实施例中,视频处理器或控制器可以参与CSCE或***的其他控制。
将会理解的是,根据这里所提供的描述,虽然提供了用户计算环境(其中可以打开和执行可能被污染的文件)与控制计算环境的分离;关于用户接口、控制和切换、保护存储器、视频处理器和作为独立的计算环境对已知的干净数据或计算机程序进行操作的其他操作和功能的描述稍微有些人为,并且主要是出于在这里进行描述的目的。应当注意的是,本发明的实施例提供了各种非用户数据控制或处理环境的分离,以及其中这些控制功能被组合的实施例。虽然某些组合是作为示例而特别描述的,将会理解的是,不同的控制或管理功能和操作的任何其他组合都是受支持的,与本发明的其他原理一致。
还将理解的是,对于不同的计算或处理环境或特定的或一组处理或计算环境内部的不同时间可以要求或允许不同的隔离等级或隔离度。例如,在将要在其中病毒或黑客代码可能被暴露给可能执行这种代码的处理器和代码的计算环境内打开和处理未知的文件或数据集的情况下,文件或数据集与“外部世界”之间的隔离是绝对的并且包含在用户隔离的计算环境内。该绝对隔离是在特定的用户计算环境与其他用户计算环境和控制环境之间。
在其他情况下,隔离度或隔离等级可以进行限制,以便可以容忍没有危害、或者所设置的计算机或用户允许的危害度。这代表一种用户或管理员无效(override),并且可以设置允许更随意地使用本***的特定的政策和规则。例如,如果在公司计算环境内具有由公司信息技术(IT)部门提供的当前的防病毒软件、防火墙和其他保护的内联网上正常使用该计算***,由于已经提供的过虑,可以允许禁止特殊的电子邮件处理。当可以信任网络或计算环境时,其他实施例可以提供无效所有隔离。虽然这种允许的无效不是在所有的实施例中都涉及,但是其确实表明了由本发明的架构、***和方法所提供的便利性。因此,将会明白的是,可以提供不同的隔离等级或隔离度,并且本发明不会被构造成限制到不能容忍一些程度的非隔离或覆盖的架构、***、方法或过程。
相对于来自不同计算环境的处理视频(数字的或模拟的)而执行的操作可以包括,仅是示例但不是限制:合并或以其他方式组合或格式化来自几个计算环境的输出(例如信号2187-1,…,2187-5,…,2187-N)以用于显示在监视器或显示设备上。虽然可以实现各种初始的或缺省条件中的任何一种,但是在一个实施例中,在引导时的缺省设置是禁用或关闭计算环境视频信号,这是因为在任何未分配的计算环境中应当没有行为直到某些***或用户启动的行为已经被命令。或者,CSCE(或其他实体)可以打开/关闭或激活/禁止该视频信号。
在一些实施例中,来自计算环境的视频输出的“处理”被实现为例如在单个监视器上呈现“分层”效果。例如,最新的有效计算环境可以总是移动到“顶”(或“前面”)层或根据预定的规则或政策以其他方式进行处理。如果不是其自身直接负责,该CSCE可以提供对此进程的控制和协调。例如,CSCE可以向视频控制器发送一个或多个命令以帮助确定哪一“层”放在“前面”,以及如何合并来自各个计算环境的视频输出。CSCE具有该信息,因为其保持着关于层、有效计算环境、未分配的或无效的计算环境、窗口位置、鼠标或指示设备光标坐标和位置以及切换的信息的数据库,出于例如确定鼠标点击的其他目的。
在一些实施例中,例如在其中视频图形卡或视频子***可以连续发送信号(甚至是“黑”屏或空屏)的实施例中,可以在视频控制器中“打开/关闭”或“激活/禁止”该视频信号。或者,当特定计算环境未被分配或无效时,CSCE或视频控制器可以简单地被引导来“忽略”来自该特定计算环境的该信号。换句话说,该计算环境视频卡(独立的卡或芯片或与处理器或其他逻辑电路集成)可选地可以总是“抽空(pump out)”视频信号,或者当它们变成有效的处理环境时,CSCE或其他视频控制器可以使它们仅输出这种视频信号。这将有利地降低电源消耗和热量产生,并且可以带来增加***及其组件的寿命的效果。CSCE还可以向视频控制器或处理器(当存在时)发出信号以告知其将处理来自计算环境的何种视频输入,以及对于每个视频输入将使用何种信息,以及可以忽略何种信息。例如,当其被复制或者不代表计算环境中的实际行为时,用于每个计算环境的桌面部分可以被抑制。
隔离处理单元计算环境
***2100还包括一个或多个其他未分配的隔离处理单元(IPU)计算环境(PUCE)或命令解释程序,例如CE2108-4,CE2108-5,在图9的实施例中,其中每个都包括CPU(2160,2170)、包含STP(2162,2172)和TDP(2163,2173)的储存器(2161,2171),接口(2169,2179)和用于在储存器与CPU之间耦合或去耦合(激活或禁止通信)的开关(2164,2165,2174,2175)。
操作***、应用程序,用户数据文件以及支持和与操作***、应用程序和用户数据交互操作的计算硬件的组合,在CSCE 2108-2的控制下,通过UICE 2108-1实现对采用用户数据的所选择的MicrosoftWord程序的保护和隔离处理。
可操作地,UICE通过信号2180向CSCE 2108-2发送包括任何必要数据的命令。CSCE考虑当前的***2100资源的分配和***配置的任何其他原则或政策来接收这些信号,选择适当的计算环境,例如计算环境2108-4。本发明的其他实施例提供可以分离元件(例如CPU和存储器)的动态分配,这些分离元件被组装为计算元件,即使在制造计算机时没有物理地连接,甚至没有邻接地位于计算机***2100硬件内。
一旦计算环境2108-4已由CSCE 2108-2或者更特别地由***开关控制器(SSC)2138内的规则政策或算法选择,则SSC向CE 2108-4发送一个或多个信号2186-4,以传送其已被分配来利用识别的用户文档文件执行Microsoft Windows 2000下的Microsoft Word处理程序。CE2108-4可选地确认在某些握手或其他通信协议,甚至是与单个逻辑电压电平一样简单的通信协议下其已接收到通信。因此,信号2186-4可以是单向或双向的。SSC 2138还向开关2250传送一个或多个开关控制信号2181。例如,传送开关控制信号2181-1,2181-2,以及2181-3以配置一个或多个开关SW1,SW2和SW3来允许所期望的存储器访问。这些相同的开关可选地但是有利地确认来自SSC的通信,并提供状态返回以指示该开关处在用于预期合作的适当配置(例如打开或关闭,或激活/禁止)中。同样地,开关2250可以将发送数据类型通信的就绪状态发送给目标目的地(例如储存器2161的STP 2162和/或TDP 2162),并且这些是可选的,虽然期望的是,将接收数据类型状态信号的就绪状态指示返回给开关2250。
特别地,在该字处理例子中,SW12251将激活所有或所选择的部分主模板通信,该主模板包括Microsoft Windows2000操作***和至少Microsoft Word应用程序。应当注意的是,在一些实施例中,操作***和应用程序可替换地可以从分离的源独立地提供。在又一个实施例中,操作***可以在计算环境内部提供,从而其不需要每次传送,或者存储在STP 2162中,从而其不需要每次传送,或者存储在耦合ROM内,或以其他方式。然而应当注意的是,在STP在使用之后不被清除的情况下,如果STP已被恶意代码写入则存在污染的可能性,但是如果从只读存储器或ROM中检索到,则这将不是问题。
并联(其中所提供的通信通路足以支持多个访问路径)或串联的(其中通信通路2187不足以支持多个访问路径)的SW1 2251被配置成在STP 2162接收到所需的计算机程序代码时,将MTPS 2142连接到STP 2162。同样地,SW2 2252被配置成提供一个通信通路,以便来自UDPS 2143的所识别的用户文档文件可以被复制到TDP 2163中。回想到在复制操作期间可存取的硬件/固件/软件不足以允许恶意代码的执行。例如,适于将比特从源复制到目的地的硬件仅复制电路不会受病毒、黑客或其他恶意代码的破坏,并且可以使得仅从源捕获(读取)比特并将比特复制(写入)到目标。源与目标之间的缓冲器可选地用作过滤器或限幅器。软件和/或可编程硬件也可以用于复制操作,但是这种复制装置的能力有利地防止了可能危及***或计算环境免疫力的无意修改的污染影响。期望的是,该复制操作仅仅是复制二进制比特或比特集而没有任何其它解释;然而,尽管期望的是,本发明无需受限于该条件或其他可以用于防止执行恶意代码的可能性的保护措施。
在一个实施例中,复制数据的处理可以是“哑的”或受限的,以便被复制的数据不能执行,从而该数据存储器设备上的数据不能被恶意代码损坏。例如,为了移动或复制数据,其可以被编码,或者可以使用具有有限功能的ASIC,或可以使用直接存储器传送或任何其他移动或复制数据的方法,其不允许执行可以包含某些可执行的比特序列代码。可选地,复制将受控制***编排,该控制***可以寻址或者可以访问该隔离工作***和隔离或保护储存器***。
选择文件以在储存器***中打开可以启动一个进程,由此将文件从储存器***或源(例如UDPS)复制到工作计算环境(例如IPUCE2108-4的STP 2166),并且在通过开关2250终止与UDPS 2143的连接之后,可以打开该数据或文件并允许暴露给CPU 2160。将文件保存在工作计算环境中可以启动一个进程,由此将该文件复制到存储***。在工作计算环境中退出文件可以启动一个进程,由此将新的或更新的文件或数据组复制或写入到目的地储存器***中(例如UDPS 2143),并且在源存储器***(例如TDP 2161)中删除(并且期望物理地擦除)。术语“copy”或“copies”或“copying”可以在广义的范围内使用,并且可以包括但是不局限于算法、快照,压缩数据,逐比特,加密,编码等等。
隔离计算环境也可以将用于识别隔离计算环境(或ICE内的某些组件)的状况或状态的标志或其他信息或指示器2191发送或以其他方式传送到控制和切换计算环境2108-2。这种状况和状态可以包括操作状况就绪、完成处理状况、文件准备复制或保存状况、复位状况、和/或任何其他控制环境将需要或能够使用的数据或信息中的一个或组合。
隔离计算环境还可以向单个显示设备(如果需要这种单个显示器)发送或以其他方式传送窗口x-y坐标和可选的窗口维数2192,以供控制环境2108-2和/或桌面和用户接口计算环境2108-1(或通过分离的视频图形处理器或由CSCE控制的视频显示单元)使用来组合或合并不同的计算环境窗口。通信线路或链路2191,2192还可以通过单个线路或链路共享。此外,如在本说明其他部分所描述的各种特性可以通过网络线路或链路传送。
这些以及其他通信通路,通信链路,或信号线路可以适合于在本说明书其他部分所描述的过滤器或限幅器以限制信息、数据、二进制比特等的类型、序列、数量或体积,从而进一步减少在一个计算环境与另一个计算环境之间感染的可能性。这些过滤器和限幅器将相对于本发明的其他实施例进行更详细的说明。
一旦在CE2108-4中存在操作***、应用程序和用户数据的适当组合,就可以开始字处理操作。文件可以保存在TDP 2163内直到退出字处理程序,或通过经由适当配置的开关SW3 2253利用向UDPS 2143的写入操作而使用中间保存来保存。
有利地是,当在MTD 2142或UDPS 2143与储存器(例如STP 2164或TDP 2163)之间进行任何读取或写入操作时,CPU 2160与储存器去耦合或禁止,从而MTDS 2142或UDPS 2143从不以可能允许恶意代码执行并污染保护储存器MTDS 2142或UDPS 2143的方式暴露给CPU 2160。
一旦完成字处理,并且新的或所编辑的文件被写回到保护储存器中,信号或状态变化或“标志”或其他指示,以及来自CSCE的后续指令,STP 2162和TDP 2163的内容被清除和擦除。该清除和草除应当是实际擦除,例如通过写存储器介质,或格式化主引导记录,或分区表,从而任何可能存在于最后存储在其中的数据集的恶意代码不会扩展到其他文件或数据集。其与最传统的***的不同在于,其仅更新了目录来移除该删除文件的参考而不是实际擦除。删除使用的存储空间以及优选整个可访问的存储空间的期望使得快速固态存储器比较慢的机电存储器(例如硬盘驱动存储器)更为期望。其还使最小化在计算环境内可访问的存储空间量成为一种考虑。在一些实施例中,动态地分配不同尺寸的存储空间的能力,作为进程添加到可访问的存储器的能力产生对更多存储器的需求,以及配置固态存储器和较大或较小昂贵的硬盘驱动存储器。
关于这一点在说明书中提供的说明将揭示一种情况,在该情况中,保护储存器UDPS 2143中存在的用户数据被病毒污染,该用户数据带着病毒移动到CE 2108-4,然后暴露给CPU 2160和能够支持在计算环境内执行病毒代码的操作***。
如果无论什么原因病毒都不执行,例如虽然暴露给CPU和操作***但是具有不满足的执行日期条件的病毒,则其将随包含其的文件返回或作为新的独立文件返回到保护储存器UDTP 2143中。在此情况下,特定的计算环境2108-4或***2100作为整体遭受由于已暴露给病毒(或其他恶意代码)而引起的任何损害。
另一方面,如果病毒(或其他恶意代码)虽然在计算环境2108-4内不执行但爆发或以其他方式污染CPU、与CPU相关的RAM或其他存储器、和/或STP 2162或TDP 2163存储器,则其危害结果被限制到分离的计算环境2108-4。在该体系和处理***及方法中,没有提供通路来允许病毒或其他恶意代码逃到***2100的剩余部分并使***2100或数据在保护储存器MPTS 2142或UDPS 2143中。即使受病毒污染的文件返回到保护储存器MPTS 2142或UDPS 2143中,其他操作***、应用程序或其他数据文件也不会被污染,这是因为PSCE 2108-3不包括可以执行任何包含在该数据中的位图的处理器,它们仅仅是“0”和“1”比特,在计算环境内不具有任何程序设计的含义。再次回想到比特被暴露的唯一操作是由如果有仅可以执行复制的硬件、软件和/或固件进行的哑复制操作。在病毒在除了PSCE之外的计算环境2108中执行情况下,其可以损坏或毁坏该文件的副本,PSCE中的原始数据或文件仍然原封未动。很清楚,一旦发现病毒或其他恶意代码存在,可以期望采取清除或移除病毒和利用干净的版本替代受病毒污染的版本。这种病毒或恶意代码检测和/或清除操作事实上可以是在文件的干净版本返回到保护存储器之前,在隔离计算环境中对文件的副本执行的处理。保存文件作为不是重写的版本是一种替代的存储选择。
已经描述允许安全处理恶意感染文件的结构和操作特征,我们下面离题来描述呈现给人类用户的图形或显示屏显示。为了说明,我们假定计算机***2100提供有窗口***,其中每个进程显示在显示子***的不同窗口中。操作***例如Microsoft Windwos,Unix,Linux,AppleMacintosh OS,以及其他公共操作支持例如开窗和在公共显示器的不同窗口中呈现每个进程的显示的结构和技术。因此每个计算环境提供显示屏或图形输出2187,其由视频显示子***2192处理以呈现窗口多任务处理***,就像传统的多任务窗口***一样。例如通过键盘2190和鼠标2191或其他指示设备输入/输出类似地通过将键盘按钮和鼠标分配给有效进程或窗口来提供。用户2129,或在某些情况下,***本身识别所选择的或有效窗口,以及跟踪键盘和鼠标行为并将其识别为所选择的进程。实际上,键盘、鼠标或指示设备以及显示进程通过UICE 2108-1和CSCE 2108-2被分配给有效窗口或其他所识别的有效进程。
按照类似方式,计算机***内的其他每个设备或***设备,包括任何一个或多个软盘驱动器、USB端口及通过这些端口附带的任何USB***设备、调制解调器、网络接口电路或卡(NIC)、SCSI接口和设备、PC卡插槽和接口以及通过这些接口连接的设备、CD读/写器、DVD读/写器、扫描仪、打印机、音频***、麦克风、扬声器、串行或并行接口以及与这些接口耦合的设备、照相机、录音机、并且没有限制任何其他可以耦合至计算机或信息装置的I/O或***设备或***。
回想本发明的架构、***和方法可以应用到一组多样的具有处理器的设备和器件中,例如但不局限于计算机,PDA,移动通信设备和电话、蜂窝式电话、数码相机、视频记录设备、导航和映射***、汽车发动机管理***、航空导航和引导***、网络服务器和路由器、数字和HDTV电视接收机和处理器、安全***以及所有其他包含处理器并且易受病毒、间谍软件、僵尸(bot)、计算机黑客和其他恶意代码影响的电子设备和***方式。同时回想与执行还没有被完全调试的计算机代码相关的非有意的问题可以以这样一种方式处理,即防止代码中的任何失败对***的剩余部分有任何危害结果,如果其被测试、调试、或在一个隔离计算机环境中使用。因此可能的输入设备、输出设备、输入/输出设备、以及***设备组是一个广泛的多样的组,并且并不局限于通常与传统的桌面和移动笔记本计算相关的设备。***设备例如可以是由根据本发明的原理制作的信息***控制和监控的汽车或飞机。
还将理解到,根据在此所提供的描述,虽然这些不同的***设备在UICE 2108-1的桌面环境中是可视的,实际上访问这些***设备(除键盘和鼠标以外)的进程将从其他要求访问***设备的独立的处理环境中的一个导出,或者更优选地将产生或启动一个新的进程来与***设备交互或通过经由UDPS存储和共享的数据,提供数据或以其他方式与***设备或子***交互。
组合用户接口、控制&切换、以及保护储存器计算环境的功能的 替代实施例
已经描述了由控制&用户接口计算环境2108-1、切换计算环境2108-2和保护储存器及读取/写入计算环境2108-3的结构和执行的操作,根据描述可以理解到这些操作可以组合并在与隔离用户计算环境(例如在图10的实施例中的隔离计算环境2108-4或2108-5的单个计算环境)分离。特别地,这种架构和***配置可以提供本发明***和方法的至少某些优点,只要组合的块没有能力执行用户数据和/或非信任的代码,并且可以仅执行诸如将数据或程序移动或复制到隔离计算环境以供执行的这种操作,但是不能打开和执行它们。在一些实施例中,仅允许对控制实体(是分布在多个计算环境还是分布在组合中)的信任的访问。例如,根据可以实现的规则和政策,键盘和鼠标输入可以被处理为信任的输入或交互介质。开启或上电、登陆到计算机或设备的标准安全过程,例如密码或生物统计可以被实现来提供一些其他的用户访问***的保证,从而可能的输入键盘和鼠标输入被授权和信任。
具有可动态配置的***组件的替代实施例
已经描述了一种特定的多计算环境的实施例,其提出了一些操作、控制、接口和保护特征,下面我们来关注另一个替代实施例,其中一组公共的计算环境被用于实现用户接口计算环境(UICE),控制和切换计算环境(CSCE),保护储存器计算环境(PSCE)以及其他计算环境(CE)的特定集合,其可以被配置成执行字处理、电子邮件、互联网浏览、或其他操作。
参照图10,示出了用于处理数据或其他信息的***2200的替代实施例。如同刚刚描述的图9的实施例2100,该***和结构2200以及用于配置***和操作***的方法和过程可应用于广泛的多样的电子设备组中,其传统地包括一个或多个处理器、控制器、微处理器、中央处理单元(CPU)、ASIC、逻辑电路或用于处理电子数据的其他装置。
为了便于说明,某些元件例如各种计算环境、***设备、开关、以及控制线和其他信号利用相同或相似的拓扑结构绘出并给定相同的参考数字。将会明白的是,存在实现本发明原理的多种方式,这些描述和附图中的每一种(例如图9和图10中的实施例和***配置)是实现和操作根据本发明的***的典型方式。
***2200包括桌面和用户接口计算环境(UICE)2108-1处理单元、控制和切换计算环境(2108-2)处理单元、保护存储器计算环境2108-3处理单元以及两个隔离处理单元计算环境IPUCE#1 2108-4和IPUCE#2 2108-5。在图9的实施例中,典型的处理单元元件被示意和描述来实现特定的处理单元2108-1,…,2108-5,…,2108-N的所需操作。在图10的实施例中,示出了公共组件配置,其允许多个模块单元被动态配置成执行***2200的初始化、配置、和操作所需的功能和操作。虽然等同的或公共的组件是不需要的,使用一组公共的组件存在优点,这些组件可以根据预期的操作和处理功能利用软件、固件和用户或***数据进行定制。
给出该计算环境2108-1到2108-5之间的普通对应关系,该描述突出了实现方案的区别(如果存在的话)和/或详细情况。
参照桌面和用户接口计算环境(UICE)2108-1处理单元,应当注意的是,CPU 2120被示出为包含处理器(PR)和以RAM为形式的与处理器耦合的存储器、以及可选的处理器芯片组和BIOS,如现有技术中已知的。将会明白的是,可以使用任何形式的可以执行控制和切换计算环境(2108-2)的任务的处理器、微处理器、中央处理单元、ASIC或其他逻辑电路。应当注意,即使对于可能需要执行复杂和综合的数据处理和需要能够执行复杂计算机程序指令的CPU的整个***2200,桌面和用户接口计算环境(UICE)2108-1处理单元的“处理器”也可以是更为简单的组件。
也可以对控制和切换计算环境(2108-2)处理单元和保护存储器计算环境2108-3处理单元进行类似的描述。事实上,在一些实施例中,控制和切换计算环境(2108-2)以及保护存储器计算环境2108-3处理单元的功能可以由单个单元2155执行,并且在其他实施例中,主模板复制开关2151和保护存储器复制开关2152的功能和操作甚至可以组合成单个单元2156。
UICE 2108-1也被例示为从CSCE(2184A-1)接收控制信号2184A、从保护主模板(2184A-2)接收操作***(OS)和/或应用程序、以及从保护存储器(2184A-3)接收数据。还可以将数据发送回保护存储器(2184A-4)。这四组信号被表示为存在于每个计算环境中,但是为了保持清楚,不是所有的连接线都已示出。对于一些处理操作,不是所有信号线都需要或使用。
所述实施例还示出了与UICE,CSCE和PSCE交互操作的分配功能以耦合和使不同的***设备可用于可能需要的处理操作。应当注意的是,在至少一个实施例中,键盘和鼠标(或其他指示或选择设备,例如触摸屏)可用于其他计算环境或直接为用户桌面和用户计算环境处理单元使用。
还示出了可选的ASIC 2126。在至少一些实施例中,CPU或ASIC(或其他逻辑电路)足以提供所需的接口处理能力,但是这里为了模块化和通用性,两者都示出了。
参照控制和切换计算环境2108-2处理单元,控制和切换计算环境处理单元(CSCE)被示出为类似的组件组,但是将会理解的是,用于程序和数据的存储器的内容典型地将依据由计算环境提供的功能或操作而不同。在CSCE 2108-2的情况下,临时存储器2149被表示为包含I/O开关配置数据2158和数据传送或读取/写入开关配置数据2159。
参照保护存储器计算环境2108-3处理单元,再次示出了类似的组件组。用于主模板和用户数据的保护存储器被例示为该单元的一部分。包含操作***和应用程序元件的该主模板的完整副本,或在某些实施例中,适于由用户请求的不同处理操作的多个模板的副本被存储在该保护存储器2141中。用户和可能的***文件存储在保护数据存储器UDPS 2143中。回想到保护存储器没有暴露给能够执行可能存在的用户数据(或代码指令)的处理器或CPU,从而如果提供处理器或CPU,则其将被禁止或断开与保护存储器的连接。因此,开关2144和2145将被打开或采取其他步骤来禁用该处理器,例如移除操作电压或抑制操作所需的操作时钟信号。这通常意味着诸如ASIC或其他逻辑或处理电路2146的电路可以与软件和/或固件协作,将提供向保护存储器读取和写入以及保持他们隔离的处理能力。应当注意的是,主模板复制开关和保护存储器复制开关或多个开关可以作为PSCE的一部分或独立单元,但是与其通信。复制(读和/或写)例如可以由ASIC或其他逻辑或处理电路2146执行。
参照两个隔离处理单元计算环境IPUCE#1 2108-4和IPUCE#22108-5还保持该模块计算环境结构。这些处理单元可以有利地包括支持可能请求执行的处理操作的完整范围的CPU,例如字处理、与互联网的连接和交互、蜂窝电话呼叫接收和语音编码和解码等。
具有组合的控制&用户隔离计算环境的实施例
参照图11,示出了本发明的另一个替代实施例2300,其具有组合的控制计算环境和一个(或多于一个)用于用户处理的隔离计算环境。该组合的控制计算环境编排计算***2300的操作以提供早期描述的实施例的控制&用户接口计算环境2108-1、切换计算环境2108-2和保护存储器及读取/写入计算环境2108-3的任何所需的操作。隔离计算环境2304-1可以采用在前面的实施例描述的形式,在此不再详细描述,除了这种ICE通常包括用于执行ICE预期的指令集的处理逻辑2381和可切换地与处理逻辑耦合或去耦合的存储器2380之外。
将会理解的是,在任何给定的实施例中,某些特征和过程步骤将是可选的,并且根据将要实现所需的性能和/或所需的安全或免疫度并不需要。某些特征和过程可以根据***的当前状态和预期的计算环境操作,在其他的因素中动态实现。在任何情况下,将会理解的是,根据所述描述,这些控制操作在与隔离用户计算环境分离(物理或临时地)的计算环境中执行。
在该实施例中,建立控制处理或计算环境(CCE)2302并操作以创建、控制和终止一个或多个隔离计算环境2304-N。在该实施例中,为了简化示意,仅示出一个隔离计算环境2304-1,然而,任何数量的这种用于用户处理的隔离计算环境(ICE)或子***都可以被固定或动态地配置和操作。
CCE 2302包括一些逻辑电路或其他逻辑装置2320(例如控制器、微控制器、处理器、微处理器、中央处理单元或CPU、ASIC、可编程逻辑等)以及通过一个或多个通信链路2328通过一个或多个开关或切换装置2325可切换地与逻辑装置2320耦合和去耦合的存储器2321。开关或切换装置2325通常可以包括多个适合耦合或去耦合存储器2321与逻辑装置2320之间的重要信号和数据的开关或切换元件,并且例如可以包括如现有技术中已知的用于使存储器与逻辑电路例如与CPU耦合和去耦合的信号调节电路。
根据逻辑电路或逻辑装置2320的类型,可以提供例如以ROM,RAM,寄存器等为形式的分离的存储器,并且也可以通过一个或多个存储器开关2326可切换地连接或断开(激活或禁用)。可以有选择地切换以实现向/从内存或存储器进行单向(例如用于读取或写入)或双向通信或信号传输。在此及本发明的其他实施例的范围内,开关、多个开关、切换装置等术语是要给出他们最广义的可能的解释,并且任何物理地或逻辑地从一个位置到另一个位置耦合或去耦合信号或禁用这种位置之间传送信号的能力,独立于是否存在或可能存在电连接或光学连接的设备、逻辑、硬件或软件。
逻辑电路或逻辑装置2320的类型和能力通常取决于由CCE 2302执行的逻辑或其他处理操作。例如,将要执行的处理操作(如对通用笔记本电脑的控制)可以不同于将要对移动电话或电子照相机执行的控制操作,至少一部分是由于将由这些不同设备执行的操作通常是不同的。
在一些实施例中,用于耦合或去耦合与在隔离计算环境2304中的储存器2321、存储2322、I/O或***设备(例如键盘2390,鼠标2391,或网络NIC 2392)的通信或信号,和/或存储设备2380的各种开关(例如开关2350,2360,2325,2356)和切换能力都可以由逻辑电路2320提供,或者在其他实施例中可以提供分离的切换逻辑,并且其全部或部分由逻辑电路或逻辑装置2320控制。在这个或其他实施例中,单个开关或开关组或多个分离的开关或开关组可以用于实现所需的切换操作。
虽然至少某些开关可以至少部分地由CCE 2320控制,但是将会明白的是,通信链路、信号线、总线或其他连接可以不通过或被CCE2320的元件访问。例如,在至少一个实施例中,网络NIC 2392可以可切换地与隔离计算环境2304-1连接或断开,但是从NIC接收的数据或比特不通过CCE 2320而是仅通过ICE 2304-1,以便防止暴露给恶意代理。在至少一些实施例中,分离的调制解调器和/或网络NIC设备和通信通路被提供来从外部环境接收数据和向外部环境发送数据,以便提供附加的免疫和***保护措施。当接收的数据与发送的数据分离时,还为在***2300之外的其他计算机或设备提供了保护措施,因为发送被污染的或包含恶意代理的数据的机会被减少或消除。存储器2321可以被实现作为单个物理设备,作为两个或多个物理设备的组合,或作为一个物理设备或一个或多个物理设备的部分。例如其可以是磁、光、固态中的任何类型、或其他存储器类型,如现有技术中已知的或被开发的。
在所示的实施例中,存储器2321提供主模板保护存储器(MTPS)2322、用户数据保护存储器(UDPS)2323、用于存储器设备和/或I/O设备的开关配置信息或数据2324、以及需要支持与用户的接口和控制的所有操作***元件和应用程序2325的操作部分。临时工作存储器2326还可以可选地提供。在一些实施例中,用于这些不同的所存储的组件的存储器类型可以被有利地选择以便于快速读和/或写访问和/或擦除存储器组件。特别地,在用户计算环境会话已完成、正被终止或关闭之后,固态或半导体存储器可以便于快速存取和准备以及可靠地擦除用户计算环境。
一个或多个隔离计算环境2304-1,…,2304-N可以被固定或动态地配置。当处理器或其他硬件的数量趋于限制物理的(例如硬件)独立的会话的数目时,可以使用临时分离但是间歇访问该硬件,实现可选的附加隔离计算环境,如在该说明书中描述的。
每个ICE 2304被有利地通过CCE受控开关2350可切换地耦合至存储器(或存储器的一部分)2321,以便根据需要读取和/或入写保护存储器(例如MTPS 2322和/或UDPS 2323)或者存储器2321的其他部分。在不同的实施例中,单个通信或信号通路(例如布线、多线总线、或光学链路)可以与通路分配和仲裁电路或其他逻辑装置一起用来分配和控制该单个链路上的通信。此外,在可以提供ICE 2304内的任何操作***和/或应用程序的实施例中,不需要提供ICE 2304中的存储器2380与CCE内的存储器2321之间的通路。
这个或这些相同的通信链路2351,2352,2353还可以用于传送任何标志2355,窗口x-y坐标2356,ICE视频输出2357,和/或在专用或临时共享间歇的基础上耦合***设备。或者,分离的专用或共享通信链路可以用于这些信号或数据。
标志2355提供CCE 2320与ICE 2305之间的状态和/或命令和控制,例如但不局限于下述标志或状态:“ICE准备读取主模板”,“ICE准备读取用户保护数据”,“完成的ICE处理”,“遇到的ICE处理错误”,“请求将文件保存到保护存储器中”,“文件保存操作完成”,“复位和擦除ICE的CCE命令”,以及其他支持所需操作的状态和命令。在本发明的一些实施例中,标志的状态和复杂度有意保持简短(例如几比特或几字节),以便减少或消除状态或命令和控制标志可能不利地在ICE与CCE之间传送或发送病毒或恶意代码的可能性。
正如已经相对于其他实施例所描述的,与视频或图形相关的输出信号或数据2357从每个ICE提供,从而可以捕获ICE用户环境(例如字处理屏幕)的再现或呈现并显示在显示屏或其他设备2393上。在大多数实施例中,将使用单个显示设备,但是本发明并不排除多个显示设备或实际上是多个视频或图形处理器。当在窗口环境下操作时,受CCE的控制,窗口x-y或行采样(line-sample)坐标和窗口大小或ICE窗口的其他描述符都被传送至CCE(或视频处理器2392),从而来自不同ICE的多个窗口可以相互组合,并且可选地但是期望地与由CCE2302或视频显示器2393产生的桌面(例如Microsoft2000桌面)显示组合。
限制在通信通路上传送的数据类型和/或数量的过滤器或限幅器是可选的,但是有利地在CCE存储器2321与ICE 2304之间,和/或在ICE 2304与视频显示控制单元2392之间,和/或在ICE 2304和与标志、窗口坐标和维数、或其他状态或命令和控制信号相关的CCE之间提供。
例如,存储器存取限幅器2370可以设置在存储器2321与ICE存储器2380之间。按照类似的方式,限幅器2371可以设置在每个ICE与CCE或视频显示控制单元2392之间的视频信号通路上。
在一个实施例中,限幅器与开关(例如与开关2350,2360)组合,尽管在其他实施例中它们是分离的。这种过滤器或限幅器还可以被实现为CCE逻辑的一部分或ICE逻辑的一部分或两者的一部分。可以可选地提供具有ICE和CCE之间的一些变形的备份(redundancy)。通常,在该实施例中,任何这些过滤或限幅操作都将涉及在试图的通信与允许的通信组之间的比较。如果试图的通信被允许,则其将被允许通过,如果不允许则将不允许通过。各种错误消息和/或通知可以可选地但是期望地根据规则或政策实现
具有用于控制和隔离用户处理的单个时间隔离计算环境的实施
参照图12,示出了仅提供单个物理计算环境但是可以使用间歇访问和时间或时分访问来支持多个逻辑或虚拟计算环境的实施例。该单个物理计算环境可以支持如在前面的实施例中描述的CCE的控制和一个或多个用户处理会话中的隔离处理计算环境。这种类型的具有时分的间歇访问也可以被本发明的其他具有或可以支持多个物理计算环境的实施例使用。
在所示的实施例中,单个处理逻辑元件2404(例如处理器、微处理器、ASIC、控制器、微控制器、或其他逻辑或处理电路装置)可以通过开关或切换装置2412可通信地耦合至存储器2406。
在一个实施例中,存储器2406可以被物理地或逻辑地分割或分区以提供在隔离计算环境存储器2410与控制计算环境2408之间的分离,其中例如,主模板和保护用户数据以及任何操作***和应用程序元件可以存储而不必担心污染。提供该隔离计算环境存储器以用于在ICE执行期间存储用户数据、操作***和应用程序元件、临时存储器等的工作副本。共享公共的物理存储器可有利地伴随有控制例程或过程,该控制例程或过程确保在ICE模式下操作时恶意代码的执行不会到达或污染或感染保护数据存储器,例如损坏主模板、原始保护用户数据文件等。
本发明的其他实施例使用分离的物理储存器或存储器,并提供存储器地址或访问控制,从而无意的访问例如可能由试图使分配的存储器地址范围溢出的黑客产生的访问不会发生。为相对于隔离计算环境工作存储器的控制和保护存储器提供独立的物理存储器,这提供附加的隔离度,如其提供了完整的物理隔离的可能性,其中通信线路或总线没有将两者互联(或它们可以物理地或逻辑地切换出或禁止),使得不会发生任何污染。使用不同的物理存储器也是可选的但是有利地提供了使用不同存储器设备的优点,例如用于控制环境存储器部分的ROM或EEPROM,用于ICE的RAM,和诸如用于任意大数据或程序存储的比如硬盘驱动器的磁存储器。对存储器的ICE或CCE需求也可以利用多个不同的物理存储器和/或存储器类型。
开关或切换装置2412还可以负责使输入/输出或其他***设备(例如但不局限于键盘2418和鼠标2418)与所选择的一个计算环境耦合和去耦合。在其中相同的处理硬件被临时分配给不同的计算环境的实施例中,仍然需要所述切换来允许或禁止输入、输出或其他***设备的使用,以便可以维持所需的隔离度。例如,虽然键盘和鼠标可以与执行字处理应用程序的控制和隔离计算环境耦合,但是网络NIC卡可以仅与隔离计算环境耦合或将其使能到执行互联网浏览会话的隔离计算环境而不是控制环境。
在一个实施例中,提供复位模式以启动引导或重新启动到已知的初始状态。用于该初始状态的操作***和应用程序以复位和重新装载可以方便实现的方式存储在控制环境存储器2408的非易失性存储器中。在一个实施例中,其存储在快速ROM中。该模式允许隔离计算环境执行其通常在产生一个或多个新文件或数据集或产生校正的或新版本或多个这种文件或数据集的版本时结束的处理操作。在一个实施例中,复位模式过程为任何这种新的或校正的文件或数据集查看存储区的特定区域,然后将其复制到保护存储器中以根据定义的规则或政策添加或替换保护存储器中的文件。由于复位模式过程仅复制文件或数据集,而不是打开或执行它们,因此与在其他实施例中描述的一样维持了保护。
在另一个实施例中,与共享硬件资源的临时隔离是通过存储和恢复中间逻辑或处理器2402状态来实现的。通过存储处理器2404和任何其他所需的状态信息或数据,一个诸如控制进程的进程可以被中断,可以引入一个新的隔离计算进程(完整的或部分的),当中断或恢复时,其处理器状态为存储或恢复等等。多个处理会话可以以使用最小物理硬件集的方式进行。提供用于存储和恢复处理器状态的结构和方法,从而多个处理可以在定义的时间周期内处理,有时被称为同时处理或多任务。我们不再探究这些已知结构和方法的详细情况。然而,在本发明的上下文内,我们应当注意的是,可以提供寄存器或其他存储器以用于为多个计算环境独立地存储处理器2404状态,以便保持隔离,并且恶意代码不能避开所述隔离。因此,处理器的每个不同的临时分配部分(例如芯片,RAM,存储器或这些或其他组件或部分的组合)可以单独地、作为某些组,或共同地复位或修复。
在一个实施例中,分离的复位逻辑2450与硬件或软件复位按钮或开关2451耦合,其提供在不同的计算环境之间转换、在一个进程被中断时存储状态以及在恢复该进程时恢复该状态所需的隔离控制。复位逻辑可以是硬连线逻辑或者可以是可编程的,并产生信号给处理器2404和开关2412,以实现状态的存储和恢复以及其他设备2400的参数和条件的设置。设备组件的控制线根据需要设置在状态存储器寄存器2453、存储器2406、处理器2404、开关2412之间。在一些实施例中,在隔离计算环境中的进程被引导完成,从而通常仅有控制进程可以暂停并且随后恢复。在其他实施例中,任何进程都可以暂停和恢复。
将会理解的是,这种类型的某些实施例将会找到到所谓的瘦计算设备,例如移动电话等的特定应用。在这种设备中,在单个使用该设备时,可能存在处理与电话对话相关的声音处理,接收电子图像或图片,或查找日历项或电话号码。通过使用最少的硬件来促进多个进程,可以减少设备的开销,保持小尺寸,以及实现在电源消耗和热量产生方面的减少。
具有用于控制和隔离用户处理的单个时间共享计算环境的替代 实施例
参照图13中的实施例,示出了根据本发明的方面的架构和***2500的通用配置。在该实施例中,根据需要,第一计算环境2501包括或可以配置成包括和支持桌面环境、控制环境、擦除/重格式化功能和/或环境、一个开关或多个开关、开关配置、保护存储器、网络接口和连接或卡、具有预定或动态确定的通信(其中具有限制通信功能)以提供或保留隔离度的ASIC、视频处理和/或视频控制、鼠标和键盘输入、输入/输出连接、***设备连接和控制、以及这些组件的组合的功能。该第一计算环境2501通过开关2503(其本身可以是可选配置的或在第一计算环境内实现)耦合至第二或用户计算环境2502。该第二用户计算环境具有在本发明早期的实施例中描述的相同的隔离,因此对病毒、黑客、网络恐怖、和由恶意计算机程序代码造成的其他偶然的或故意的攻击或污染提供相同的免疫力。
典型地,用户计算环境2502将产生可以由用户计算环境或通过第一控制计算环境2501的显示设备处理和显示的视频输出信号。然而,将会理解的是,在本发明的一些实施例中,不是所有的计算环境都需要视频输出信号或甚至用户知晓已创建分离的计算环境。例如,在特定的移动电话中,用于处理或编码和解码声音信号创建的计算环境可以不需要任何视频输出而是仅产生所需的信号。这仅仅是一个其中所述输出为数据集的情况的例子,在该例子中,实时或非实时地产生和使用该数据集并且不存储。从本说明书中提供的描述中将很明显的是,任何计算环境的输入和输出将依据处理任务而不同。
开关或切换装置2503可以耦合或去耦合用户计算环境2502与第一计算环境2501之间的数据2506(例如用户文件或文档的副本),其处理控制、接口、保护存储器、切换及用于***2500操作的其他功能。附加的可选的有限通信链路2508可以包括通信线路和可选的ASIC或其他逻辑电路或逻辑装置,其可以提供用于支持这种操作,诸如保存文件、擦除计算环境、擦除内存、擦除存储器、传送窗口和/或对象坐标和身份、传送鼠标坐标等等,如在本说明书其他部分所描述的。将会明白的是,这些操作的切换是可选的,并且通信通路可以是直接的,并且任何信号组合(命令,数据等)都可以进行组合和复用或通过定义的通信链路集来传送。这种通信链路可以是布线、总线、光学链路、或其他连接装置,如现有技术中已知的。
至于这里所描述的其他实施例,过滤器或限幅器2510可以在任何通信通路中提供,以过滤或限制通过通信通路的比特或数据的类型、图形或数量和量。可以提供其他可选的特殊专用通信通路或链路2526,如同其他普通可共享的通信通路或链路。
PC卡总线或接口卡实施例和传统计算机
已经描述了本发明***、架构和方法的几个实施例,下面我们来关注适于卡或其他电路的本发明***、架构和方法的实施方案,其通过ISA总线、PCI总线、USB总线、PC卡总线或其他提供适于所需性能等级的带宽的总线或接口。按照类似的方式,本发明可以与可翻新改进地***到***或***设备总线例如到ISA,PCI,SCS,火线,USB或其他总线或连接中的任何卡、芯片、或芯片组结合使用。
该PC卡实施方案特别有用,因为其允许具有可翻新改进的PC卡插槽或电缆的笔记本电脑和其他信息装置提供安全等级和防病毒、防黑客性能,而不完全替代该笔记本电脑。
参照图14,下面关注耦合至主计算机处理器和主处理器存储器的PC卡元件。在典型的PC卡接口中,通过PCI-CardBus桥将PC卡连接至PCI本地总线,如在现有技术中已知的。该PCI本地总线随后通过Host-to-PCI桥耦合至主计算机总线。该主机总线与耦合至主计算机处理器或CPU的总线相同。对主处理器和所有主计算机的***设备的访问提供了改进基于PC卡的辅助处理***的机会,其具有本发明的***、架构和方法的优点。
参照图14,示出了本发明的PC卡版本的示意图。虽然有利地使用了PC卡,但是将会明白的是,本发明可以体现在其他不同的设备中并通过其它现有的或将被开发的接口与笔记本电脑或其他信息装置连接或耦合。
PC卡总线提供了将本发明***的电路与笔记本电脑耦合所需的所有信号。在一个实施例中,使用主计算机的电路来提供用户接口计算环境,但是在其他实施例中,仅仅PC卡的处理器可用于处理。在一个实施例中,使用主计算机的硬盘驱动器,而在其他实施例中,使用PC卡上的或通过电缆耦合至该PC卡的固态存储器。有利地是,其中计算机具有多个PC卡插槽或连接器,一个插槽可以安装和连接携带本发明的处理器***的PC卡,并且第二个卡可以支撑具有硬盘驱动器、光学、固态或其他存储器或这些存储器的组合的存储库。存储器也可以设置在处理器PC卡上和基于PC卡的存储设备上。
图15是表示用于将PC卡2602耦合到PCI-to-CardBus桥2605的通用结构2600,通过该桥电路耦合至PCI本地总线2605。该PCI本地总线随后耦合至主PCI桥2610,其提供对主总线2612和主处理器2614的访问。主存储器2616,例如DRAM,也耦合至主总线2612,并通过host-PCI桥2610耦合至PCI本地总线2605。在本实施例中的PC卡包含本发明的计算***,而主处理器2614是安装在传统笔记本或桌面计算机中的处理器。将会理解的是,对于ISA和PCI卡来说,它们可以直接耦合至ISA本地总线和ISA总线,如现有技术中已知的。PC卡2602可以有利地包括存储器、网络互联卡(NIC)、调制解调器、图形处理器、无线通信、和一个完整计算机***的其他设备及***操作特征。
可替换的是,或此外,PC卡2602可以包括用于将这种设备耦合到所述卡的连接器。在其他实施例中,可以提供第二PC卡来扩充存储器、通信、视频处理或其他特征,并且与包含本发明的处理和计算环境的PC卡2602(或桌面型计算机的其他插件)交互操作。在可改进或可***的软件包中提供本发明的计算和处理环境的能力可以扩展到具有插件或外部接口能力的各种手持和便携式设备,例如移动电话、组织器、个人数据助理、卫星电话、医疗器械、娱乐***、或其他设备或***。
图16示出了本发明的实施例2700,其提供独立的动态可配置***组件,例如但不局限于:存储元件(例如RAM或ROM)2702、任何形式的数据储存器(例如磁硬盘驱动器或其他储存器子***或设备2706、固态存储器2708、光学储存设备2709等)、视频处理元件2704、信号处理元件2711、以太网接口2712、网络接口卡2713或能力、调制解调器2714、无线接口2715、处理器2705、开关或切换元件2730、通信通路、布线和/或总线2720、ASICS 2717,或相对于本发明描述的其他组件。在该图中仅示出了互连能力,并且可应用于前面所示意和描述的本发明的任何实施例,其提供另外的架构、拓扑***和方法的详细情况。动态配置和重新配置可以在初始化时、操作期间(甚至在其他处理操作正在进行的时候)或在***复位时发生。在一些实施例中,分配表或数据结构2725将被存储以识别不同组件和元件到不同计算环境的分配。
一些或所有这些组件的动态可配置性已经相对于本发明的架构、***和方法的其他实施例进行了描述。例如,之前描述了计算环境和这种计算环境的组件可以是模块化的并可动态配置,以便特定的故障组件和/或计算环境可以通过控制实体,例如CSCE或CCE计算环境去除服务,直到包含计算环境的故障组件或组件组被换出工作部分或被修复。同时已经描述了本发明的一些实施例可以使用动态可分配的和可配置的中央处理单元(CPU)、微处理器、微控制器、ASIC或某些组合以提供物理结构来创建已经描述的类型的计算或处理环境。该动态配置还提供了当具有不同特性的组件或元件在***内可用时,在选择适于特定的处理任务的组件或元件的特性上的灵活性。在一些情况下,处理或计算任务的复杂度将指示物理元件,其将支持所需的计算环境例如对快速处理器或大型存储器的需求,或者在其他情况下,使对适度的监控任务的电源损耗最小化的愿望,该任务需要较少的处理能量或速度和最少的存储器数量。回想这种选择和配置可以处于用户控制下进行的,或者更典型地,是处于根据某些预定或动态确定的规则或政策的计算***的自动控制下进行的,并且可选的但是希望地,符合某些测量的计算***物理的或逻辑状态、环境条件、处理请求和复杂度、应用程序大小和数据集大小。本发明的其他实施例提供了对独立元件(例如CPU和储存器)的动态分配,其可以被组装成计算环境,即使在制造计算机时没有物理连接甚至不是相邻地位于计算机***硬件内。在一些实施例中,动态地分配和配置可以包括和使用外部组件或元件,比如可以经由已经描述的切换***、经由外部端口来进行配置。在一些实施例中,控制计算环境(例如CSCE,CCE或如在此所描述的其他控制计算环境)可以交互操作或控制相对于***设备、输入/输出设备、和/或存储设备描述的开关或切换***,以允许通信通路、开关计算***元件,并构建链路和连接来提供期望的操作。
虽然图16示出了连接至单个示意“线”的组件的不同类型,将会理解到每个组件将通过布线、布线组、总线或其他具有适当的电(或光)特性和信令协议的通信链路来支持期望的通信。这种合适的特性是传统的,现有技术中已知的,在此不进行详细描述。还将理解的是,虽然本发明的一些实施例可以提供所有前面列出的组件和元件(以及没有特别列出的其他组件)的动态配置,但是其他实施例可以提供更有限的动态配置性,例如将不同的数据储存器动态地配置到动态或固定地配置的计算环境的能力。
图17示出了表示多个计算环境的实施例,每个计算环境具有一些组件和电线、总线或其他通过开关“X”将计算环境组件连接到不同的信号线或总线的接口的集合。还示出了多个数据储存器子***,其可以被动态分配给整个计算***以供不同的计算环境使用。在一些实施例中,每个计算环境可以包括某些数据储存组件和动态可分配的或可切换的数据储存器,该数据储存器表示,当储存或处理任务所需要的储存能力(包括例如临时储存器)超出了在定义的计算环境内可用的储存器的数量时的附加储存能力。
图18示出了本发明的计算环境2801如何通过键盘通信线路或链路2807(例如电缆或无线链路)和鼠标通信线路或链路2808将多个键盘2803和鼠标2804(或其他输入或指示设备)耦合至本发明计算***内的隔离计算环境(ICE)的隔离“集合”或整个计算环境2801,并通过视频通信信号链路2806与多个独立的分层视频“集”组合。输出可以被发送至单个监视器或独立的监视器2805,以创建独立的‘节点’2802-1,…,2802-N,其独立地执行且相互隔离,然而所有都在单个控制器或控制环境的控制下。
具有多个动态配置的虚拟计算或处理环境的实施例
已经描述了本发明的各个实施例,包括多个实施例,其中(i)组合了用户接口、控制&切换、以及保护存储器计算环境的功能(例如参见图9和图10以及它们附带的说明);(ii)***组件是动态可配置的(例如参见图10及其附带的说明);(iii)存在单个临时隔离的计算环境用于控制和隔离的用户处理(例如参见图12及其附带的说明);(iv)存在单个临时共享的计算环境,用于控制和隔离的用户处理(例如参见图13及其附带的说明);(v)存在PC卡总线或其他接口卡实施例和传统的计算机(例如参见图14和图15及其附带的说明);(vi)该***具有独立的动态可分配的***组件,用于根据计算任务或其他基础来定义计算环境(例如参见图16及其附带的说明);以及(vii)多个计算环境被定义或配置,其中每个具有组件或布线、总线或通过开关或复用器(例如协作的开关组)将计算环境组件连接到不同信号线或总线其他接口的某些集合(例如参见图17及其附带的说明)。本发明的其他实施例也已描述,该列表不是打算识别这里的所有实施例,而是要建立用于标记另一个实施例的基础,这里也称为虚拟的处理空间和虚拟处理环境。
如以下所描述的,该实施例包含物理***组件的动态配置(包括选择、分配和切换等方面)以及到多维虚拟处理空间中的任意维数组的时间复用(时间或时间维度)的扩展。实施例还可以动态可配置性的概念以及PC卡总线或其他接口卡扩展的概念扩展到包含其他插件或模块(例如PCI卡插槽子板、母板芯片组替换或附加),以及可以在传统组件之间***的接口(例如可以***到(或与之紧密配合)母板和传统微处理器的处理器(例如由Intel,Advanced Micro Deviecs,摩托罗拉或其他公司制造的类型)和传统的计算机的处理器的本发明的接口)。此外,插件和接口的概念可以组合。下面详细描述虚拟处理或计算空间以及虚拟处理或计算环境实施例。
具有多个复用虚拟处理环境(VPE)的多维虚拟处理空间(VPS) 的实施例
该实施例以及前面描述的实施例提供了病毒、黑客、以及其他恶意代码免疫环境,其中每个进程被保持与其他是或可能驻留在虚拟处理空间中的每个进程隔离。来自外部或可能受污染的源的进程输入通过输入隔离器进入到虚拟处理空间内的隔离处理环境进行处理,该接受新进程之前,该虚拟处理空已经被清除、清空或以其他方式复位到已知的信任状态,从而可能由以前的进程引入的任何污染都可以消除。然后处理环境处理或执行接收的外部进程并在完成时通过输出隔离器把进程输出或结果导出到外部世界,例如导引到请求进程或另一个被配置成接收该结果的进程。输入和输出隔离器可以是相同的物理隔离器,或者它们可以是不同的,使用不同隔离器的优点在于它们可以与输出进程在时间上部分重叠地处理输入进程。当在例如执行或试图执行病毒或其他恶意的或破坏性的代码(甚至是伪装成数据的代码)的处理期间处理环境检测到问题时,该进程可以冲洗外部进程结果,并且不将其传送至外部世界。因此,即使执行病毒或其他恶意代码,该处理环境也被清除、清空、复位或以其他方式返回到已知的和信任的状态。在一个实施例中,已知信任状态可选地从信任模板或其他保护储存器恢复,该信任模板或其他保护储存器在处理任务期间也保持与处理环境隔离(包括嵌入的模板的本发明的实施例不需要这种清空和恢复)。信任模板是用于重装操作***、应用程序、***参数等的源。在一个实施例中,通过在只读存储器中提供信任模板来提供隔离。在一个实施例中,从输入到处理器的隔离以及从处理器到输出的隔离是通过硬件电路提供的,该硬件电路仅执行比特或比特流复制或传送操作,并且没有能力来执行病毒或其他恶意代码或被修改来执行其他操作。用于两个处理环境和两个外部进程的处理环境隔离的方式的一个实施例在图19中示出。
已经描述了多处理环境隔离的方面,将会理解的是,用于单个处理或计算环境、多计算环境以及用于时分复用计算环境的其他实施例的详细情况已经描述。如何保持隔离的详细情况同样可应用于当前实施例,下面来关注包含这些特征中的至少一些方面的多维处理空间。
参照图20,示出了多维虚拟处理空间的实施例,用于处理或执行至少一个进程,但是更常见的是多个或大量进程。因此虚拟处理空间可以是1维,2维,3维,4维或N维,其中N是任意正整数。原则上,N可以是任何正整数而没有限制,但是实际上由于在定义的时间周期内(或其他操作限制)对一个或多个物理硬件元件(例如逻辑电路、微处理器、微控制器、存储器元件,类似的处理或计算硬件)配置、分配、控制和/或操作非常大量的虚拟处理环境,虚拟处理环境的数量例如可以被限制为小于1000的数量,例如在1和1000之间的任意特定整数,或小于100,小于10或小于等于2,3,4,5,6,7,8,9或10的数。
由于与图示具有3维以上的虚拟处理空间的结构和操作相关的难度,这里的描述关注于具有三维的典型处理空间上。这里使用术语“虚拟”至少部分是由于可以在单个物理处理器内创建多维处理空间,取决于人们的观点,该单个处理器可以被认为是一维或三维。即使是考虑基于时间的处理事件或处理器事件时间序列,维数也可以认为是二维(处理器空间维数加上时间)或四维(三个处理器空间维数加上时间)。在配置多个处理器的情况下,维数被进一步扩展或增加。事实上,本发明的结构、设备和方法提供了更大的维数,从而通过小于N个物理处理器数量和时间来创建N维虚拟处理空间。
图20的典型实施例具有维度“处理器数量”(处理器的个数),“处理时间段”(其可以被解释为一个处理器时钟周期或多个处理器时钟周期集合或其他时间间隔),以及“进程类型”(在一个实施例中,其可以被解释为与一个物理处理器内的资源或一组资源相关)。在图20中识别的处理器类型作为示例包括但不局限于浮点操作、图形渲染操作、通信操作、以及任何其他与计算、信息处理、信号处理、通信、游戏、动画、语音处理、数字信号处理以及任何其他指令、代码或在计算或信息处理技术中已知的操作类型相关的不同操作类型的任何其他倒微度(mired)。
将会明白的是,根据本发明可以提供专用处理器,其中,传统处理器的分离元件被集成,或可以提供专用处理器,使得处理器元件可被独立地访问或寻址,从而不用于一种类型的处理操作的元件在公共或部分重叠的时间周期内将可用于其他操作。本发明还提供了多个可在单个处理器内提供的处理器元件的示例或副本,而无需复制处理器内的所有结构。在图20的实施例中,在虚拟产品空间内定义5个虚拟处理环境,如在下表中示出的,表中示出了典型的虚拟处理环境和复用的隔离或分离参数。
由该虚拟处理空间提出的范例可以用复用操作类推,其中例如当选择输入信号呈现给电子***中的后续电路时,使用逻辑电路(例如一个或多个开关或切换元件)来选择多个复用器的输入中的一个作为该复用器的单个输出。
表1.典型的虚拟处理环境和复用的隔离或分离参数
    进程     提供与其他进程的分离和隔离的复用参数
    进程或数量 进程/指令类型     时间段   其他
    1     1 浮点操作     50   …
    2     1 浮点操作     70   …
    3     1 通信操作     50   …
    4     2 浮点操作     50   …
    5     1 图形渲染操作     100   …
在本发明的***、设备和方法中,外部进程(或其定义的命令、指令和数据)有选择地路由或复用到虚拟处理器空间内的特定资源组(称作虚拟处理环境)。该虚拟处理环境同样可以通过一组物理或逻辑开关、切换元件、或开关或切换元件组定义(例如复用器或复用器组)。
图20示出了典型的实施例,其中N维虚拟处理空间2950定义了多个虚拟处理或计算环境,包括VPE1 2951,VPE2 2952,和VPE4 2954。这些虚拟处理或计算环境中的一些也可以相当于物理处理或计算环境。虚拟处理空间(VPS)和虚拟处理器环境(VPE)配置、分配和控制单元(CACU)2960负责配置物理处理资源,例如处理器、存储器、高速缓存器、I/O设备、键盘、显示器、CD ROM及任何其他可能需要的处理组件或***设备。在该实施例中,沿着物理处理器身份维度轴2955、处理时间段维度轴2956和指令或进程类型维度轴2957定义VPS 2950。在该实施例中,所识别的指令或进程类型是浮点型、图形渲染型以及通信型。可以明白的是,也可以识别其他类型。在该实施例中,指令或进程类型被识别,并且可以使用不同的处理***资源方面。此外,如相对于图16和图17中的可动态配置和切换的组件的描述,处理***可以具有一组需要的可配置资源,并且这些物理元件可以被分配给特定的进程。将会理解的是,定义特定的虚拟处理实施例的能力可以根据物理处理资源来限定,因此定义虚拟处理空间以支持所需的虚拟(或物理)处理或计算环境的能力将取决于所存在的物理资源。比如扩展物理资源的修改例将允许扩展VPS的维数。在为特定的配置提供冗余资源的情况下,VPS 2950可以提供特定VPE的多个示例或副本。
CACU 2960还与模板2958的信任资源通信并控制该模板的信任资源,该模板的信任资源存储或产生已知的干净和功能版本以及任何操作***、程序应用、驱动软件、***或程序参数和数据、或处理特定的处理操作所需要的其他软件元件。其中保护模板免受变更或污染并被用作处理代码和指令的信任资源的方式在本说明书中和在此引入作为参考的相关专利申请的说明书中进行了描述,因此这里不再重复。
隔离储存分配控制器逻辑2962负责将进程输入2941(例如处理器输入P12942-1,P122942-2,…,PK2942-K)连接到特定的隔离储存器锁(ISL)2943(例如ISL12944-1,ISL22942-2,…,ISLM2942-M)。该隔离储存器分配控制器2962可用于切换可能的连接的网络或结构的连接,从而特定的处理专门路由到并与可用的ISL 2943连接。这些ISL可以依次连接至适当的虚拟处理环境,其中实际上该连接是与物理资源连接。与通过输入隔离(或输入ISL)将进程输入连接到处理器(例如VPE的物理表现)和通过输出隔离(或输出ISL)输出进程输出相关的操作已参照图21中的方法进行描述。动态切换和配置组件的操作也已描述,并且在此不再重复。在输入进程中ISL的动态分配不需要,并且可以是固定的,但是对于例如动态配置和分配提供的其他灵活性而言,这种动态配置和分配是有利的。
虽然相对处理器数量、时间段、以及图20中的实施例的进程类型描述了三维虚拟处理空间,将会理解的是,所述维度并不仅仅局限于这些维数。例如,利用适当配置的物理结构、指令集和格式、数据集和格式,所述维度可以扩展到其他处理参数、变量、条件等。此外,虽然到目前为止所述描述建议例如当前公共用于个人计算机、笔记本电脑、服务器、路由器、个人信息设备、个人数据助理、信息装置、蜂窝电话、电视机、家用电器、汽车电子、工业控制和自动化、机器人技术、飞机控制和其他计算和信息处理***及设备的数字计算,本发明并不局限于此。例如,本发明还可应用于模拟计算和信号处理以及数字计算和数据处理,以及混合的数模设备和***。本发明还可应用于光学计算,其中例如频率、波长、传播模式、以及其他光学设备和***参数的这种附加的维数可以被选择和复用。光学、数字和/或模拟元件可以以任何组合的形式提供以允许对虚拟处理空间和在此定义的多个虚拟处理环境进行配置、分配、和控制。当通过编程操作制造、建立时所述配置、分配和控制可以是固定的,或在根据操作政策操作期间由控制元件进行动态设置。
本发明的***、设备和方法的实施例可以使用切换、互连、复用、选择、配置和/或复用各种类型中的任何一种来实现待处理的任务的所需结构,并且在处理***内可以同时使用适于所述结构和过程的不同形式。各种开关,以及切换和控制方案和方法已相对于其他实施例进行了描述,并且这些实施例可以使用这些方案和方法。
将会理解的是,复用的许多形式和类型都是现有技术中已知的,未来也可以开发出其他形式和类型,这些类型中的任何或所有类型都可以与本发明的***、设备和方法结合使用。以下清单是为了示例而提供,而不是为了限制:地址复用、突发时分复用、码分复用、解复用、差分复用、隔离复用、多用户复用、多用户空间复用、正交频分复用、偏振分割复用、空分复用、空间复用、副载波复用、统计复用、时分复用、波分复用、安全虚拟化、创建独立的或安全处理或计算环境的方法、和/或信息、数据或计算机处理的任何其他复用或分割技术,过程或方法。还将理解的是,可以使用这些复用方案、虚拟化方案或分割方案中的任何一个或组合。
已经阐述了虚拟处理空间(VPS)和多个处理或计算环境的实施例,下面来关注对操作虚拟处理空间内的每个虚拟处理环境的进程和方法的描述。步骤的顺序是示意性的,并且将会理解的是,可以应用不同的顺序以实现等同的或类似的结果,并且特定的步骤可以并行执行,其中相对于资源不会发生冲突。在进程2970中的每个主步骤被编号,每个主步骤中的典型的子步骤由字母来表示。方法的实施例也在图21的流程图中示出。
1、识别外部进程和创建、配置或分配信任的虚拟处理或计算环境(以及可选的隔离储存器锁)以执行所识别的外部进程(步骤2971)
(a)从多个可能的外部进程输入(EPlin,EP2in,…,EPKin)中识别第一外部进程输入(EPlin),其中K是正整数范围内的整数(步骤2971a)。为了简化说明和命名,术语“外部进程输入(EPlin)”和“外部进程输出(EPlout)”分别是指输入和输出进程以及执行根据该执行结果产生的进程所需的内容(例如操作***需求和/或参数,应用程序和/或参数、命令、指令、数据、或定义或执行进程所需的其他元件)。
(b)从N维虚拟处理空间(VSP)内的多个可能的虚拟处理环境(VPE1,VPE2,VPE3,…,VPEM)中建立第一个已知的信任虚拟处理环境(VPE1),其中N为正整数范围内的整数(步骤2971b)。当要执行的进程是计算进程时,虚拟处理环境还可以被认为是虚拟计算环境,或更简单地为计算环境。由于这些处理或计算环境相互隔离并与外部进程隔离,并且是虚拟的或物理的子***或单元,他们也被称作隔离处理单元计算环境,可用于用户应用程序处理、***控制或任何其他操作或处理任务的任何目的。例如,这些虚拟处理环境可以配置成作为控制&切换计算环境、保护储存器计算环境、读取/写入控制计算环境、用户接口计算环境、用户计算环境、控制计算环境、隔离处理单元计算环境、用户接口计算环境或其他计算或处理环境进行操作。这些虚拟计算或处理环境可以静态地确定但是有利的是从现有***组件中动态地定义和配置。这种***组件可以是本地的或地理分布的。
(c)可选的,在这个阶段可以识别、配置和/或分配隔离储存器锁(以下见ISLlin和ISLlout),使得它们在需要时是可用的,如下所描述的(步骤2971c)。应当注意隔离储存器锁可以存储命令、数据或其他信息或内容,但是不能执行任何可能是病毒或其他恶意代码的比特集合。短语“隔离储存器锁”中的术语“锁”与用于航天器中的“密封舱(air lock)”或其他压力或防污染室或环境的术语“锁”类似,其防止密封舱一方的环境与密封舱另一方的环境直接连接或影响。
2.将外部进程输入安全装载到信任的虚拟处理环境中(步骤2972)
(a)建立第一已知的信任(清空的)隔离储存器(ISLlin),以用于存储执行EPlin所需的输入组件(步骤2972a)。
(b)使EPlin与ISLlin去隔离(耦合)(步骤2972b)。(耦合和去耦合可以是固定的或动态确定的,并且可以是物理的、逻辑的或虚拟的)。
(c)将EPlin装载到ISL中。(使用复制操作和复制设备或硬件有利地执行在任何源与任何目的地之间的装载或传送,该设备或硬件在内荣比特被复制时不能执行该任意多的复制内容比特(例如EPlin或EPout)(步骤2972c)。此外,有利地是,隔离储存器锁(ISLlin和ISLlout)不能执行存储在其内部的任意多个内容比特。还将理解的是,有利地,在外部进程与虚拟处理环境之间从来不存在耦合,并且:(i)通过输入隔离储存器锁将外部进程输入的副本传送至虚拟处理环境,以及(ii)通过输出隔离储存器锁将外部进程输出的副本从虚拟处理环境传送回外部进程(或另一个指定的进程)。
(d)将ISLlin与EPlin隔离(逻辑地或物理地不耦合)(步骤2972d)。
(e)使ISLlin与VPE1去隔离(耦合)(步骤2972e)。
(f)将EPlin从ISLlin传送/装载/复制到VPE1(步骤2972f)。
(g)使ISLlin与VPE1隔离(去耦合)(步骤2972g)。
3.在隔离虚拟处理环境内执行外部进程(步骤2973)。
(a)使用VPE1处理EPlin输入以产生EPlout输出结果(步骤2973a)。
4.将外部进程结果安全卸载到启动的外部进程(步骤2974)。
(a)建立第一已知信任(清空的)隔离储存器锁(ISLlout),用于存储由VPE1执行EPlin而产生的输出组件(在一些实施例中,ISLlin与ISLout相同,而在其他实施例中是不同的)(步骤2974a)。
(b)使VPE1与ISLlout去隔离(步骤2974b)。
(c)将EPlout传送/装载/复制至ISLlout(步骤2974c)。
(d)使VPE1与ISLlout隔离(去耦合)(步骤2974d)。
(e)使ISLlout与EPlout去隔离(耦合)(其中输出结果EPlout是或可以被认为是与输入进程EPlin相同的进程或不同的进程)(步骤2974e)。
(f)将EPlout传送/装载/复制到EP1(步骤2974f)。
(g)使VPEl与ISLlout隔离(去耦合)(步骤2974g)。
5.解分配信任的虚拟处理环境和释放任何分配的虚拟处理空间资源(步骤2975)。
(a)释放和解分配任何已分配给VPElin或VPElout的虚拟的处理环境或虚拟处理空间资源(步骤2975)。应当注意的是,所述资源在其可用性对于所述进行来说不再需要之后的任何时间都可选地可以被释放和解分配(步骤2975a)。例如,在其已被识别为进程但是不需要排除在对其他外部或内部进程可用的资源池之外后直到必要,所述资源可以被调度来供进程使用。
将会理解的是,所描述的进程仅仅是用于实现所需的或所要求的隔离度的一个实施例。其他用于实现隔离的方法和过程也可以使用,并且在所描述的实施例中步骤的顺序可以改变,同时实现相同的结果。
单个计算机内隔离的多个进程流的时间复用的典型实施例
在本发明的一个实施例中,分离的进程或处理流保持分离并通过其他控制逻辑的控制电路隔离。可以使用处理流,其中复杂的或多部分的进程的完成需要不止执行一个进程。在该上下文中的分离意味着(在需要的情况下)进程的执行(例如计算机操作***和/或应用程序指令的执行)可以与处理逻辑内的其他进程相隔离地执行。处理逻辑可以是微处理器、处理器、控制器、微控制器、专用协处理器、数字信号处理器、光计算机、模拟计算机、或执行处理操作的其他设备或***。虽然本说明书把注意力聚焦在具有单个处理器内核的单个处理器上,本发明的结构和方法可以应用到多处理器***中每个或所选择的处理器上或应用到单个处理器的多个内核上。本发明还可以应用于具有在单个板上的多个处理器和/或分布在不同的板或不同的机器之间但是耦合的多个处理器的计算机,所述分布在不同的板或不同的机器之间但是耦合的多个处理器用于相互通信或与一些其他主控制逻辑通信。
多个进程可以基于在物理处理设备空间变量的任何一种组合或在这里所描述的多位虚拟处理空间来进行区分或分离。某些特别有用的变量涉及在至少部分共享的处理资源组中的时间的或基于时间的处理任务的切换或复用或时间共享。这种处理情况的例子是在多个进程是在具有单个处理器以及处理器逻辑与存储器子***之间的一个或多个缓存或其他非常快的中间存储器的计算机内的以时间复用方式的进程时。在一些当前的计算机中,快速中间存储器可以是一个或多个所谓的第一级(L1)和/或第二级(L2)高速缓存存储器,并且存储器子***可以是随机存取存储器(RAM);然而,本发明并不局限于这些配置,其甚至也不需要比如高速缓存存储器的中间存储器。这种计算机典型地还可以包括一个(或多于一个)海量存储设备例如硬盘驱动器,以用于存储操作***、应用程序和操作***、应用程序和用户数据。未来可以预计的是,其他海量存储非易失性存储器***将会扩充或替代这些硬盘驱动器中的一些。
一个进程与另一个进程的隔离通常可以例如要求防止在一个进程或进程流中发生影响另一个进程或处理流的问题,或防止操作***、应用程序、***或程序数据、或用户数据遭受另一个进程的破坏。这些问题常规地是由计算机病毒、计算机黑客代码、计算机间谍软件或及机器人(所谓的“间谍机器”)、或其他恶意代码引起的。他们还会由计算机操作***或应用程序中的臭虫或编码错误产生,或由一些不一致的计算机设置、设备错误或设备驱动问题产生。存储器或存储器子***中的存储器溢出,例如在高速缓存或其他中间存储器中(例如级别1和/或级别2高速缓存存储器)或在一个程序进程与另一个程序进程之间的存储器子***中(例如与处理器相关的RAM存储器等),可以经常产生程序错误或污染。
用户数据和/或程序或操作***组件的隔离可以以各种方式实现,例如但不局限于逻辑隔离、基于存储器地址管理的隔离、物理隔离(例如通过可切换地断开所有或部分实现设备或子***操作的通信或电源通路从而禁用它,或者渲染对一个或多个进程不可见的特定的设备、***或子***的操作)。这些用于隔离的方法和装置可以在短期内或长期内是临时的。一些进程从来不会看见或访问设备或子***。
当处理任何共享处理资源中的多个进程或进程流时,存储器管理特别重要,例如在仅具有一个物理处理器和共享的物理存储器的单个计算机中。处理器执行和海量存储器管理也是防止计算或处理***中的恶意行为的有价值的工具。例如,如果其他程序项、数据项、文件、用户数据等的存在可以对其他进程隐藏,则在一些实施例中,对监视或获取有关退出计算机或计算或处理环境的其他进程或数据的信息的进程的消除存在较小的可能性。
另一方面,在一些情况下,其还可以期望的是,信任的用户(例如具有足够权限和处于适当位置的安全装置的管理员)执行信任的程序使得可以确定处理***的操作健康、监视***中的行为、和/或进行校正行为或保持管理***操作。因此,本发明的实施例逐进程地提供了选择的隔离或非隔离。
虽然存在一些尝试来提供基于软件的隔离度以解决某些问题,但是当需要和允许时它们不能确保隔离,因此允许有见识的(knowledge)和复杂的黑客和病毒爆发的入口点、阿基里斯治愈(Achilles-Heal)、或其他机会。例如各种版本的Microsoft Windows(Windows98,98SE,NT,2000,XP等)的操作***特别把具有用于该操作***的应用程序作为目标。其他操作***例如Apple计算机产品,各种个人数据助理,手机、及其他信息装置具有目标并易受攻击。
这里所描述的本发明的时间复用可以与单个物理计算机、多个处理器计算机、具有所谓的双核或多核处理器的单个处理器或虚拟计算机(例如但不局限于这里所描述的虚拟计算机和虚拟计算空间)一起使用,其中在任何这些配置中除了时间之外可能存在附加的复用或处理维度,和/或其中可能或不可能存在与进程相关的实际的时间或时序。本发明的***、设备、结构和方法还可以独立于他们的底层技术而应用于计算机中,包括例如光计算机、数字计算机、模拟计算机、基于生物或神经的计算机或***,和/或任何混合的计算机,包括但不局限于上述所列出的计算环境的组合。本发明还可以应用于各种非计算机中,其包括计算组件,例如电视机、娱乐***和设备、视频处理器、汽车和航模和/或控制***,和/或具有处理器或处理逻辑的任何其他设备或***。
为了不妨碍其中分离的进程保持独立的这种方式,以下的描述被限制在具有单个处理器的计算机,其中三个输入处理流,分别称作具有成员A1….AI,B1…BJ,和C1…CK的A,B,和C,并且其中I,J,K是正整数。如相对本实施例所描述的本发明可以容易地独立于类型或应用程序而扩展到其他物理和虚拟计算和处理***中。
除了在例如一个虚拟处理或处理环境的物理或逻辑或虚拟计算机中允许临时共享处理资源或设备或电路,本发明的***和方法保持隔离,以便在所述计算环境中呈现的不同进程可以防止受污染。这可以,至少部分地,通过分离控制每个进程对存储器的可视性和/或访问使得可以仅看到并且可以仅访问其有权看到或访问的存储器和处理环境的其他组件的那些部分来实现。此外,当允许时可见性和/或访问可以仅是只读存取或允许部分或完全的读取操作和/或部分或完全的写入操作。最后,甚至在设备或电路变为可见时,可视性也被限制,使得仅有一部分设备、设备特征、或其他设备性能可以被观察到。在一个示例中,不同的存储设备的专用部分可以变为可视的,并且可进行到两个不同的进程的读取/写入访问,尽管管理进程可以仅读取整个存储器。
现有技术中公知的是计算机黑客或病毒可以破坏计算机的操作以使存储器或缓存溢出。在这些机器中的存储器控制主要是在软件控制下,其中该软件存在于BIOS、操作***、应用程序或这些软件中的某些组合中。因为这些典型地可以由黑客或病毒或其他恶意代码访问,所以他们可以被访问和修改而无需用户确认或许可。
本发明可以在原始的环境中(和信任的环境中)保持处理环境配置和控制,包括存储器配置和控制,从而不期望的错误和恶意黑客或病毒代码都不可以访问该配置或控制和修改该配置或控制以损害计算***或数据或该计算***内的其他信息。因此,其他进程或属于这些进程的数据的污染也可以保护。应当注意的是,通常即使恶意代码存在于计算***内中,必须访问执行代理(例如处理器(例如中央处理单元或CPU)或任何其他逻辑处理设备或电路中的所有或部分电路)和其他程序和/或数据来污染。在仅存在执行代理的情况下,恶意代码可以执行但是其不能污染另一个数据或程序元素。如果恶意代码仅仅与另一个程序或数据一起存储而不隔离(例如存储在公共的硬盘驱动器)但是同时不访问程序执行代理,那么恶意代码不能污染该其他程序或数据项。应当注意的是,数据还可以是或携带例如可执行代码的程序信息,并且这是根据文件类型扩展仅表现为不可执行代码的文件必须被怀疑的原因。回想到,隔离可以是物理的、逻辑的、虚拟的或任何其他方式,或方式的组合。
本发明的实施例提供了这些特征中的两种。在一个特定的实施例中,存储器配置和控制保持在信任的只读存储器(ROM)中,该信任的只读存储器不能被写入或以其他方式被执行程序修改。可以提供特殊的信任过程,以便可以以安全和信任的方式进行所需的改变。在另一个实施例中,使用硬件ASIC保持存储器配置和控制。在另一个实施例中,使用具有可被修改但不是由源自非信任源的进程(例如在计算机处理器中执行的进程)修改的固件的硬件ASIC保持存储器配置和控制。存储器配置和控制可以利用分配给特殊进程的单个物理存储器的固定大小来设置,或者其可以动态地确定,例如通过使用统计监控或通过用户简档,该用户简档建议并发的处理环境和存储器的数量或其他期望执行的进程的资源需求。
通过使用例如原始的、信任的和稳定的嵌入式主模板,本发明的实施例在竞争(成功或不成功)处理或计算任务后消除或简化了计算环境修复进程。在这种情况下,不需要清洗或清除,然后恢复处理环境。例如,本发明的实施例可以包括只读存储器,其存储在该处理环境中需要的Microsoft Windows XP操作***(或任何其他操作***软件)和任何其他应用程序。不同的处理环境可以提供不同的嵌入或存储的操作***和/或应用程序。此外,某些方法可以嵌入一些组件并根据需要装载其他组件以允许灵活性以及增加速度和吞吐量。例如,一个实施例可以嵌入操作***并将应用程序装载到可写入访问存储器。在这种实施例中,嵌入的操作***不需要清洗和恢复,但是存储可能被污染的应用程序的存储器将被清洗,然后在完成其处理任务之后恢复到已知的原始状态。
参照图22,以下对单个处理器和存储器提出一个用于三个进程A,B和C的时间复用操作的结构和操作场景。为了便于说明,出于描述的目的,假定这三个进程(“A”,“B”和“C”)等待处理器可用,并且它们同时启动。计算机***、处理器、存储器等本领域普通技术的工作人员已知的传统元件没有示出以避免成为本发明的障碍。
计算***3002包括处理器3004,具有第一级(L1)高速缓存器3006,一个或多个输入总线端口3008,用于接收一个或多个来自输入源3010的输入流,一个或多个输出总线端口3012,用于将一个或多个输出流传送给接收机3014,以及端口或管脚,用于传送状况3016和控制3018。处理器还包括总线或用于与片上、机载或其他存储器(例如第二级(L2)高速缓存器3020,和随机存取存储器(RAM)3022)通信的其他装置。该处理器可以是传统的处理器或微处理器或一个具有专用设计的处理器。本发明的结构还提供定时、地址控制和切换(TACS)逻辑3030,其包括输入总线端口3032,用于接收输入或输入组3036,以及输出总线端口3034,用于传送输出或输出组3038。在该实施例中,TACS逻辑3030被连接来接收供处理器3004使用的输入3036作为输入3040,并用于接收处理器输出3042以及对其进一步进行处理以产生输出3038。
TACS逻辑包括输入流3036串行化逻辑或其他输入进程流串行化装置3044,其接收输入进程流3036(在该例子中,三个输入进程A,B,C)并可选地对它们进行解析或以其他方式在将要处理的进程流中识别组件。术语“串行器(seriallizer)”意在具有最广义的可能的含义,并不限制以逐比特、逐字或以任何其他特定方式处理输入流,但不是接受具有输入流特性或输入流特性组合的多个输入流中的任何一个或任何组合,并根据定义的政策或逻辑组来对所述流进行处理以产生其输出。(解串行器可以类似地接收和解串行任何一个输入或组合以产生其输出)。可选地,还可以识别在特定的处理周期内将由每个进程使用的处理器组件,但是当处理器的其他元件将被独立地分配给一个进程或另一个进程时,这是极为有利的。如同可以存在于典型的计算机和方法内,这些组件例如可以是单个指令,具有其数据的单个指令,若干指令,或任何其他命令组、指令组、数据组。在该示例中,串行器3044获取一个组件A(例如A1),后跟组件B(例如B1),后跟组件C(例如C1),然后重复A(例如A2),B(例如B2)和C(例如C2),直到每个完成然后处理其他进程流。其他示例可以根据预定或动态确定的政策从在输入3032的等待处理流中选择。对输入流的数量没有限制,并且在一个实施例中,它们排队直到TACS逻辑3030和处理器3004已准备好接收它们以用于处理。通常A,B或C中的一个将在长度上不同,并将最先完成,但是没有理由在解析和串行化下一个进程流D之前等待其他进程完成。事实上,所述进程是彼此完全独立地执行的。可以实现其他方案,例如如果处理器流B具有较高优先级,那么多个B组件可以散布在单个组件A和C之间,例如串行化流“…A1B1B2B3C1…”。
下面描述一个进程的实施例,在该进程中,处理器存储器(例如处理器芯片3004上的L1 3006或L2 3020高速缓冲存储器或其他缓冲存储器或例如RAM 3022的外部存储器)被控制以保持进程绝对分离。提供存储器内部隔离的替代方式是为高速缓冲器、其他快速中间存储器或例如RAM缓冲器的其他存储器子***提供独立的物理存储器芯片,但是由于成本、互连和其他考虑因素,这并不是优选地。在实现多个处理器或多个处理器内核的情况下,具有独立的物理存储器设备或芯片可以更可行。此外,某些实施例可以提供多个处理器内核和与每个内核相关的快速存储器,从而可以不需要独立的存储器子***(例如外部RAM)。
然而回想到,不是所有的实施例都需要或从进程的绝对分离或隔离中受益,并且在一些实施例中,可以提供信任监控进程,其允许授权的和信任的管理员监控计算机操作。在它们之间存在定义的信任等级的情况下,也可以允许其他进程操作而不需要绝对隔离。此外,即使没有信任,只要多个输入和输出被成组在一起且以所描述的隔离等级处理,则可以一起处理多个进程。例如,可以创建处理环境,以使用两个不同的应用程序执行字处理操作和照片编辑进程。即使该处理环境的输入和输出是文本文件和图形文件,本发明也是可操作的,这是因为本发明并不关注来自处理或计算环境的输入或输出的特性和内容。
在该实施例中,串行化流3050由信任的TACS逻辑3030产生,并且TACS逻辑还根据正处理的进程组件修改明显的进程环境配置(以简单的术语,计算机的物理或逻辑配置)。在一个实施例中,在数据流A,B,C的组件以所描述的方式串行化的情况下,时序控制电路用于在接收到每个组件时对每个组件读取和应用不同的配置。TACS逻辑及时地在每个时刻有效地读取不同的配置记录(例如来自信任ROM的BIOS配置),从而对于专用于进程A的每个时间段,其仅看到识别为进程A的存储器或其他计算机环境元件,包括仅看到分配给A的存储器并且不能无意地访问在分配给进程“A”的存储器(地址)范围之外的其他存储器。
在一个实施例中,通过使处理器3004向L1和L2高速缓冲器、RAM的特定的地址范围写入和从中读取来实现存储器管理和控制。这例如可以使用地址重映射方案来实现,在该地址重映射方案中,每个存储器仅有一个区域对处理器而言是可见的,并且那些区域被映射到每个存储器中不同的地址范围或以其他方式利用每个存储器中不同的地址范围识别(例如L1,L2,RAM和海量存储器磁盘驱动器)。换句话说,处理器看到第一L1缓存器地址范围ADDR1 3061,但是,当处理进程“A”实际读取或写入时,看到与进程“A”相关的地址范围ADDR23062,当处理进程“B”实际读取或写入时,看到与进程“B”相关的地址范围ADDR3 3063,并且当处理进程“C”实际读取或写入时,看到与进程“C”相关的地址范围ADDR4 3064。类似的映射或识别发生在其他存储设备中,例如硬盘驱动存储器设备、第二级高速缓冲器以及RAM。按照类似方式,其他设备可以映射到特定的进程或利用特定的进程专门识别以保持分离。此外,在本发明的实施例中,映射或专门识别或分配不仅仅是操作***或软件重分配,而是涉及信任的控制,该信任控制重新定义计算***的配置或组件以便一个进程不会看到或获知其他进程。
在所示的实施例中,TACS 3030通过到L1高速缓存器3065的控制信号(或可选状态)、到L2高速缓存器3066的控制信号、到RAM 3066的控制信号以及可选的到海量存储设备或其他设备3068的控制信号来负责控制存储器地址控制。
这与进程A,B,C中的一个进程是否包括并执行病毒或其他恶意代码没有关系。在被其他进程使用之前,任何可能受污染的公共进程环境元件被清除,复位、或修复,并且需要保留的任何进程环境的元件不被共享。因此,在进程B执行病毒的情况下,这种执行的效果将仅仅在分配给进程B的存储器中是明显的。一旦进程B由于完成或错误而终止,分配给进程B的存储器将被复位,任何污染将不会传播到其他进程。然而,通常,处理器的内部组件(除了例如存储在缓冲存储器中的内容)将不保留作为下一个进程的其他进程的剩余元件(例如指令或具有其相关数据的指令),或这种剩余的元件本身不可以自身操作来产生危害或引入任何污染。在代码通过处理器元件(例如寄存器等)时,由于没有保留在其中,所以这种代码是不相关的,并且下一进入的代码将有效地清除剩余的元件,但是在存在存储器的情况下,元件应当被清洗或以其他方式复位或回到原始的已知的信任的状态。对于可以与本发明的特征结合使用的传统的处理器结构和设备,该特征可能包含有害的剩余特征,这种元件可以被清除或复位。这可以采用时序地址控制和切换逻辑来进行考虑。例如,清除指令或代码可以在可能的危害指令或进程之后引入,或者在这种危害不能***的情况下,这种清除或复位进程可以在由另一个进程拥有的每个进程之间引入。对于未来将要开发的处理器结构,清除或复位特征可以内置在处理器结构中以改进处理器的吞吐量而无需在输入流中***清除或复位进程。
一旦处理器3004产生其输出,它们由处理器方输入端口3070接收,并由TACS逻辑处理以解串行化组合的输出流3052并提供合适的输出序列。虽然输出流3038被示意为具有与输入流3036的顺序匹配的顺序,当标签或其他进程标识符被使用来识别哪个进程与特定的输出相关时,不需要该匹配顺序。
已经描述了使用特定的时序、地址控制和切换逻辑(TACS逻辑)3030的特定实施例,本领域的普通技术人员将会理解的是,可以使用替代的结构和方法来实现本发明的替代实施例。在附图23中示出一种这样的替代方式,其示出了使用地址范围控制来保持计算机中的多个处理之间的可控隔离度的***的替代实施例。处理器逻辑3080,其可以是用于处理计算机程序指令或其他指令的任何逻辑,例如处理器、控制器或中央处理单元,包括某些内部地址控制逻辑3081。各种形式的处理器地址控制逻辑在本领域是公知的,在此不再详细描述。提供独立的地址控制和隔离逻辑3082或者本发明的地址隔离和控制逻辑的特征***到处理器的地址控制逻辑中或以其他方式在处理器3080内提供。地址隔离和控制逻辑(AICL)3082利用处理器内的地址控制逻辑3081以及可寻址存储器/缓冲器/存储器3085(根据需要)传递控制和状况信号。可寻址存储器/缓冲器/存储器3085可以是,为了示例但不是限制:RAM,ROM,高速缓存存储器,硬盘驱动器,或任何其他储存器设备或存储器映射输入/输出设备。输入由AICL 3082接收并处理以产生特定的控制信号3083,该特定的控制信号3083可以被传送至地址控制逻辑3081可寻址存储器3085。或者,AICL 3082可以产生特定的控制信号3083,该特定的控制信号3083可以传送至地址控制逻辑3081,然后地址控制逻辑可以将附加的控制信号3089(可选地接收状态信号)传送到可寻址存储器3085。AICL 3082的结构通常取决于待处理地输入3086的特性,并且这可以是基于所述输入来统计地定义或动态地确定的。输出3087可以是相同的输出,其已在传统的处理器中为相应的输入产生,除了例如执行病毒或其他恶意代码的异常的处理情况可选地被抑制,并且不会发生可能发生的错误或例外情况(或***故障)。
回想到在图22的实施例中,一些强调放在对时间复用的应用上,并且由其他控制逻辑的控制电路使独立的进程或处理流保持独立并隔离。回想到多个进程可以在物理处理空间变量的任何一个或组合的基础上或在这里所描述的多维虚拟处理空间的基础上进行区分或分离。完全隔离或隔离的控制度的原因以及优点已经在此描述并且不再重复,因为具有多维空间,可以通过一组独立的变量或参数定义。
在一个实施例中,在一个时间段或周期内执行的控制环境接收由在较早的时间段或周期内的非控制进程提交或剩下的操作请求。该请求以这样一种方式提出或提交,其虽然与其他进程共享但不能污染该进程。例如,不会携带可执行代码的单个比特或少量的比特被存储在一个或几个寄存器以及处理器或其他逻辑中。控制环境查看或询问这些寄存器并在识别该请求是由另一个进程作出之后,可以利用标志或其他指示器(例如寄存器中的比特或少量比特)授权访问或许可或拒绝对该操作或能力的访问或许可,从而当请求进程接着使用计算环境时,操作或能力可用。该操作或能力通常可以是任何计算环境有能力提供的操作或能力,其附带条件是,控制环境将不允许可能将其他进程或数据暴露给污染的操作或条件。该允许的操作或性能例如可以通过一组规则、政策、表、逻辑或以任何其他方式来定义。在一些实施例中,授权许可或访问可以改变明显的计算环境配置以使可见或可访问例如硬盘驱动器或其他海量储存设备的储存设备,例如随机存取存储器的所有或部分与处理器相关的存储器子***,例如高速缓冲存储器的一个或多个与处理器相关的快速中间存储器中的所有或部分,使任何输入或输出端口可用或隐藏,使任何网络接口卡可用或隐藏,和/或更普通的隐藏、限制、打开、关闭或以其他方式使一组设备、电路、逻辑、操作、硬件或软件中任何一个元件可用或不可用于所述请求进程。授权许可或访问一个元件或能力必须要求控制进程限制或拒绝对其他进程的许可或访问,从而保持适当的隔离度。授权或拒绝许可或访问例如可以由诸如关闭开关或一组开关的物理变化、逻辑变换产生,该物理变化创建物理通路或给设备或电路通电,逻辑变化改变计算机环境内部的物理硬件逻辑或软件或固件,或以任何其他方式修改或创建不同的病毒、逻辑或物理处理或计算环境。可以根据规则、政策、表、逻辑或以任何其他方式建立这些组合,然而所建立的防止由非控制进程进行修改,实际上在一些实施例中,所建立的可以要求专用管理特权。如在本说明书中所描述的,可以使用在本说明书中描述的动态切换和配置结构和方法的方面或使用其他结构和方法来建立这些对计算环境的修改中的一些。
在所述设备中,有必要共享的是存储器子***(典型地为RAM)和处理器与存储器子***之间的任何中间快速存储器(典型地为一个或多个处理器芯片或芯片组上的高速缓冲存储器)。使用如上所述的地址逻辑控制和过程以及用于配置和控制地址分配、主文件、数据和指令总线可用性、描述表等其他公知技术,这些存储器中不同的部分可为不同的进程可见。在本发明的一个实施例中,例如可以存储在存储器或寄存器的数据结构中的描述符表,通常不为其他进程看见,并且只有在控制进程时才可见。在另一个实施例中,所选择的描述符表部分保持隐藏,而其他部分可以有选择地为一个或多个进程可见,并且在其他实施例中,保持独立的描述符表,并执行控制来使得它们中的一个或多个可有选择地用于进程,即使在它们是可见时,可见性可以仅是瞬时的,或者针对特定的指令或一部分进程。常规地,这种描述符表是可见的并且可以为所有进程访问,并且这种可见性和可访问性为恶意代码提供了机会来改变这种描述符表的内容从而实现改变和毁坏所述计算环境的能力。除了控制进程之外,隔离、隐藏或拒绝对这种与存储器地址或计算环境的其他组件相关的描述符表访问的方法是可以保护计算或处理环境的另一种方式。在至少一个实施例中,配置信息保持在只读存储器中。提供给非控制进程(在一些实施例中,给控制进程)的操作***工或应用程序都能操作这种存储的配置信息。
本发明的这些和/或其他实施例还可以或可替换地控制可视性和/或访问处理环境内的各种总线、输入/输出端口或设备、装载到环境中的应用程序软件、操作***或操作***组件,或这些或其他的任意组合。在至少一些实施例中,选择的硬件或软件组件的存在(因此拒绝访问)保证了不可以检测操作***。在一些实施例中,这有利地通过修改操作***(甚至包括嵌入信任的只读操作***版本)和/或控制硬件和/或固件级的所述配置来确保。在一些实施例中,物理或逻辑分离的BIOS提供了动态地配置或重新配置每个处理环境。在其他实施例中,建立基线BIOS配置,并可以动态地建立添加特定的能力的配置中的变化。
作为一个例子,在一个特定的实施例中,地址位置或范围被静态或动态地定义在操作***层以下的级或层上,从而操作***(例如任何Microsoft Windows,Linux,Apple Computer或其他操作***)不能修改或对定义施加任何影响,从而操作***仅看到允许其看到的定义。低级程序或进程例如可以是任何不能被其他访问的程序或进程,例如不能为操作***、应用程序访问,当然不能为包含潜在恶意代码的数据访问。在一些实施例中,低级定义可以使用保护BIOS,通过地址控制逻辑(当要隐藏的元件是存储器地址位置),通过TACS控制,甚至通过主处理器本身,和通过任何其他***到进程中或操作为独立的逻辑元件和与处理器通信的逻辑来实现。当涉及TACS控制时,其例如可以创建定义具体地址范围的全局描述,该范围将专门可用于时间隔离复用事件。可替换的控制器可以根据其他在任何N维虚拟处理空间中可用的非时间定义的隔离来定义地址隔离。
在一个实施例中,表有差别地定义每个进程的存储器地址范围可用性,并且这种定义可以是逻辑的或物理的。在一个实施例中,BIOS保持以表为形式的映射。例如,如果存在可用于计算或处理***的硬件的1Gb的总RAM存储器,较低级控制进程允许操作***仅看到预定的或动态确定的存储器数量,例如256Mb。低级程序或控制可以使不同的数量和不同的存储器地址范围用于不同的操作***示例,例如与第一进程相关的第一Microsoft Windows操作***和与第二进程相关的第二Microsofi Windows操作***。
常规的***和方法典型的使用单个“沙箱”或“汤碗”,其中所有进程可以相互作用,但是当程序代码被适当地设计而在恶意、黑客、或病毒代码引入时将不同的进程和数据暴露给破坏时不可以。本发明***和方法的一个有利方面是每个进程使用其自己的沙箱或干净的空的碗,因而不会发生污染,即使存在执行或企图在处理或计算环境中执行的恶意的、黑客或病毒代码。
将会理解的是,使用上述涉及控制进程和另一个进程之间传递的有限的消息的技术,该控制进程可以有效地控制其他进程,即使在执行其他进程时其不存在于该处理器中(除了在处理器中留下的条件、状态、标志、或其他指示符)。在其他进程已使用允许其访问的处理资源后,控制进程也可以清除、清洗、复位、或以其他方式重新建立原始的处理环境。
通过如上所述控制存储器地址范围来有选择地隐藏部分存储器的能力,可以应用到计算或处理环境内部或外部的任何存储器映射设备或子***。本发明的***和方法类似地可以有选择地隐藏其他设备、电路、软件,以及其他好处中的类似结果。例如,本发明的实施例已经描述了一种需求或期望,即在将用户数据暴露到使某些隐藏在数据(或程序)中的恶意代码执行和使得计算或处理环境污染的处理元件之前,将用户数据从第一储存器位置(例如硬盘驱动器非易失性存储器设备)移动到另一个隔离储存器位置(有时称作爆发室)。然而,将会理解的是,在本发明的实施例中,提供了部分存储器、储存器、或逻辑的受保证的控制隔离,可以不需要这种数据到隔离储存器的复制或移动,从而消除了耗时步骤。实质上,本发明的这种实施例配置处理环境,从而数据项本身被合适地隔离,并且可选地,一些附加的内存或其他储存器可以为临时工作储存器或为特定的进程可能需要或期望的其他目的而定义。因此,可以消除在处理之前向安全存储器的复制以及从安全存储器复制回的步骤。数据的副本可以是在执行之前作出,以便在进程存在问题的情况下,可以保证原始数据项被保持并且不再进一步被污染。保持这种复制例如可以允许检查所述项和/或在清除是可能的情况下清除具有污染或病毒的项。
本发明的其他实施例可以提供存储器或储存器,其可以被动态切换到或切换出计算环境或计算环境的特定示例。这将消除对复制的需求,和/或将提供替代的机构,从而多个干净的存储器中的一个可以切换进,而其他可能由于暴露给前面的进程而污染的存储器被临时切换出,同时他们被独立的进程清除或清洗。本发明的另一个实施例可以提供将存储器逻辑分开或分段成不同的部分,每个部分可能具有不同的主模板,从而不同的存储器地址范围可以存储完整的新的原始的主模板,准备用于处理或计算环境中的处理任务。
在另一个实施例中,计算环境可以通过在一个地址范围产生或创建模板或操作***并在多个不同物理设备的同一物理设备中的另一个地址范围创建用户数据。实际上,多个具有主模板或其他模板和数据的计算环境可以以这种方式产生。因为低级配置或其他控制确保了所定义的存储器地址范围之外没有交互作用,所以每个是完整地和逻辑地隔离的环境。以硬件、固件、软件或这些中的任意组合定义的管理控制可以提供管理程序(hyper-visor)来控制每个处理环境,接入或断开组件,管理多个处理环境,从而不会发生任何污染。在一个实施例中,即使该管理控制或管理程序都不能无效(override)或改变防止污染的低级配置。可以提供外部管理进程,从而任何软件或固件组件都可以根据需要来装载、更新或清除。
将会理解的是,根据这里的描述,可以使用各种方法来产生软件或代码的信任部分或将其复制到存储器、储存器、或处理器中。在本发明的一些实施例中,这些被称作模板和主模板。各种保护复制方案可以如这里所描述地使用。对于支持某些能量保存暂停、冬眠、恢复和唤醒特征的操作***和处理器,该特征存储从处理器和/或从易失性RAM存储器到非易失性存储器(例如硬盘驱动器)的***状态,可以使用这些特征来产生模板或者模板被预存的地方,或者将信任模板从储存器写入到存储器或处理器。按照这种方式,所述模板处于与支持这些特征的现有的操作***和硬件兼容的形式。
各种***配置和操作场景的实施例已经在本说明书中进行了描述。例如,已经描述了其中存在多个物理处理器的实施例,每个处理器具有分配的计算或处理环境。相对于图9所描述的实施例识别用户接口计算环境、控制和切换计算环境、保护储存器计算环境、和至少一个用户计算环境。在图10的实施例中,***包含桌面和用户接口计算环境处理单元、控制和切换计算环境处理单元、隔离处理单元计算环境、保护储存器计算环境处理单元、以及隔离处理单元计算环境。在实施例中,以复用方式使用单个处理器,从而可以使用较少的物理硬件和/或软件组件集来执行较大的进程集。虽然所述描述强调本发明***和方法对任何进程的灵活性和可应用性,以及具体阐述的该进程是示意性的,但是值得强调的是,甚至某些特殊命名或识别的进程的功能和操作可以成组,从而他们在相同进程内执行,同时保持需要的隔离。进程的组合或成组对于某些信任的管理操作具有特定用途,例如将桌面和用户接口处理环境、视频处理环境、控制和切换环境定义成超级控制环境;但是保持该超级或成组的控制环境与一个或多个用户数据处理环境分离。
该进程定义或成组的好处在本发明的复用实施例中提供了某些功效,并且特别地不是专门地针对时间复用实施例。由于减少了分离的进程的数量,在不同进程之间的切换的复杂度减少,并且可以存储和重装状态和/或装载模板和/或清除处理环境所消耗的时间也可以减少。在一个实施例中,所有非用户数据进程在单个控制处理环境中定义和实现,而与用户数据相关的处理环境与控制环境分离地执行和保持。
对于该实施例,以及所有其他复用处理情形,应当清楚的是,可以将执行的优先权分配给不同的进程,从而访问特定的处理资源(例如特定的端口,数字信号处理器(DSP),或任何其他资源)的优先权或分配给进程的时间量(处理器时钟周期或指令周期)可以调整。该调整可以静态或动态地设置。可以设置缺省值然后当要执行高优先级进程时修改。高优先级进程例如可以包括实时或伪实时处理应用程序,例如视频图象捕获、计算机游戏、以及其中可检测的延迟可能引起用户反对的其他进程。正常或甚至更低的优先级处理应用程序可以包括字处理应用程序,其中需要非常少的处理能量来跟随用户键入的文本。很清楚,不同的***可以根据用户的目标和其中运用计算***的环境,利用不同的处理优先级进行设置。
上面刚刚描述的方法强调了其中多个进程可以被成组、组合或集成为一个较大的或更复杂的进程的方式。也可以采取其他方式,其可以被认为是单个进程或使用多个执行的***资源。例如,在提供多个物理处理器、多个可与那些处理器耦合的存储器、和/或其他的多个可用资源的副本的***配置中,单个进程的处理需求可以在其间分布,从而该进程可以更快地或以所需的吞吐量执行。典型地,使用多个处理器的进程将是相对复杂的处理任务,其具有容易定义的子任务,该子任务可以在不同的处理器中分布,并且他们的结果以某些方式组合以产生最终的结果,或者使用多个处理器的进程将是具有许多数据或许多并行性的较简单的处理任务,从而使用多个处理器将允许快速完成整个任务。虽然基本的常规处理不同于这里描述的处理,但是SETI处理任务是在多个处理器之间被划分的单个较大处理任务中的一个著名的例子。
任何处理任务都可以以该方式被划分、重新定义、和/或分布。根据相对于图16的实施例以及本说明书中的其他地方和/或前述虚拟处理空间和时间或其他非时间复用实施例描述的灵活切换和***配置特征,本发明清楚地提供了其中多个***资源被动态或静态配置和重新配置的***和方法,其扩展到单个处理器配置之外。例如,在时间复用实施例中,不同的进程可以被配置成仅具有一部分处理器(处理器以某些方式共享),专门使用该处理器,专门使用多个处理器,或部分访问多个处理器。在实现共享处理器访问的情况下,这种共享仅被允许与已对本发明描述的安全和保护特征一致。处理器、CPU、或进程的其他处理或计算逻辑的这种可切换分配也可以应用到任何其它***资源中。
当应用到其中某些程度的并行、分布、或协作处理是有利的网格计算、聚类、并行处理、海量并行处理、对称处理、和/或其他处理场合时,本发明的这个方面特别有益和有用。
至少部分是由于多个***资源可以在复用或并行计算配置中逻辑或物理地组合或使用,物理计算***可以被构建具有多个或多种处理资源,例如多个处理器或CPU,多个存储器,或甚至多个片上***(SOC),其可以根据当前的处理组来自动(或手动)和动态地配置,以根据定义的规则、政策或逻辑采用某些优化方式来执行一个或一组处理任务。优化参数例如可以包括最大化吞吐量、最快执行、最小能量消耗、最大误差减少、最小热量产生、或任何其他数据或操作偏好或需求。包含该特征的本发明的实施例可以可选地使用相对低性能的处理器或CPU或其他***组件以使硬件成本最小化,而不会由于动态组合这些资源而损害性能。
将会理解的是,根据这里所提供的描述,本发明的实施例可以提供以静态方式或动态方式(例如通过使用一种已描述的复用方案)可切换地配置物理或虚拟计算***或环境以包括(或移除)任何可用的资源。例如,除了处理器,存储器元件、硬盘驱动器或其他储存子***,***的实施例可以切换或复用调制解调器,网络接口卡(NICs)或其他网络接口,嗅探器或只读NIC,视频显示器或处理卡或逻辑电路,图形卡或处理逻辑电路,通用串行总线(USB)端口和接口,火线或IEEE 1394接口和端口,串行端口,并行端口,PC卡端口和接口,PCI接口,存储器接口,麦克风和扬声器输入和输出端口,数字信号处理器和逻辑,打印机端口,CD和DVD接口,音频和视频处理逻辑,无线接口,和任何其他单独的硬件,执行软件或固件的硬件,以及在某种程度上与允许或禁止的外部设备接口的端口,外部设备和***。
在一个实施例中,一个执行的进程是网络接口例如网络接口卡(NIC)型进程。NIC具有缓冲器或其他储存器装置,用于存储从外部资源或进程接收的数据。一旦接收到且存储,所述复用处理场景读取缓冲器并且可以以与其他保护处理方案类似的方式处理所接收的数据。换句话说,虽然外部资源将表现出比内部数据集更高的对污染(例如来自电子邮件,兜售信息,病毒、间谍机,或装满间谍软件的网站等)的关注,但是由本发明***和方法提供的保护措施对于其他用户数据集提供相同的高保护级别。提供了这些相同的好处,而不依赖于外部连接是否通过调制解调器、软盘驱动器、USB存储器设备、输入/输出端口、无线连接、或任何其他接口。提供装置来隔离输入数据,从而其不能污染其他用户数据或所存储的应用程序和操作***的信任版本。
本发明的切换和控制特征的用途可应用到任何缓冲器、高速缓存器、数据储存器和/或存储器***和子***,其可以存在于处理或计算***内部;例如包括但不局限于任何嵌入的操作***,应用程序软件代码,或嵌入数据。正好如同相对硬盘驱动器储存设备进行的描述,开关或切换逻辑可以用于静态地、动态地或以任何时间或复用方式,从计算机***物理地或逻辑地添加和/或删除任何识别的缓冲器、高速缓存器、数据储存器和/或存储器***或子***。此外,本发明的切换和控制特征可应用于通常不与数据储存功能相关的***资源,例如视频或图形控制器或处理器,打印机,声卡,或任何其他***或计算机资源。存储器地址范围映射、上电/断电,基于BIOS配置和去配置,以及其他用于隐藏此种资源或使此种资源可见的装置已经在整个说明书中进行了描述并且在此不再重复。
特别地参照包括具有嵌入操作***、应用程序和/或存储在其中的其他可执行或非可执行的代码或数据的储存器或存储器的***,这些嵌入的元件可以切换到(例如添加)或切换出(移除)处理环境以提供所希望的或所需的操作***、应用程序或执行处理任务所需的其他代码或数据。例如,嵌入的Microsoft Windows XP(或任何其他操作***)、Microsoft Outlook,Adobe Photoshop的存储版本和/或例如嵌入的屏幕图像图形的数据可以嵌入在不同的物理或逻辑分离的存储器或储存装置。这些例如可以是不同的存储器芯片,通过前述地址映射和控制或通过其他装置隔离的逻辑分离的公共物理设备的部分。然后当需要被识别时将这些添加到处理环境,而当需要不再存在时从处理环境中移除,从而释放所述资源以用于其他进程。***内的控制环境或其他控制元件,期望或检测对特定的嵌入(以及非嵌入)代码或数据的需求,并使用前述本发明的切换和配置特征,将该嵌入元件配置到处理环境中。检测可以是请求或一些其他检测装置例如程序调用。控制环境或其他控制元件也负责预料或检测何时嵌入元件的需要到期,并从处理环境的配置中移除该元件,并使之可用于其他处理需求请求。
控制环境和/或硬件切换环境(可选地包括某些软件和/或固件)使得任何可寻址存储器、嵌入式储存器等可被作为只读、只写或读写存储器存取,从而存取的状态可以控制或限制。根据手边的处理任务,该存取类型控制(只读、只写、读写)通常是有用的。其还提供了用于保持特定的存储器或储存器以只读方式保留模板的过程以供正常访问,从而模板不能通过写操作而被污染或危害,但是允许具有足够访问特权的用户或进程更新该模板(例如更新到较新的版本)。
在保持存储器物理的或逻辑的隔离的上下文内,硬盘驱动器或其他具有多个底盘或表面的旋转储存介质可以通过操作分别用于每个底盘表面的读/写头来隔离。常规的,具有两个底盘和四个表面的硬盘驱动器将由单个磁盘驱动控制器和由共同移动多个读/写磁头的致动器来操作。本发明的实施例提供了分离的控制器,器至少以分离的方式控制对读/写磁头的访问,从而一个控制器仅获知其单个(或一组)表面和读/写磁头;但是,不能获知同一磁盘驱动器内的其他表面或磁头。在另一个实施例中,还可以提供分离的致动器,从而针对每个表面或一组表面,致动器臂和读/写磁头独立操作。本发明的动态配置特征还可以应用到这种硬盘驱动器以使更多或更少的表面可用,并使他们实现只读、只写、或读写。
在本发明的一个实施例中,本发明的特征在硬盘驱动器内或附加到硬盘驱动器上的或硬盘驱动器控制器内的逻辑板上提供。然后逻辑或物理隔离的硬盘驱动器底盘表面可用于隔离的储存器。在一个实施例中,这些元件和特征被组合,从而具有控制特征的硬盘驱动器提供具有本发明的保护和安全特征的网络器件,而无需分离的计算机或外部处理器。因此,本发明还提供了具有本发明的保护和安全特征的网络或网络装置。
可用于本发明实施例的其他可选特征
已经描述了用于产生和操作计算机、信息装置和其他设备的计算机和信息装置体系结构、***配置和方法及过程的几种不同的实施例,我们下面暂时离题来描述可以提供给某些实施例的一些特征(包括某些可选的特征)。这些描述还提供了对下述的指示,即可以在各种计算环境中处理的应用程序的类型,以及对病毒、黑客代码、特洛伊木马和其他恶意代码的何种特定敏感度可以存在安全或免疫问题,以及如何使用本发明的架构、***、方法和过程解决这种问题。在本描述的上下文内,术语计算环境CE的使用意在包含如在本说明书中描述的各种计算环境、隔离计算环境或计算或隔离子***的任何变形,以及在此引入作为参考的相关申请中描述的这种计算环境和子***的子***。
可以使用独立的逻辑控制设备,例如使用直接存储器存取的ASIC或逻辑控制设备,在专用子***或计算环境之间移动数据。有利地,该移动数据的进程不允许执行数据,其可能允许或放任黑客、病毒、其他恶意代码等。此外,数据可以被加密、压缩、或编码以防止其执行。
如果并且当需要时,可以实现计算环境的修复或恢复。可以使用自动修复过程将计算环境(CE)修复或返回到理想状态。这种修复可以“不工作”地进行,或在每次交易之后或不重启。主模板典型地代表专用子***的理想状态,或者可以存储在储存***上。交易可以包括读取电子邮件,其中每个单独的电子信息的打开表示独立的交易。可选地,在修复过程中可以忽略一个或多个项。例如,如果已打开电子邮件,修复过程可以运行而忽略所打开的电子邮件,检测和修复问题,然后用户可以对该电子邮件作出响应而无需退出。在另一个实施例中,所有下载和电子邮件都可以当在网络子***中打开下载或电子邮件之前立即保存到储存器***。
在一个实施例中,CE的逻辑可以触发一个与修复过程有关的事件。该修复过程可以在工作***的主模板与当前的工作***的状态之间执行比较。它们之间的任何差别都可以触发后续的修复过程,其中从工作***中删除某些或所有不同的数据。此外,根据需要可以通过修复过程从主模板复制数据。在一个实施例中,修复过程可以使工作***等同于主模板。
在一个实施例中,修复过程可以在一个或多个电子商务交易之后进行,或在冲浪一个或多个网页等之后进行。因此可以在下一次交易之前使所有已知的和未知的病毒和特洛伊木马无效。虽然该进程不能从计算机中消除病毒、蠕虫和特洛伊木马(它们可能存储在储存***中),其将它们保持在操作状态。修复进程可以修复易失性存储器和非易失性存储器,或清除易失性存储器或将易失性存储器设置为理想状态。
在一个实施例中,如果用户选择一个以上的电子邮件来打开,则两个或多个电子邮件可以被复制到工作***中并且可以同时打开。可选地,每个电子邮件可以被复制到其自己的独立的隔离的工作***中,独立打开、浏览和工作。如果用户需要将数据从一个隔离的电子邮件复制到另一个隔离的电子邮件,可以使用不允许执行代码的复制过程。,
在一个实施例中,网络商业软件,或电子邮件软件,或任何软件都可以被修改,以便独立的记录或仅仅是交易特别需要的记录的副本被复制到储存***,被使用,然后被复制回储存器***中的数据库,并且在每个这种交易之后进行修复。可选地,在例如其中数据与多于一个的数据库或CGI交互的交易中,该交易可以被分解成多个不连续的段,根据需要向和从隔离存储器***或工作***复制数据,可以在交易的每段之间,或在交易的某些段之间运行修复。可选地,软件可以包含定义什么数据类型可能包含交易的指令,用于限制复制过程来仅复制满足特定标准的数据。
在一个实施例中,为了进一步加速修复进程,工作***的主模板和工作***的软件中的每个都可以装载到它们自己单独的隔离的易失性存储区或命令解释程序以增加修复进程的速度。因此,如果工作***中的数据处在易失性存储器中,并且主模板处在易失性存储器中,则可以以更高的速度进行修复。或者,可以使用新的工作***命令解释程序,以消除对修复的需求。例如用户可以使用一个命令解释程序打开电子邮件,读取电子邮件,并且如果他们想要响应该电子邮件,则可以使用第二命令解释程序以用于该响应。可选地,在用户正使用第二命令解释程序书写对电子邮件的响应时,可以对第一命令解释程序或计算环境检查病毒,并且使其他命令解释程序或计算环境准备使用。
在另一个实施例中,使用加密或压缩或其他防止执行数据的复制的方法,可以将数据直接下载到储存器***中。可选地,可以使用采用本发明的隔离的隐藏备份或存档***,其可以根据需要产生储存***、工作***的易失性或非易失性存储器中的或数据的隐藏备份阵列或存档,并且其可以盖时间戳。将数据复制到这种备份或存档***还可以使用这里所描述的技术来防止执行文件和损坏备份***上的数据。
对于文件保存操作,在一个实施例中,每次在工作***中保存时,可以对储存***复制。可选地,为了防止病毒或特洛伊木马通过执行上百万已保存到存储器***的保存引起严重破坏,可选地,可以对文件可以被保存的频率施加限制,或可以设置对将数据保存到工作***的进程的其他限制。可选地,这可以作为ROM或复制、存储、保存或其他程序的一部分。
具有有限功能的独立的处理器可用于处理隔离工作***中的数据,或者可以给主处理器提供有限的功能。这可以利用多个数据储存设备或者具有隔离分区的一个数据储存设备来进行。
在本发明的***和方法的一个实施例中,数据可以以消除传送恶意代码的可能性的方式,直接从/到一个或多个计算环境传送至/从一个或多个第二计算环境。在一个实施例中,该方法过程例如可以包括ASIC或其他逻辑电路或逻辑装置在第一计算环境中的使用,该ASIC或其他逻辑电路或逻辑装置具有发送和/或接收ASCII或扩展ASCII的能力,连接至通向第二计算环境的数据线。在一些实施例中,ASIC或逻辑装置的能力被特别限制,从而不可能发生其他处理。可选地,第二计算环境可以直接接收ASCII数据,或取而代之,可以通过具有接收和/或发送ASCII或扩展ASCII数据的能力的第二ASIC接收数据。这些ASIC可以限制数据量、ASCII字符、和/或可以作出的请求(例如在一时间周期内),以便例如防止缓冲器溢出。
在一个实施例中,可以提供用于处理经过ASCII滤除或剥离的文件或内容的选项。例如,如果文件、数据集、或互联网或万维网内容不是经过ASCII滤除或剥离的,那么来自外部世界的文件和从其导出的文件(或从其后代或孩子中导出的)被标记为和识别为“不安全”和可能感染的,而被剥离或滤波以仅包括特定允许的ASCII字符的文件或内容可以被识别为“安全”。这种类型的标记可以用于其他预定的文件或除了ASCII之外的内容。因此通常,可选地,如果文件已知没有暴露给感染物、恶意的或简单的可能有问题的未知代码,则该文件被处理为安全的;并且如果文件已知没有被这样暴露,则该文件被标记为安全的。
在一个实施例中,可以进行修复过程,其可以例如由以下构成或包括一个或多个以下部分:(a)使CE中的软件等同和/或部分等同于所有或部分主模板,(b)删除和/或修复计算环境或其中例如计算环境储存器(“爆发室”)的一部分,和/或切换至辅助CE;(c)重新格式化和/或修复一个或多个数据储存设备、主引导记录、分区表等,(d)运行一个或多个其他修复进程,或(e)这些中的任何组合。修复进程可以在例如每次用户“退出”文档(和/或其他可在其运行时使用的标准)时运行。因此,可以在干净的环境下打开每个新的文件,该环境不包含病毒和/或黑客软件或其他恶意代码。
在一个实施例中,主模板可以存储在数据储存设备上,其可选地可以隐藏、和/或通常对用户不可见,并且可以称作保护主模板,和/或主模板。可选地,其可以是“只读”的,和/或锁定的,和/或关闭,和/或禁用直到需要,和/或断开连接,和/或去激活,和/或与其的通信可以终止和/或去激活。这些(及其他)技术都可以用于保护该保护主模板免受恶意代码攻击。
在一个实施例中,数据储存设备和/或分区可以用于临时存储用户个人数据(由用户建立的文件、电子邮件、地址本、书签、喜好,数据库组件等)。该数据储存区也可以称作临时储存器。例如,当用户保存文档时,其可以被保存至临时储存器中。当用户保存数据库时,例如其(可能相关的组件)可以保存到临时储存器中。当用户下载电子邮件时,其可以保存至临时储存器中。当创建诸如书签和喜好项目时,它们可以在创建时,和/或退出应用程序时,保存到临时储存器中。当从保护储存器中请求文档时(这里所描述的),其可以首先被复制到临时储存器中。例如,如果用户想打开互联网浏览器,那么喜好/书签、和其他用户信息可以从保护储存器复制到临时储存器。需要注意的是,这是可选的步骤,对该过程不是必不可少的,但是在一些实施例中是期望的。
修复进程可以修复临时储存器,并利用已提前准备的新的副本来替换。例如,在一个实施例中,多个临时储存区可以被隔离地准备。然后,当它们需要时,可以删除旧的临时储存设备并用例如可以使用RAM、RAM盘、命令解释程序等创建的一个或多个新的设备来替换。
在一个实施例中,例如,保护储存器可以是其中用户个人数据除了在修复之后或者如果爆发进程被暂停外与爆发室隔离的储存区。临时储存器可以是数据储存区,该数据储存区可以在数据从保护储存器穿梭到临时储存器时或在已经对文档进行处理后再次从临时储存器返回到保护储存器时使用(可选的)。在一个实施例中,临时储存器(在本申请及某些早期的相关申请中也称作爆发室)可以总是可为计算环境访问。在该示例中,用户可以在工作时将数据保存到临时储存器中,然后在退出时,将文档(或其他文件或数据集)从临时储存器复制到保护储存器。
参照文件和备份,可选地,在一个实施例中,备份***或存档可以用于保存具有所有用户个人日期的连续备份:例如文档、电子邮件、喜好等。可选地,如果文件被病毒损坏或破坏,用户可以从备份***中复制过去的版本。连续备份和/或存档可以盖时间/日期戳,从而用户可以方便地确定备份进行的时间。备份的频率可以作为制造商的缺省预先确定,但是可以由用户改变。可选地,备份***通常可以对用户隐藏。在一个实施例中,当备份***对用户可用时,其保持在“只读”模式,从而其不能被用户偶然的修改。可选地,备份可以存在于独立的数据储存设备(在一些实施例中,分区)上,和/或位于例如网络的其他地方上。需要注意的是,这是可选的步骤,其不是该过程必不可少的,但是在一些实施例中是期望的。
相对于已在计算环境中发生的问题或错误的指示,可以采取各种恢复或修复步骤。在一个实施例中,可以允许处理器完成处理和/或可以“清除”或复位处理器,RAM可以被清除或复位,(可选地,在第一RAM被清除时,可以使第二隔离的RAM(其可选地为不可用和/或去激活)变为可用,例如可以建立和/或激活和使用与其的通信,但是第二RAM的使用不是必须的),并且可以在修复进程中使用处理器和/或RAM。下面描述一个对爆发室或隔离处理环境的修复过程的典型实施例,但是可以使用许多替代的进程和/或不同的处理器和/或RAM或其他存储器或储存器。在一个实施例中,CE的修复也可以被定义为利用另一个CE替代该CE。一种实现此的方法是删除第一CE,并激活与第二CE的通信。或者,在使用第二CE时修复第一爆发室。
收件箱或发件箱中的电子邮件(E-mail)通常被存储作为包含许多单独的消息的大文件。例如,一个“收件箱”可以包含所有已发送至用户的消息。因此,当读取或发送一封电子邮件时,整个电子邮件文件会处在病毒或黑客的危险中。根据本发明的一个实施例,电子邮件软件可以被修改,从而某一时刻的电子邮件可以被复制到临时储存器或隔离计算环境中打开以供使用。这将保护其他电子邮件免受污染。修复可以在打开下一封电子邮件之前运行。在一个实施例中,地址本、或其他电子邮件组件可以存储在保护储存器中,可以将仅有用户选择的特定地址从保护储存器复制到工作区以供使用。因此,病毒将不能访问用户的整个地址本。可选地,更新地址本可以受到限制,从而必须首先进行修复进程,从而保护地址本免受污染。
可选地,数据库和其他软件可以存储多个文件作为一个大文件或数据库,如同大多数电子邮件程序将单独的电子邮件处理为一个文件。这种软件可以被修改,从而单独的文件和/或离散的记录可以被复制到临时储存器中并由用户在某一时间对一个进行处理,因此整个数据库没有处在危险中。然后在打开下一个文件或记录之前运行修复。例如,电子邮箱中的每封电子邮件可以作为分离的文件存储。或者,可以在目录和/或数据库中输入数据的位置,并且仅仅该数据可以被复制,在没有打开保护储存器中的任何文件的情况下不是复制到临时储存器和/或CE。在一个实施例中,计算机程序代码可以防止在保护储存器中打开用户数据。在一个实施例中,电子邮件和/或数据库可以被从保护储存区复制到CE和/或其他数据储存设备,并且一封电子邮件或文件可以被打开来处理。仅有一封电子邮件(或数据库文件)可以被打开并处理,剩下的电子邮件和/或数据库可以删除(因为其仍驻留在保护储存设备中)。在一个实施例中,用户和网站使用所拥有的本发明的技术和方法。例如,在一个实施例中,***或设备用户决定在网站上进行电子商务交易。代替在网站上以常规方式输入数据,用户指示他/她想要进行电子商务交易,其使得网站软件拾取(或用户软件自动提供)用户公共加密密钥。该网站将用户密钥移动到隔离的计算环境中,并使用用户可以使用的单机的应用程序或过程加密以输入其交易或数据库信息。然后,可以将加密的文件移动到其连接的或可以与例如互联网的网络连接或耦合的隔离的计算环境,或者网络可以连接打其中该孤立的应用程序已经加密的隔离的计算环境。然后加密后的应用程序被发送至用户。用户的计算机接收应用程序,并将其移动到隔离的计算环境并在该隔离的计算环境中对该应用程序进行解密。然后用户将他们的用户数据输入到应用程序中。该应用程序可以创建用户已输入的数据的数据库,然后可以对数据库进行加密,接着利用隔离的计算环境建立网络连接,或将加密的数据库移动到新的隔离计算环境,然后将加密数据发送回电子商务网站,移动到新的隔离计算环境,并进行解密。按照该方式,解密的数据库和电子商务从来不会暴露给所述网络。
在一个实施例中,以太网电缆(或其他网络连接通信链路)可以仅在一个方向上而不是两个方向上通信,并且每个接收和发送电缆被切换以分别与计算环境通信。在这些实施例中,以太网(或其他网络连接通信链路)的每条线或方向独立地与每个与独立的隔离计算环境耦合的通信链路切换。一个计算环境发送,另一个计算环境接收,并且它们的行为通过控制计算环境来协调,例如通过CSCE或CCE。在另一个实施例中,一对网络接口或能力(NICs)或调制解调器也被配置成利用提供发送/接收能力的所述对来仅发送或仅接收。通过在一个计算环境中提供仅仅接收能力,在另一个隔离计算环境中提供仅仅发送能力,即使是黑客或病毒有权访问接收计算环境,该黑客或病毒也不能离开仅仅发送计算环境或与仅仅发送计算机之外的任何地方通信。
在一个实施例中,可选地,提供内部DHCP路由器或其他路由器,从而计算环境可以具有多个网络交易,多个NIC卡,或多个I/O设备。在一个实施例中,任何数量的***设备以隔离的方式与任意数量的计算环境专门耦合。这些设备例如可以是USB设备,火线设备,SCSI设备,串行设备,或任何其他设备类型,如现有技术中已知的。
在一个实施例中,可以保留较旧的文件,而不是替代早先保存的文件版本。例如,当更新的Netscape书签和用户数据被复制回保护储存器时,它们不能替代Netscape书签的先前版本和历史。因此,下一次使用数据,如果其被污染且不能正常操作时,控制方法和/或用户可以运行修复,并且切换回使用数据的先前版本。
在一个实施例中,可选地,可以创建两个或多个CE,一个例如具有完整的主模板,而另一个例如仅包含频繁使用的应用程序和操作***的简略组。可选地,当需要软件时,如果CE不包含该软件,可以通过将其从主模板复制而将需要的软件添加到CE中,该主模板例如可以包含完整的用户软件组并且可选地包含操作***。
在一个实施例中,可选地,在激活网络通信之前:在发送之前,可以使用通过在隔离的计算环境中执行加密来维护电子邮件的方法来对一些或所有将要发送的电子邮件进行加密,然后将电子邮件复制到第二隔离计算环境,在该第二隔离计算环境中,该电子邮件将被发送(并暴露给潜在的黑客)。在接收到加密的电子邮件之后,在解密之前,该电子邮件被移动到隔离的计算环境。从而电子邮件决不会暴露给处于非加密形式的互联网。我们的软件自动触发加密和/或解密进程而无需用户涉及。可选地,可以自动为每个电子邮件提供用户公有密钥。
可选地,在一个实施例中,保护存储器可以是只读的和/或被锁定的,直到CSCE或CCE或其他控制环境接收命令来将数据移动到CE。因此,在该示例中,如果用户选择保护储存器中的文件打开,则代码(例如可以是ROM和/或操作***中的指令)可以指示CSCE进行修复。然后在修复之后,CSCE可以将保护存储器切换到读-写和/或解锁。数据可以被从保护储存器复制到临时储存器和/或爆发室。这些事件可以以其它顺序发生,可以包含附加和/或其他步骤,和/或可以不包含这些步骤中的一些。
可选地,多个CE可以同时操作,从而如果一个CE“崩溃”和/或退出和/或关闭,和/或不再需要,则另一个CE将代替所使用的CE。例如,CSCE可以切换至辅助CE,和/或激活与辅助CE的通信。
在一个实施例中,与保护储存器相关的代码不允许数据执行和/或不支持在保护储存器中的数据执行。因此,在该实施例中,没有用户数据可以在保护储存器中执行。可选地,与保护存储器的通信从来不会在修复之前、在与该CE的新的网络连接之前,和/或在打开任何用户文件之前利用CE建立。因此,保护储存器不会受黑客和病毒执行的影响。
在一个实施例中,计算环境(也称作x-室或爆发室)中的每个都可以相互等同,和/或可以相互不同,和/或充当“时间延迟”镜像。在一个实施例中,辅助CE可以是等同的,但是键击和/或输入可以被以延迟方式发送至多个CE。因此,某些CE可以是时间延迟的,从而如果CE崩溃,则控制***可以切换至一时间延迟的CE。在一个实施例中,控制方法可以使用进程监视器和/或崩溃检测***来确定是否切换到辅助***CE,并且可选地,可以诊断问题从而可以在切换到连续的较旧的CE时可以避免该问题。
在一个实施例中,易失性存储器中的数据在执行命令之前可以被复制和/或保存、和/或备份到另一个存储区和/或逻辑设备。可以存储在执行命令之前数据的连续备份。然后,当执行命令时,如果发生诸如冻结之类的问题,则可以使用新的辅助***和/或辅助自主修复用户工作区,和/或可选地,易失性存储器的备份可以被装载到易失性存储器中。这可以提供易失性存储器的较好版本以供使用。如果问题或冻结再次发生,则可以使用保存的易失性存储器的较老的版本。可选地,可以向用户通知该问题并要求用户改变他们输入什么和/或他们如何输入、和/或其他行为。可选地,当使用辅助CE时,控制方法可以选择来使用易失性存储器的较早备份,和/或命令辅助***来对数据进行不同地处理以避免崩溃。
执行修复的替代方法例如是预备多个隔离的CE。这些CE可以是RAM盘、RAM、命令解释程序、易失性存储器、或其他数据存储器的形式,并且具有相关的RAM,和/或处理,和/或计算,并且可以包含一个或多个主模板的所有或部分的副本。隔离例如可以通过激活和/或去激活通信以将CE从隔离的备份切换到当前的CE来创建。
可选地,在一个实施例中,在一个或多个未曾料到的、和/或未识别的文件出现在临时储存区中时(例如没有出现在信息的保护数据库中的一个或多个文件,该信息涉及什么数据应该处于临时储存区中),代码,例如在控制和/或操作***中的,和/或ROM可以引起用户对这种文件的注意。用户可以给出破坏和/或保存文件,和/或标记文件的选项,以指示该文件有些可疑,和/或需要进一步的检查或验证。在另一个实施例中,未识别的文件可以被删除和/或保存到数据储存设备和/或被标记以进一步检查,和/或可以自动和/或手动地发送以供进一步检验,例如发送到网络管理员和/或病毒检查实体。
在一个实施例中,一个或多个数据储存设备可以是在只读和读/写模式和/或锁定和/或解锁、和/或可访问和/或不可访问模式之间切换的硬件和/或软件。在一个示例中,用户可以打开来自只读数据储存设备的一个文件,对该文件进行处理,并且当用户保存该文件时,将其保存到临时储存区中。可选地,在关闭一些或所有文件时,逻辑和/或控制方法可以执行一个或多个以下步骤,清除和/或复位RAM,清除/复位处理器,和/或使一个或多个数据存储设备解锁和/或锁定,和/或读写和/或只读,将数据从临时储存器移动到数据储存设备,关闭/锁定/使只读一个或多个数据储存设备,可选地清除/复位临时储存区,(可选地运行修复进程),等待下一个用户命令。在一个实施例中,临时储存器可以由易失性和/或非易失性存储器构成。在一个例子中;可以使用随机存取存储器和/或快闪ROM,和/或其他数据存储器。在一个实施例中,为了复制文档之间的数据,要复制的数据可以被装载到RAM和/或易失性存储器的一个或多个特定的地址中。当接收粘贴命令时,可以通过使用不允许数据执行的复制进程来传送数据。例如,数据可以简化成不能执行的仅发送ASCII文本。
在一个实施例中,虽然文件不能在保护储存器中打开,但是它们例如可以被但不局限于:复制、移动、删除、作标志、备份、存档、及其他这种功能,只要这些功能从“安全”接口执行,例如控制环境。
在一个实施例中,为了运行命令(将改变偏好、修改主模板,删除备份)即或向控制环境提供其他管理事件等等,管理必须从安全环境发生,例如具有其自己的用户接口软件的控制环境。这里,术语隔离可以用于传送这样的概念,有时所描述的是隔离的;在其他特定的时间如这里所描述的,其可能是不隔离的。例如当正执行用户数据时,CE可以被隔离,直到运行修复进程。然后,为了运行修复进程,可以建立例如与只读主模板之间的通信,可以进行修复,然后可以建立与CE的其他通信,例如与网络的通信。根据需要和当需要防止黑客和病毒蔓延时使用隔离。
参照主模板,用于CE中的主模板的“一次性(disposable)副本”可以以多种方式并使用各种标准创建。在一个实施例中,可以创建CE中的各种主模板。可以建立创建主模板的标准。例如,一种标准可以是基于选择在计算机/计算设备上公共使用的程序的。例如,假定计算机用户最常使用:(1)字处理程序,(2)电子邮件程序,(3)两个互联网浏览器和防止弹出的实用程序和跟踪在线拍卖的程序;在较少程度上使用各种其他应用程序、游戏、实用程序和/或其他程序。使用该例子,使用这些需求中的每个作为标准来创建主模板。这样,一个主模板可以包含操作***和字处理程序;另一个主模板可以包含操作***和电子邮件程序。另一个主模板可以包含操作***,两个互联网浏览器和防止弹出的实用程序和跟踪在线拍卖的程序;而另一个主模板可以包含所有的用户软件。
在另一个实施例中,可以创建一个(或多个)主模板,并且仅有被需要来满足标准的部分主模板可以被复制来创建一个或多个CE。例如,可以存在一个主模板,但是其可以用于在一个或多个CE中创建部分主模板。例如,使用上述标准,一个主模板可以用于创建CE,该CE准备好以供用户可能使用。
在一个实施例中,用户能够选择使用/打开哪个CE,并且可以将数据复制到CE中。可选地,CE的选择和/或使用的主模板的副本可以自动发生,并且可以通过代码来编排。例如,如果用户选择打开字处理文档,当文档被选择时,代码可以执行对包含合适的字处理软件的CE搜索,和/或可以检查数据库和/或目录以识别合适的软件的位置,和/或使用其他装置来识别正确的软件,和/或要使用的CE。
在本发明的一些实施例中,来自一个、几个、或所有计算环境的数据可以显示在单个显示设备上(或显示在一组比存在的操作计算环境少的显示设备上),从而存在对共享这种显示设备和子***而没有污染的期望。
在一个实施例中,控制环境可以使用多个操作模式。例如,在第一操作模式下,控制环境不允许在用户计算环境之间进行复制,除了ASCII和扩展的ASCII之外,和/或不允许文件共享在网络上。在第二操作模式下,控制计算环境可以允许复制未知的可执行代码和/或可以允许在网络上共享文件。第一模式可以被分类成“对黑客和病毒免疫”,而第二操作模式可能被分类成“对黑客和病毒有抵抗力”或“不安全”。在第二操作模式下创建的文档可以例如标记为“不安全”文档。也可以使用其他操作模式。可以例如通过控制环境,和/或用户,和/或管理员进行切换模式。切换可以是自动的,和/或由手动切换进程触发,或由某些检测到的条件触发。
存在许多其他可能的模式,其可以利用本发明的实施例实现。例如,可以存在各种管理模式。在管理模式的一个例子中,用户必须使用密钥,或密码,或任何验证身份或认证的装置,以便对一个或多个计算环境(例如保护储存器或控制环境)进行修复和/或维护,。在管理模式和/修复模式的第二例子中,保护储存器、控制环境可以被自动地保存到一个或多个数据存储器中,被重新格式化/复位/删除,并根据需要被重新装载以按照原始方式重新创建其状态。可以使用例如控制环境的各种环境的主模板,并且利用适当的认证和切换,在维护过程中另一个环境可以进行对控制环境的修复。在一个实施例中,该切换可以发生在调度中,和/或可以由用户触发。
在另一个实施例中,控制环境可以标记每个保存到保护存储器中的文件。如果该文件是未知的或非信任的,则其例如可以被标记为“非信任的”,而如果该文件是从原始环境内部创建的,则该控制环境可以将该文件标记为“信任的”。在一个例子中,在“对黑客和病毒免疫”模式下,控制环境可以允许将信任的数据从第一用户计算环境复制到第二用户计算环境中,但是不允许将“非信任的”数据复制到第二用户计算环境中。切换至“低安全”模式下可以使控制环境允许将非信任的代码从第一用户计算环境复制到第二用户计算环境,并且所得到的文件可以被标记为“非信任的”。
在另一个实施例中,在一种模式下,在两个或多个计算环境中链接的数据可以在这些环境之间直接复制。在另一个实施例中,信任的链接数据组可以被复制或移动到用户环境,并且如果所有数据是信任的,在它们之间和/或通过链接复制数据。因此,整个数据库和链接数据组可以被移动或复制到用户计算环境并通过在各个文件和/或数据库之间数据的交叉复制和链接进行工作。如果所有数据都是信任的,则数据可以在一个(或者在一个以上,例如2个,3个等)用户计算环境中一起工作。因为所有代码都是信任的,用户计算环境可以直接与第一计算环境通信。在不同的非信任操作模式下,非信任的数据可以与信任的或非信任的数据合并,导致非信任的数据,并且被标记为“非信任的数据”。按照这种方式,在信任的环境下保持和共享链接数据的整个数据库和数据库。
在另一个实施例中,使用这种新技术的由计算机构成的网络可以共享和混合信任的数据、数据库和在信任/安全通信线路上传送的链接数据文件。
在一个实施例中,控制计算环境例如可以从不允许将标记为非信任的文件与标记为信任的文件混合。有利地是,该方法使得由信任的/安全的网络连接附加的整个计算机网络共享和混合信任的文件,数据库和连接数据,同时具有在其计算机上包含非信任文件并使用非信任文件而不危及其信任的文件的能力。
在一个实施例中,服务器可以是这里所描述的技术,并且客户节点可以通过安全/信任的网络连接来连接,客户节点可以由现有计算中的计算机构成。在该示例中,服务器可以执行以下步骤:(1)重新格式化客户计算机硬盘驱动器并且可以清除存储器;(2)在用户选择文件之后,在桌面环境中提供用户计算机访问桌面环境;(3)将所请求的文件提供给用户环境并将与桌面计算机的通信例如限制到1比特,意味着“保存”文件,和多于1比特,保存文件和擦除计算环境。还可以存在步骤:(4)为了以不把控制环境置于风险下的方式保存文件,可以通过服务器上的用户计算环境从客户计算机复制用户文件,然后以通常保存位于用户计算环境中的数据的方式进行保存。然后(5)当客户完成时,客户计算机可以由服务器重新格式化并复位。可选地,客户机可以作为“瘦客户机”操作,因此很少或者没有数据需要复制回客户计算机。
在一个实施例中,标记为非信任的文件可以利用“剥离”进程来变成信任的,该进程从例如字处理文件中删除任何潜在的可执行代码。例如非信任的文件数据可以作为ASCII字符被复制到安全环境中并被分类成信任的。在一个实施例中,保护储存器可以是外部的和/或便携的,和/或可热插拔的,和/或便携式介质。在一个实施例中,软件和/或物理按钮和/或开关和/或组合可以用于触发事件,例如复位/修复计算环境。
可能或没有被隐藏的内部或外部备份***可以例如由控制环境切换,以便备份保护储存器、主模板、控制环境的副本等。
下面来关注如何显示和使用来自任意选择的一个或一组计算环境的数据的描述。这种数据可以包括但不局限于视频输出或数据表示或在计算环境中发生的行为以及在处理事件期间用于或由计算环境产生的实际输入、输出和中间数据集或文件。
在一个涉及基于窗口的用户接口的实施例中,将所有(或选择)窗口、图标(以及应用程序或数据的名称,例如图标表示),及其他相关数据和/或识别装置的所有(或选择)大小、形状和位置坐标从计算环境(在一些实施例中也称作“爆发室”或“x-室”,因为包含任何代码的爆发并且没有外部危害)发送至***内部的控制实体,通常,控制计算环境(在一些实施例中也称作“大脑”),例如CSCE或CCE计算环境已经描述。当支持单个并行的计算环境操作时,例如可以通过使用本发明的过程,使用一个或多个计算环境中运行的计算机程序软件指令或以时分方式,将该信息提供给控制计算环境。或者,其所有或部分都可以通过或在控制计算环境内创建。
由控制计算环境存储和跟踪的该数据在这里将被称作“计算环境数据”或“x-室数据”。
此外,控制计算环境还可以或可替换地跟踪被称为控制数据或“大脑数据”的其他数据,例如表示其中每个“层”或“进程”创建的顺序以及其中每个窗口创建的顺序的数据。其还将信息维持在选择的或有效窗口或进程上。
控制计算环境,例如在一些实施例中描述的、相对于其他实施例也称作***“大脑”的CSCE或CCE,还可以跟踪鼠标光标的位置或其他指示设备的位置和/或键盘或其他用户输入行为。因此,控制计算环境随后可以确定鼠标光标相对于这些打开窗口、图标等的位置(当鼠标或指示设备点击发生时),其由每个计算环境产生。将会理解的是,虽然本说明书主要描述了使用键盘和鼠标命令的人类用户交互,例如但不局限于触摸屏交互和命令,声音交互和命令,下拉菜单,热点选择交互和命令,功能钮按压,触摸笔交互和命令,各种其他用户输入和交互方法和设备,如在现有技术中已知的,或者期望开发的。
因此,通过计算鼠标位置“点击”(或其他“选择”),并比较其与分配的计算环境位置(其窗口在“前面”或“有效”),然后对于CSCE可以确定哪个窗口(或图标、或项目或计算环境过程)是要选择的,并且接收该“点击”输入。
因此,当点击鼠标按钮时,控制计算环境根据由控制计算环境采集的信息,例如可以确定例如在常规的窗口项中哪一层“有效并在前面”,或者要运行哪个应用程序,或者何处重新定向鼠标和键盘信号。
作为示例而不是限制,从计算环境(“CE”)到CSCE的直接连接可以使用来自计算环境的第一(可能是专用的)ASIC到CSCE(或过滤器)中的第二(可能是专用的)ASIC,以防止无意的行为或结果。这种无意的结果例如可以是执行的某些代码,使得缓冲器或存储器溢出,打算放置或传播恶意代码。ASIC仅仅是一个逻辑电路的示例,其提供过滤和限制操作,从而仅有预定的允许的处理可以发生。例如,以ASIC或其他方式实现的作为“接收机”操作的这种逻辑,可以将所接收的通信仅理解或解释为“x,y”或“行,采样”坐标,而不是别的。应当注意的是,在一些实施例中,在计算环境与CCE之间的通信路径中放置的单个ASIC或其他逻辑可以足以在预期的通信中提供所需的限制或过滤操作。这种ASIC或逻辑电路(可选地使用软件和/或固件)可以被控制来安全确实地从可用的一组可能允许的功能或操作中选择一个功能,或者可以是动态可编程的(例如通过从保护或其他安全储存器下载代码或发送控制信号或多个信号)以实现这种选择。
“x-室数据”或可以包含在提供给控制计算环境的数据中的用户计算环境数据的例子可以不包括或包括以下任何一种或多种,但是不局限于:窗口位置和大小(类似接线框);图标的名称和它们所代表的;文件大小、文件位置、以及类似的文件或数据集参考或识别符。作为进一步的示例,这些可以包括B树,主目录,桌面数据库等。其还可以或可替代地包括列表或其他数据结构或应用程序、驱动器或操作***部分相关或打算交互操作,打开的索引,或具有处理性能,利用其文件或文件类型或设备或设备类型。
控制数据或“大脑数据”的例子可以不包括或包括以下任何一个或多个:用于识别创建层、窗口和/或处理器的顺序的数据,这种层、窗口和/或进程的当前顺序或优先级;鼠标或指示设备绝对值,屏幕相对值、窗口相对光标位置,和/或这些的组合或其他数据。将会理解的是,在某些实施例中,多个计算环境可以具有类似的或等同的属性,该数据或信息中的一些可以仅需要创建一次,然后如果以及当存在相关计算环境的变化时,对其进行修改或与每个计算环境适配以供后续更新。
已经描述了包括多种可选特征的本发明的几个实施例,将会很清楚的是,本发明的不同方面和特征可以组合并一起使用,以及单独使用。在此部分中,关注具有某些特征组合的特定的典型实施例。该描述仅仅是示意性的并不打算以任何方式限制本发明的精神和范围。如在本说明书中的其他地方描述的本发明的多个方面和特征在以下段落中没有描述。
在一个方面,本发明提供了一种信息装置。在信息装置的一个实施例中,该信息装置的类型是具有用于程序和数据的第一储存器和处理逻辑并执行计算机程序指令以执行涉及用户数据的任务;该信息装置的特征在于:创建并保持分离的控制处理环境和用户处理环境,从而:(1)具有未知或非信任内容的用户数据在控制处理器逻辑环境中不会暴露给可以执行嵌入在用户数据中的任何计算机程序代码指令的计算机程序代码;和(2)当与第一储存器隔离时,具有未知或非信任内容的用户数据仅暴露在用户处理器逻辑环境中的不同于第一储存器的临时储存器中。在信息装置的另一个实施例中,所述信息装置是或包括个人数据助理。在信息装置的另一个实施例中,所述信息装置包括或者是计算机。
在另一个方面,本发明提供一种信息装置,包括:至少一个处理逻辑设备,用于执行至少一个指令;第一储存器,用于存储第一数据和第一程序代码,包含所述至少一个指令并包含用户数据;第二储存器,用于存储第二数据;切换***,用于在自动控制下可选择地独立地耦合和去耦合所述处理逻辑设备与第一储存器和/或第二储存器,该切换***从所述处理逻辑设备接收至少一个控制信号以用于选择该切换***的条件;所述处理逻辑设备根据以下条件在控制配置和用户数据配置下操作:(i)当该处理逻辑装载有不能执行具有非信任内容或不是源自已有的控制环境的数据项的程序指令时,该处理逻辑设备可以与第一储存器耦合;(ii)当该处理逻辑装载有可以执行具有非信任内容或不是源自已有的控制环境的数据项的程序指令时,该处理逻辑设备不能或仅有限地到第一储存器耦合以传送已有的信息;(iii)当该处理逻辑装载有可以执行具有非信任内容或不是源自已有的控制环境的数据项的程序指令时,该处理逻辑设备可以与第二储存器耦合;以及(iv)当该处理逻辑装载有仅能将数据项从第一储存器复制到第二储存器或从第二储存器复制到第一储存器的程序指令时,该处理逻辑设备可以与第一储存器和第二储存器耦合。
在前述信息装置的一个实施例中,切换***可以以以下方式中的至少一种来使处理逻辑设备与第一储存器和第二储存器耦合或去耦合:(i)处理逻辑设备仅与第一储存器耦合,(ii)处理逻辑设备仅与第二储存器耦合,(iii)处理逻辑设备同时与第一和第二储存器耦合,(iv)处理逻辑设备既不与第一储存器耦合也不与第二储存器耦合。在前述信息装置的另一个实施例中,处理逻辑设备包括微处理器。在前述信息装置的另一个实施例中,处理逻辑设备从由以下电路构成的处理逻辑电路组中选择:微处理器、中央处理单元(CPU)、控制器、微控制器、ASIC、逻辑电路、可编程逻辑电路以及这些电路的组合。在前述信息装置的另一个实施例中,所述信息装置从一组由以下装置构成的信息装置组中选择:计算机、笔记本电脑、个人数据助理、个人数据管理器、蜂窝电话、移动电话、无线电接收机、无线电发射机、GPS接收机、卫星电话、车载计算机、飞机机载计算机、导航设备、家用电器、打印设备、扫描设备、照相机,电子照相机、电视接收机、广播控制***、电子工具、医疗监控设备、安全设备、环境控制***、电子设备,以及这些装置的组合。在前述信息装置的另一个实施例中,第一数据存储器和第二数据存储器是独立地可选的,并且从由以下组成的存储器组中选择:旋转磁性硬盘驱动器、转动磁性软盘驱动器、CD、DVD、半导体存储器、固态存储器、化学存储器、分子存储器、微驱动器、闪存、紧缩型快闪卡存储器、RAM存储器、ROM存储器和其组合。
在前述信息装置的另一个实施例中,至少一个处理逻辑设备包括多个处理逻辑设备。在该信息装置的另一个实施例中,多个处理逻辑设备中的至少一个包括至少一个微处理器,并且至少一个指令包含来自操作***的多个计算机程序代码段和来自应用程序的多个计算机程序代码段;并且其中所述切换***可以耦合至所述微处理器,用于接收改变切换配置的切换控制命令,以可选择地耦合和去耦合该微处理器与第一和第二存储器。在该信息装置的另一个实施例中,所述多个处理逻辑设备通过执行一个处理逻辑设备的自动控制***间歇地顺序地隔离并且可通信地受限。在该信息装置的另一个实施例中,第二储存器被配置成当其与所述处理逻辑设备耦合时在处理操作期间作为临时储存器执行,并且如果所述处理以错误状态或没有错误状态完成,则在已独立发生每个处理之后被自动擦除,其中错误状态可以包括对病毒或其他恶意代码执行的检测。在该信息装置的另一个实施例中,多个处理逻辑设备和至少所述第一和第二储存器可被动态配置成创建具有确定特性的计算环境。在该信息装置的另一个实施例中,第一储存器存储具有操作***和应用程序组件以及用户数据的保护副本的主模板文件。
在另一个方面,本发明提供了一种用于操作一种用于操作具有用于执行至少一个指令的至少一个处理逻辑设备,用于存储第一数据和包含所述至少一个指令并包含用户数据的第一程序代码的第一储存器,以及用于存储第二数据的第二储存器的类型的信息装置的方法;该方法包括:在从处理逻辑设备接收到至少一个控制信号以用于选择切换***的条件之后,在自动控制下有选择地并且独立地切换以耦合和去耦合该处理逻辑设备与第一储存器和/或第二储存器;根据以下条件在控制配置和用户数据配置下操作所述处理逻辑设备:(i)当处理逻辑装载有不能执行具有非信任内容或不是源自己知的控制环境的数据项的程序指令时,允许将所述处理逻辑设备与第一储存器耦合;(ii)当该处理逻辑装载有能够执行具有非信任内容或不是源自已知的控制环境的数据项的程序指令时,不允许或仅有限地允许将该处理逻辑设备与第一储存器耦合以传送已知的信息;(iii)当处理逻辑装载有能够执行具有非信任内容或不是源自己知的控制环境的数据项的程序指令时,允许将该处理逻辑设备与第二储存器耦合;以及(iv)当处理逻辑装载有仅能够将数据项从第一储存器复制到第二储存器或从第二储存器复制到第一储存器的程序指令时,允许将该处理逻辑设备与第一储存器和第二储存器耦合。
在用于操作信息装置的方法的另一个实施例中,该方法还包括:在任何处理逻辑设备已使用第二储存器来处理用户数据之后擦除该第二储存器。
在用于操作信息装置的方法的另一个实施例中,其中所述信息装置从由以下装置组成的信息装置组中选择:计算机、笔记本电脑、个人数据助理、个人数据管理器、蜂窝电话、移动电话、无线电接收机、无线电发射机、GPS接收机、卫星电话、车载计算机、飞机机载计算机、导航设备、家用电器、打印设备、扫描设备、照相机、电子照相机、电视接收机、广播控制***、电子工具、医疗监控设备、安全设备、环境控制***、电子设备以及这些装置的组合。
在用于操作信息装置的方法的另一个实施例中,至少一个处理逻辑设备包括多个处理逻辑设备。在用于操作信息装置的方法的另一个实施例中,所述多个处理逻辑设备中的至少一个设备包括至少一个微处理器,并且所述至少一个指令包括来自操作***的多个计算机程序代码段以及来自应用程序的多个计算机程序代码段;并且其中所述切换***可耦合至所述微处理器,用于接收改变切换配置的切换控制命令,以可选择地耦合和去耦合该微处理器与第一和第二储存器。
在另一个方面,本发明提供了一种信息处理设备,包括:具有计算机PC卡和多个PC卡总线接口连接器的形状系数(form factor)的外壳;多个设置在所述外壳中的处理器;多个设置在所述外壳中或与其耦合的数据存储器;从所述多个数据存储器中选择的保护数据存储部分,用于存储至少用户数据;与所述多个数据存储器耦合的数据存储器开关***,所述开关***与数据存储器开关配置耦合,以用于配置与在所述外壳内设置的一个或多个数据存储器的通信;与至少一个***设备耦合的I/O***,所述I/O***与包含多个用于配置与所述外壳内设置的***设备的通信的特性的I/O***配置耦合;多个计算环境,所述每个计算环境包括至少一个处理器并由从所述多个特性中选择的一个特性识别,其包括:与所述数据存储器开关耦合的数据存储器开关通信通路,所述数据存储器开关通信通路根据所述数据存储器开关配置将至少一个数据存储器与所述计算环境耦合;I/O开关通信通路,其与所述I/O开关***耦合,所述I/O开关通信通路用于根据所述I/O开关***配置将所述***设备与所述计算环境耦合;所述计算环境可以执行处理行为,包括:从所述I/O开关***接收输入,以及将输出发送给所述I/O开关***,所述处理行为独立于所述另一个计算环境的处理行为而执行;从所述多个计算环境中选择的控制计算环境,用于配置所述数据存储器开关配置,用于配置所述I/O开关***配置,所述数据存储器开关配置支持所述控制计算环境与所述保护数据存储器之间的通信;并且至少一个用户隔离计算***从所述多个计算环境中选择;其中所述I/O开关***配置被配置成将接收的输入导引到所述至少一个计算环境,所述I/O开关***配置被配置成将由一个或多个计算环境产生的输出导引到所述***设备。
在所述信息处理设备的另一个实施例中,从由以下电路构成的处理逻辑电路组中独立地选择所述多个处理器:微处理器、中央处理单元(CPU)、控制器、微控制器、ASIC、逻辑电路、可编程逻辑电路,以及这些电路的组合;并且所述多个数据存储器可以从由以下构成的存储器组中选择:旋转式磁硬盘驱动器、旋转式磁软盘驱动器、CD、DVD、半导体存储器、固态存储器、化学存储器、磁存储器、分子存储器、微驱动器、闪速、紧凑型闪速卡存储器、RAM存储器、ROM存储器、以及这些存储器的组合。
在另一个方面,本发明提供了一种具有用于程序和数据的第一储存器以及处理逻辑,并且执行计算机程序指令以执行涉及用户数据的任务的类型的计算机;该计算机的特征在于:创建并保持分离的控制处理环境和用户处理环境,从而:(1)具有未知或非信任内容的用户数据在控制处理器逻辑环境中不会暴露给可以执行任何嵌入在用户数据中的计算机程序代码指令的计算机程序代码;以及(2)当与第一储存器隔离时,具有未知或非信任内容的用户数据仅暴露在用户处理器逻辑环境中的与第一储存器不同的临时储存器中。
在另一个方面,本发明提供了一种计算机***,包括:至少一个处理逻辑设备,用于执行至少一个指令;第一储存器,用于存储第一数据和包含所述至少一个指令并包含用户数据的第一程序代码;第二储存器,用于存储第二数据;切换***,用于在自动控制下可选择地并且独立地耦合和去耦合该处理逻辑设备与第一储存器和/或第二储存器,该切换***从处理逻辑设备接收至少一个控制信号以用于选择切换***的条件;该处理逻辑设备根据以下条件在控制配置和用户数据配置下操作:(i)当处理逻辑装载有不能执行具有非信任内容或不是源自已知的控制环境的数据项的程序指令时,所述处理逻辑设备可以与第一储存器耦合;(ii)当该处理逻辑装载有能够执行具有非信任内容或不是源自己知的控制环境的数据项的程序指令时,所述处理逻辑设备不与或仅有限地与第一储存器耦合以传送已知的信息;(iii)当处理逻辑装载有能够执行具有非信任内容或不是源自已知的控制环境的数据项的程序指令时,该处理逻辑设备可以与第二储存器耦合;(iv)当处理逻辑装载有仅能够将数据项从第一储存器复制到第二储存器或从第二储存器复制到第一储存器的程序指令时,该处理逻辑设备可以与第一储存器和第二储存器耦合。
在另一个方面,本发明提供了一种具有第一储存器和至少一个处理器的类型的计算机***,该计算机***的特征在于:在储存器和处理器中的至少一个中创建和保持分离的控制处理环境和用户处理环境,从而:(1)所识别的数据没有暴露在嵌入在所述数据中的处理器可执行指令中;以及(2)当与第一储存器隔离时,所识别的数据仅暴露在不同于第一储存器的第二储存器的处理器中。
以上为了示意和说明的目的已对本发明的特定实施例和最佳方式进行了描述。这些描述并不是要穷举或限制本发明到所公开的精确的形式,很明显的是,根据以上教导可以对其作出各种修改和变动。选择和描述这些实施例是为了最佳地解释本发明的原理及其实际应用,从而使本领域其他技术人员能够最佳地利用本发明及具有适合预期的特定应用的各种修改的各个实施例。本发明的范围是要由所附的权利要求书及其等效物所定义。

Claims (30)

1、一种用于通过第二数据的执行防止第一数据的污染的方法,所述方法包括以下步骤:
将第一隔离设备***源和处理逻辑之间,并将第二隔离设备***所述处理逻辑与接收机之间,所述第一和第二隔离设备中的每个都不能执行从所述源、从所述接收机、或从处理器逻辑进入所述隔离设备的任何指令,并且防止访问所述处理逻辑和由所述处理逻辑在所述源或者所述接收机端上执行任何指令;
通过所述第一隔离设备将所述第二数据从所述源传送至所述处理逻辑;
在所述处理器逻辑中处理所述第二数据以产生第一结果;以及
通过所述第二隔离设备将所述第一结果从所述处理器逻辑传送至所述接收机。
2、根据权利要求1所述的方法,其中,所述第一和第二隔离设备不能执行任何指令,因为其仅对二进制比特或多个二进制比特执行复制操作。
3、根据权利要求1所述的方法,其中,在所述处理逻辑外部执行所述复制操作。
4、根据权利要求2所述的方法,其中,所述第一和第二隔离设备是相同的设备。
5、根据权利要求2所述的方法,其中,所述第一和第二隔离设备是不同的设备。
6、一种用于通过第二数据的执行防止第一数据的污染的方法,所述方法包括以下步骤:
使源与处理逻辑和接收机隔离,所述隔离源和隔离接收机不能执行从所述接收机或从所述处理器逻辑进入所述隔离源的任何指令,并且防止访问所述处理逻辑和由所述处理逻辑在所述源或者所述接收机端上执行任何指令;
以隔离模式将所述第二数据从所述源传送至所述处理逻辑;
在所述处理器逻辑中处理所述第二数据以产生第一结果;以及
以隔离模式将所述第一结果从所述处理器逻辑传送至所述接收机。
7、根据权利要求6所述的方法,其中,所述隔离是逻辑隔离。
8、根据权利要求6所述的方法,其中,所述隔离是物理隔离。
9、根据权利要求6所述的方法,其中,所述源和接收机是储存器单元,并且使用地址控制过程实现所述隔离。
10、根据权利要求9所述的方法,其中,所述地址控制过程包括在计算机内部运用低于操作***的控制级,所述操作***隐藏特定存储器单元并使其他存储器单元可用于进程。
11、一种具有用于程序和数据的第一储存器以及处理器逻辑,并执行计算机程序指令以执行涉及用户数据的任务的类型的信息装置,所述信息装置的特征在于:创建并保持分离的控制处理环境和用户处理环境,从而:(1)使具有未知或非信任内容的用户数据在所述控制处理器逻辑中不会暴露给可能执行嵌入在所述用户数据中的任何计算机程序代码指令的计算机程序代码;以及(2)当与所述第一储存器隔离时,具有未知或非信任内容的用户数据仅暴露在所述用户处理器逻辑环境中的不同于所述第一储存器的临时储存器中。
12、一种信息装置,包括:
至少一个处理逻辑设备,用于执行至少一个指令;
第一储存器,用于存储第一数据和包含所述至少一个指令并包含用户数据的第一程序代码;
第二储存器,用于存储第二数据;
切换***,用于在自动控制下可选择地并独立地耦合和去耦合所述处理逻辑设备与所述第一储存器和/或所述第二储存器,所述切换***从所述处理逻辑设备接收至少一个控制信号,以用于选择所述切换***的状态;
所述处理逻辑设备根据以下条件在控制配置和用户数据配置下操作:
(i)当所述处理逻辑装载有不能执行具有非信任内容或不是源自已知的受控环境的数据项的程序指令时,所述处理逻辑设备可以与所述第一储存器耦合;
(ii)当所述处理逻辑装载有可以执行具有非信任内容或不是源自已知的受控环境的数据项的程序指令时,所述处理逻辑设备不能与所述第一储存器耦合或者仅有限地与所述第一储存器耦合,以传送已知的信息;
(iii)当所述处理逻辑装载有可以执行具有非信任内容或不是源自己知的受控环境的数据项的程序指令时,所述处理逻辑设备可以与所述第二储存器耦合;以及
(iv)当所述处理逻辑装载有仅能将数据项从所述第一储存器复制到所述第二储存器或从所述第二储存器复制到所述第一储存器的程序指令时,所述处理逻辑设备可以与所述第一储存器和所述第二储存器耦合。
13、根据权利要求12所述的信息装置,其中,所述切换***能够采用至少以下方式耦合或去耦合所述处理逻辑设备与所述第一储存器和所述第二储存器:(i)处理逻辑设备仅与所述第一储存器耦合,(ii)处理逻辑设备仅与所述第二储存器耦合,(iii)处理逻辑设备同时与所述第一和第二储存器耦合,(iv)处理逻辑设备既不与所述第一储存器耦合也不与所述第二储存器耦合。
14、根据权利要求12所述的信息装置,其中,所述处理逻辑设备包括微处理器。
15、根据权利要求12所述的信息装置,其中,所述处理逻辑设备从由以下电路构成的处理逻辑电路组中选择:微处理器、中央处理单元(CPU)、控制器、微控制器、ASIC、逻辑电路、可编程逻辑电路,以及这些电路的组合。
16、根据权利要求12所述的信息装置,其中,所述信息装置从由以下装置构成的信息装置组中选择:计算机、笔记本电脑、个人数据助理、个人数据管理器、蜂窝电话、移动电话、无线电接收机、无线电发射机、GPS接收机、卫星电话、车载计算机、飞机机载计算机、导航设备、家用电器、打印设备、扫描设备、照相机、电子照相机、电视接收机、广播控制***、电子工具、医疗监控设备、安全设备、环境控制***、电子设备、网络设备,以及这些装置的组合。
17、根据权利要求12所述的信息装置,其中,所述第一数据存储器和所述第二数据存储器是可以独立选择的,并且可从由以下构成的存储器组中进行选择:旋转式磁硬盘驱动器、旋转式磁软盘驱动器、CD、DVD、半导体存储器、固态存储器、化学存储器、磁存储器、分子存储器、微驱动器、快闪存储器、紧凑型快闪卡存储器、RAM存储器、ROM存储器,以及这些存储器的组合。
18、根据权利要求12所述的信息装置,其中,所述至少一个处理逻辑设备包括多个处理逻辑设备。
19、根据权利要求18所述的信息装置,其中,所述多个处理逻辑设备中的至少一个设备包括至少一个微处理器,并且所述至少一个指令包括来自操作***的多个计算机程序代码段和来自应用程序的多个计算机程序代码段;并且其中,所述切换***可以耦合至所述微处理器,用于接收改变所述开关配置的开关控制命令,以可选择地耦合和去耦合所述微处理器与所述第一和第二储存器。
20、根据权利要求19所述的信息装置,其中通过执行所述处理逻辑设备中的一个设备的自动控制***而使所述多个处理逻辑设备间断地顺序地隔离并且可通信地受限。
21、根据权利要求19所述的信息装置,其中,当所述第二储存器与所述处理逻辑设备耦合时,所述第二储存器在处理工作期间用作临时储存器,并且如果所述处理以错误状态或没有错误状态完成,则在每个处理已经独立发生之后,所述第二储存器被自动擦除,其中错误状态可以包括对病毒或其他恶意代码执行的检测。
22、根据权利要求20所述的信息装置,其中,所述多个处理逻辑设备和至少所述第一和第二储存器可以被动态地配置来创建具有确定特性的计算环境。
23、根据权利要求11所述的信息装置,其中,所述第一储存器存储具有操作***和应用程序组件以及用户数据的保护副本的主模板文件。
24、一种用于操作具有用于执行至少一个指令的至少一个处理逻辑设备,用于存储第一数据和包含所述至少一个指令并包含用户数据的第一程序代码的第一储存器,以及用于存储第二数据的第二储存器的类型的信息装置的方法;所述方法包括:
在从所述处理逻辑设备接收到至少一个用于选择切换***的状态的控制信号之后,在自动控制下有选择地并且独立地切换以耦合和去耦合所述处理逻辑设备与所述第一储存器和/或第二储存器;
根据以下条件,在控制配置和用户数据配置下操作所述处理逻辑设备:
(i)当所述处理逻辑装载有不能执行具有非信任内容或不是源自己知的受控环境的数据项的程序指令时,允许耦合所述处理逻辑设备与所述第一储存器;
(ii)当所述处理逻辑装载有能够执行具有非信任内容或不是源自己知的受控环境的数据项的程序指令时,不允许耦合所述处理逻辑设备与所述第一储存器,或仅有限地允许耦合所述处理逻辑设备与所述第一储存器以传送已知的信息;
(iii)当所述处理逻辑装载有能够执行具有非信任内容或不是源自已知的受控环境的数据项的程序指令时,允许耦合所述处理逻辑设备与所述第二储存器;以及
(iv)当所述处理逻辑装载有仅能够将数据项从所述第一储存器复制到所述第二储存器或从所述第二储存器复制到所述第一储存器的程序指令时,允许耦合所述处理逻辑设备与所述第一储存器和所述第二储存器。
25、根据权利要求24所述的用于操作信息装置的方法,还包括:在任何处理逻辑设备已使用第二储存器处理用户数据之后,擦除所述第二储存器。
26、根据权利要求24所述的用于操作信息装置的方法,其中从包含以下装置的信息装置组中选择所述信息装置:计算机、笔记本电脑、个人数据助理、个人数据管理器、蜂窝电话、移动电话、无线电接收机、无线电发射机、GPS接收机、卫星电话、车载计算机、飞机机载计算机、导航设备、家用电器、打印设备、扫描设备、照相机、电子照相机、电视接收机、广播控制***、电子工具、医疗监控设备、安全设备、环境控制***、电子设备、网络设备,以及这些装置的组合。
27、根据权利要求24所述的用于操作信息装置的方法,其中,所述至少一个处理逻辑设备包括多个处理逻辑设备。
28、根据权利要求27所述的用于操作信息装置的方法,其中,所述多个处理逻辑设备中的至少一个设备包括至少一个微处理器,并且所述至少一个指令包括来自操作***的多个计算机程序代码段以及来自应用程序的多个计算机程序代码段;并且其中所述切换***可耦合至所述微处理器,用于接收改变所述开关配置的开关控制命令,以可选择地耦合和去耦合所述微处理器与所述第一和第二储存器。
29、一种信息处理设备,包括:
具有计算机PC卡和多个PC卡总线接口连接器的形状系数的外壳;
设置在所述外壳中的多个处理器;
设置在所述外壳中或与其耦合的多个数据存储器;
从所述多个数据存储器中选择的保护数据存储器部分,用于存储至少用户数据;
与所述多个数据存储器耦合的数据存储器开关***,所述开关***与数据存储器开关配置耦合,以用于配置与设置在所述外壳内的一个或多个数据存储器的通信;
与至少一个***设备耦合的I/O开关***,所述I/O***与包含多个特性的I/O***配置耦合,以用于配置与所述外壳内设置的***设备的通信;
多个计算环境,所述每个计算环境包括至少一个处理器,并由从所述多个特性中选择的至少一个特性所识别,包括:
与所述数据存储器开关耦合的数据存储器开关通信通路,所述数据存储器开关通信通路根据所述数据存储器开关配置将至少一个数据存储器与所述计算环境耦合;
与所述I/O开关***耦合的I/O开关通信通路,所述I/O开关通信通路用于根据所述I/O开关***配置,将所述***设备与所述计算环境耦合;
所述计算环境,其能够执行包括从所述I/O开关***接收输入和向所述I/O开关***发送输出的处理行为,所述处理行为独立于另一个计算环境的所述处理行为而执行;
从所述多个计算环境中选择的控制计算环境,其用于配置所述数据存储器开关配置,用于配置所述I/O开关***配置,所述数据存储器开关配置支持在所述控制计算环境与所述保护数据存储器之间的通信;以及
从所述多个计算环境中选择的至少一个用户隔离计算环境;
其中所述I/O开关***配置用于将所接收的输入导引到至少一个所述计算环境,所述I/O开关***配置用于将从一个或多个所述计算环境产生的输出导引到所述***设备。
30、根据权利要求29所述的信息处理设备,其中:
从由以下电路构成的处理逻辑电路组中独立地选择多个处理器:微处理器、中央处理单元(CPU)、控制器、微控制器、ASIC、逻辑电路、可编程逻辑电路,以及这些电路的组合;并且
所述多个数据存储器可以从由以下存储器构成的存储器组中独立地选择:旋转式磁硬盘驱动器、旋转式磁软盘驱动器、CD、DVD、半导体存储器、固态存储器、化学存储器、磁存储器、分子存储器、微驱动器、闪存存储器、紧凑型闪存卡存储器、RAM存储器、ROM存储器,以及这些存储器的组合。
CNA2005800083183A 2004-01-15 2005-01-14 在具有病毒、间谍软件以及黑客防护特征的虚拟处理空间中的隔离复用多维处理 Pending CN1954297A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US10/760,131 2004-01-15
US10/760,131 US7392541B2 (en) 2001-05-17 2004-01-15 Computer system architecture and method providing operating-system independent virus-, hacker-, and cyber-terror-immune processing environments
USPCT/US04/33955 2004-10-13
US11/022,290 2004-12-23

Publications (1)

Publication Number Publication Date
CN1954297A true CN1954297A (zh) 2007-04-25

Family

ID=34837764

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2005800083183A Pending CN1954297A (zh) 2004-01-15 2005-01-14 在具有病毒、间谍软件以及黑客防护特征的虚拟处理空间中的隔离复用多维处理

Country Status (3)

Country Link
US (2) US7392541B2 (zh)
CN (1) CN1954297A (zh)
WO (1) WO2005074434A2 (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102844741A (zh) * 2010-02-23 2012-12-26 美国宇航公司 单处理器3级电子飞行包
CN102902576A (zh) * 2012-09-26 2013-01-30 北京奇虎科技有限公司 一种渲染网页的方法、服务器和***
CN102959557A (zh) * 2010-07-26 2013-03-06 金基容 黑客病毒安全综合管理设备
CN103268278A (zh) * 2013-06-14 2013-08-28 苏州国芯科技有限公司 支持多核处理器的sram控制器及其跟踪信息处理方法
CN103577469A (zh) * 2012-08-03 2014-02-12 深圳市腾讯计算机***有限公司 数据库连接复用方法和装置
CN105678164A (zh) * 2014-11-20 2016-06-15 华为技术有限公司 检测恶意软件的方法及装置
CN108836271A (zh) * 2012-07-24 2018-11-20 日本光电工业株式会社 生命体征测量装置
CN109412897A (zh) * 2018-11-15 2019-03-01 紫光测控有限公司 基于多核处理器及fpga的共享mac实现***及方法
CN112306863A (zh) * 2020-10-15 2021-02-02 北京沃东天骏信息技术有限公司 环境治理方法和装置、计算机装置和计算机可读存储介质
CN113474739A (zh) * 2019-02-19 2021-10-01 戴姆勒股份公司 控制装置和接管控制方法
CN113792869A (zh) * 2021-09-16 2021-12-14 北京中星天视科技有限公司 基于神经网络芯片的视频处理方法、装置和电子设备

Families Citing this family (177)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7926097B2 (en) 1996-11-29 2011-04-12 Ellis Iii Frampton E Computer or microchip protected from the internet by internal hardware
US7506020B2 (en) 1996-11-29 2009-03-17 Frampton E Ellis Global network computers
TW559699B (en) * 2000-01-12 2003-11-01 Sony Corp Image display device and method
US7096381B2 (en) * 2001-05-21 2006-08-22 Self Repairing Computer, Inc. On-the-fly repair of a computer
US20060277433A1 (en) * 2000-05-19 2006-12-07 Self Repairing Computers, Inc. Computer having special purpose subsystems and cyber-terror and virus immunity and protection features
US7111201B2 (en) * 2000-05-19 2006-09-19 Self Repairing Computers, Inc. Self repairing computer detecting need for repair and having switched protected storage
US6760772B2 (en) 2000-12-15 2004-07-06 Qualcomm, Inc. Generating and implementing a communication protocol and interface for high data rate signal transfer
US7392541B2 (en) 2001-05-17 2008-06-24 Vir2Us, Inc. Computer system architecture and method providing operating-system independent virus-, hacker-, and cyber-terror-immune processing environments
US8812706B1 (en) 2001-09-06 2014-08-19 Qualcomm Incorporated Method and apparatus for compensating for mismatched delays in signals of a mobile display interface (MDDI) system
US7536598B2 (en) * 2001-11-19 2009-05-19 Vir2Us, Inc. Computer system capable of supporting a plurality of independent computing environments
US7788699B2 (en) * 2002-03-06 2010-08-31 Vir2Us, Inc. Computer and method for safe usage of documents, email attachments and other content that may contain virus, spy-ware, or malicious code
US7246178B2 (en) * 2002-05-07 2007-07-17 Nortel Networks Limited Methods and systems for changing a topology of a network
US7228345B2 (en) * 2002-10-15 2007-06-05 Hewlett-Packard Development Company, L.P. Server with LAN switch that connects ports based on boot progress information
JP2004343526A (ja) * 2003-05-16 2004-12-02 Pioneer Electronic Corp 通信装置、通信方法並びに通信用プログラム及び情報記録媒体
ES2357234T3 (es) 2003-06-02 2011-04-20 Qualcomm Incorporated Generación e implementación de un protocolo y una interfaz de señales para velocidades de transferencia de datos elevadas.
AU2004300958A1 (en) 2003-08-13 2005-02-24 Qualcomm, Incorporated A signal interface for higher data rates
CN101764804A (zh) 2003-09-10 2010-06-30 高通股份有限公司 高数据速率接口
RU2371872C2 (ru) 2003-10-15 2009-10-27 Квэлкомм Инкорпорейтед Интерфейс с высокой скоростью передачи данных
EP1692842A1 (en) 2003-10-29 2006-08-23 Qualcomm Incorporated High data rate interface
EP2242231A1 (en) 2003-11-12 2010-10-20 Qualcomm Incorporated High data rate interface with improved link control
CN101053232A (zh) 2003-11-25 2007-10-10 高通股份有限公司 具有改进链路同步的高数据速率接口
WO2005057881A1 (en) 2003-12-08 2005-06-23 Qualcomm Incorporated High data rate interface with improved link synchronization
US7757033B1 (en) 2004-02-13 2010-07-13 Habanero Holdings, Inc. Data exchanges among SMP physical partitions and I/O interfaces enterprise servers
US7953903B1 (en) * 2004-02-13 2011-05-31 Habanero Holdings, Inc. Real time detection of changed resources for provisioning and management of fabric-backplane enterprise servers
US8868790B2 (en) 2004-02-13 2014-10-21 Oracle International Corporation Processor-memory module performance acceleration in fabric-backplane enterprise servers
US8145785B1 (en) 2004-02-13 2012-03-27 Habanero Holdings, Inc. Unused resource recognition in real time for provisioning and management of fabric-backplane enterprise servers
US7843906B1 (en) 2004-02-13 2010-11-30 Habanero Holdings, Inc. Storage gateway initiator for fabric-backplane enterprise servers
US7860961B1 (en) 2004-02-13 2010-12-28 Habanero Holdings, Inc. Real time notice of new resources for provisioning and management of fabric-backplane enterprise servers
US7873693B1 (en) 2004-02-13 2011-01-18 Habanero Holdings, Inc. Multi-chassis fabric-backplane enterprise servers
US7843907B1 (en) 2004-02-13 2010-11-30 Habanero Holdings, Inc. Storage gateway target for fabric-backplane enterprise servers
US7860097B1 (en) 2004-02-13 2010-12-28 Habanero Holdings, Inc. Fabric-backplane enterprise servers with VNICs and VLANs
US7990994B1 (en) 2004-02-13 2011-08-02 Habanero Holdings, Inc. Storage gateway provisioning and configuring
US7633955B1 (en) 2004-02-13 2009-12-15 Habanero Holdings, Inc. SCSI transport for fabric-backplane enterprise servers
US7685281B1 (en) 2004-02-13 2010-03-23 Habanero Holdings, Inc. Programmatic instantiation, provisioning and management of fabric-backplane enterprise servers
CA2775784A1 (en) 2004-03-10 2005-09-22 Qualcomm Incorporated High data rate interface apparatus and method
RU2355121C2 (ru) 2004-03-17 2009-05-10 Квэлкомм Инкорпорейтед Устройство и способ интерфейса с высокой скоростью передачи данных
JP5032301B2 (ja) 2004-03-24 2012-09-26 クゥアルコム・インコーポレイテッド 高データレートインターフェース装置および方法
JP2007535067A (ja) * 2004-04-29 2007-11-29 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ コンピュータにおけるプログラム実行中の侵入検出
US20050268116A1 (en) * 2004-05-14 2005-12-01 Jeffries James R Electronic encryption system for mobile data (EESMD)
US7664966B2 (en) * 2004-05-17 2010-02-16 Microsoft Corporation Secure storage on recordable medium in a content protection system
EP1978692B1 (en) 2004-06-04 2011-07-27 QUALCOMM Incorporated High data rate interface apparatus and method
US8650304B2 (en) 2004-06-04 2014-02-11 Qualcomm Incorporated Determining a pre skew and post skew calibration data rate in a mobile display digital interface (MDDI) communication system
US8713295B2 (en) 2004-07-12 2014-04-29 Oracle International Corporation Fabric-backplane enterprise servers with pluggable I/O sub-system
US7639926B2 (en) * 2004-09-14 2009-12-29 Marvell World Trade Ltd. Unified control and memory for a combined DVD/HDD system
US7639927B2 (en) * 2004-09-14 2009-12-29 Marvell World Trade Ltd. Unified control and memory for a combined DVD/HDD system
US7591018B1 (en) * 2004-09-14 2009-09-15 Trend Micro Incorporated Portable antivirus device with solid state memory
US7702221B2 (en) * 2004-09-14 2010-04-20 Marvell World Trade Ltd. Unified control and memory for a combined DVD/HDD system
US7657160B2 (en) * 2004-09-14 2010-02-02 Marvell World Trade Ltd. Unified control and memory for a combined DVD/HDD system
US8873584B2 (en) 2004-11-24 2014-10-28 Qualcomm Incorporated Digital data interface device
US8667363B2 (en) 2004-11-24 2014-03-04 Qualcomm Incorporated Systems and methods for implementing cyclic redundancy checks
US8699330B2 (en) 2004-11-24 2014-04-15 Qualcomm Incorporated Systems and methods for digital data transmission rate control
US8692838B2 (en) 2004-11-24 2014-04-08 Qualcomm Incorporated Methods and systems for updating a buffer
US8539119B2 (en) 2004-11-24 2013-09-17 Qualcomm Incorporated Methods and apparatus for exchanging messages having a digital data interface device message format
US8723705B2 (en) 2004-11-24 2014-05-13 Qualcomm Incorporated Low output skew double data rate serial encoder
US20060184792A1 (en) * 2005-02-17 2006-08-17 Scalable Software Protecting computer systems from unwanted software
US8286233B1 (en) * 2005-03-19 2012-10-09 Avaya Inc. Apparatus and method for preventing eavesdropping
US7647621B2 (en) * 2005-04-22 2010-01-12 Mcafee, Inc. System, method and computer program product for applying electronic policies
CA2553024C (en) * 2005-06-24 2011-05-24 Research In Motion Limited System and method for associating message addresses with certificates
US7363564B2 (en) * 2005-07-15 2008-04-22 Seagate Technology Llc Method and apparatus for securing communications ports in an electronic device
US7761864B2 (en) * 2005-08-09 2010-07-20 Intermec Ip Corp. Method, apparatus and article to load new instructions on processor based devices, for example, automatic data collection devices
US7712132B1 (en) 2005-10-06 2010-05-04 Ogilvie John W Detecting surreptitious spyware
US8107579B2 (en) 2005-10-19 2012-01-31 Qualcomm Atheros Technology Ltd. Configurable baseband in a GPS receiver
TW200745951A (en) * 2005-10-21 2007-12-16 Vir2Us Inc Computer security method having operating system virtualization allowing multiple operating system instances to securely share single machine resources
US20070174916A1 (en) * 2005-10-28 2007-07-26 Ching Peter N Method and apparatus for secure data transfer
US7756893B2 (en) * 2005-11-09 2010-07-13 Microsoft Corporation Independent computation environment and data protection
US8112798B2 (en) * 2005-11-09 2012-02-07 Microsoft Corporation Hardware-aided software code measurement
US8353029B2 (en) 2005-11-10 2013-01-08 Microsoft Corporation On demand protection against web resources associated with undesirable activities
US7831915B2 (en) * 2005-11-10 2010-11-09 Microsoft Corporation Dynamically protecting against web resources associated with undesirable activities
US8730069B2 (en) 2005-11-23 2014-05-20 Qualcomm Incorporated Double data rate serial encoder
US8627109B2 (en) * 2005-11-23 2014-01-07 Hewlett-Packard Development Company, L.P. Method of securing access to a hard disk drive of a computer system with an enhanced security mode
US8692839B2 (en) * 2005-11-23 2014-04-08 Qualcomm Incorporated Methods and systems for updating a buffer
US20070118767A1 (en) * 2005-11-23 2007-05-24 Wolford Jeff W Method of securing access to a hard disk drive of a computer system
US8370928B1 (en) * 2006-01-26 2013-02-05 Mcafee, Inc. System, method and computer program product for behavioral partitioning of a network to detect undesirable nodes
US7845005B2 (en) * 2006-02-07 2010-11-30 International Business Machines Corporation Method for preventing malicious software installation on an internet-connected computer
JP2007265023A (ja) * 2006-03-28 2007-10-11 Fujitsu Ltd 情報処理装置及びその管理方法並びに管理プログラム
US7675867B1 (en) 2006-04-19 2010-03-09 Owl Computing Technologies, Inc. One-way data transfer system with built-in data verification mechanism
US7975304B2 (en) * 2006-04-28 2011-07-05 Trend Micro Incorporated Portable storage device with stand-alone antivirus capability
US7987512B2 (en) * 2006-05-19 2011-07-26 Microsoft Corporation BIOS based secure execution environment
WO2008001344A2 (en) 2006-06-27 2008-01-03 Waterfall Solutions Ltd One way secure link
US20080005560A1 (en) * 2006-06-29 2008-01-03 Microsoft Corporation Independent Computation Environment and Provisioning of Computing Device Functionality
TW200804117A (en) * 2006-07-06 2008-01-16 Sin Etke Technology Co Ltd In-vehicle computer system
US20080127348A1 (en) * 2006-08-31 2008-05-29 Kenneth Largman Network computer system and method using thin user client and virtual machine to provide immunity to hacking, viruses and spy ware
US8056134B1 (en) 2006-09-10 2011-11-08 Ogilvie John W Malware detection and identification via malware spoofing
US20120284790A1 (en) * 2006-09-11 2012-11-08 Decision-Zone Inc. Live service anomaly detection system for providing cyber protection for the electric grid
US7764286B1 (en) * 2006-11-01 2010-07-27 Adobe Systems Incorporated Creating shadow effects in a two-dimensional imaging space
IL180020A (en) 2006-12-12 2013-03-24 Waterfall Security Solutions Ltd Encryption -and decryption-enabled interfaces
US7945955B2 (en) * 2006-12-18 2011-05-17 Quick Heal Technologies Private Limited Virus detection in mobile devices having insufficient resources to execute virus detection software
IL180748A (en) * 2007-01-16 2013-03-24 Waterfall Security Solutions Ltd Secure archive
US8775369B2 (en) 2007-01-24 2014-07-08 Vir2Us, Inc. Computer system architecture and method having isolated file system management for secure and reliable data processing
US8856782B2 (en) 2007-03-01 2014-10-07 George Mason Research Foundation, Inc. On-demand disposable virtual work system
US8438652B2 (en) * 2007-03-23 2013-05-07 Seagate Technology Llc Restricted erase and unlock of data storage devices
US8255988B2 (en) * 2007-03-28 2012-08-28 Microsoft Corporation Direct peripheral communication for restricted mode operation
US20080262998A1 (en) * 2007-04-17 2008-10-23 Alessio Signorini Systems and methods for personalizing a newspaper
US8068415B2 (en) * 2007-04-18 2011-11-29 Owl Computing Technologies, Inc. Secure one-way data transfer using communication interface circuitry
US8139581B1 (en) 2007-04-19 2012-03-20 Owl Computing Technologies, Inc. Concurrent data transfer involving two or more transport layer protocols over a single one-way data link
US7941526B1 (en) 2007-04-19 2011-05-10 Owl Computing Technologies, Inc. Transmission of syslog messages over a one-way data link
US8352450B1 (en) 2007-04-19 2013-01-08 Owl Computing Technologies, Inc. Database update through a one-way data link
US7992209B1 (en) 2007-07-19 2011-08-02 Owl Computing Technologies, Inc. Bilateral communication using multiple one-way data links
US20090037610A1 (en) * 2007-07-31 2009-02-05 Krancher Robort E Electronic device interface control system
EP2206358B1 (en) * 2007-09-24 2014-07-30 Sound Innovations, LLC In-ear digital electronic noise cancelling and communication device
US8223205B2 (en) * 2007-10-24 2012-07-17 Waterfall Solutions Ltd. Secure implementation of network-based sensors
US8108336B2 (en) * 2007-11-06 2012-01-31 Rovi Solutions Corporation Computer enabled method and apparatus to inhibit content and other copying
FR2926375B1 (fr) * 2008-01-11 2010-02-12 Airbus France Procede d'execution d'une application informatique, kit et aeronef associes
US8543998B2 (en) * 2008-05-30 2013-09-24 Oracle International Corporation System and method for building virtual appliances using a repository metadata server and a dependency resolution service
US8862633B2 (en) 2008-05-30 2014-10-14 Novell, Inc. System and method for efficiently building virtual appliances in a hosted environment
JP5217647B2 (ja) * 2008-06-04 2013-06-19 富士通株式会社 情報処理装置および情報処理方法
US8323503B2 (en) * 2008-06-11 2012-12-04 Fresenius Medical Care Holdings, Inc. User interface processing device
US7530106B1 (en) * 2008-07-02 2009-05-05 Kaspersky Lab, Zao System and method for security rating of computer processes
US9098698B2 (en) 2008-09-12 2015-08-04 George Mason Research Foundation, Inc. Methods and apparatus for application isolation
US20100106537A1 (en) * 2008-10-23 2010-04-29 Kei Yuasa Detecting Potentially Unauthorized Objects Within An Enterprise
US20100107148A1 (en) * 2008-10-28 2010-04-29 International Business Machines Corporation Check-stopping firmware implemented virtual communication channels without disabling all firmware functions
JP4947069B2 (ja) * 2009-02-19 2012-06-06 日本電気株式会社 ネットワークセキュリティシステムおよびリモートマシン隔離方法
KR101493076B1 (ko) * 2009-04-07 2015-02-12 삼성전자 주식회사 버퍼 오버플로우 관리를 통한 바이러스 코드 실행방지장치 및 그 방법
GB2469308B (en) * 2009-04-08 2014-02-19 F Secure Oyj Disinfecting a file system
US9305189B2 (en) 2009-04-14 2016-04-05 Owl Computing Technologies, Inc. Ruggedized, compact and integrated one-way controlled interface to enforce confidentiality of a secure enclave
RU2413290C2 (ru) * 2009-04-16 2011-02-27 Николай Иванович Пальченко Архитектура компьютера с автономными модулями
US20100306774A1 (en) * 2009-05-28 2010-12-02 Subash Kalbarga Instant-On Computing System
US8839422B2 (en) 2009-06-30 2014-09-16 George Mason Research Foundation, Inc. Virtual browsing environment
US20110029865A1 (en) * 2009-07-31 2011-02-03 Nellcor Puritan Bennett Llc Control Interface For A Medical Monitor
US20110060945A1 (en) * 2009-09-08 2011-03-10 Softthinks Sas Smart repair of computer systems
US10242182B2 (en) 2009-10-23 2019-03-26 Secure Vector, Llc Computer security system and method
US9454652B2 (en) 2009-10-23 2016-09-27 Secure Vector, Llc Computer security system and method
US8775802B1 (en) 2009-10-23 2014-07-08 Secure Vector Computer security system and method
US8429429B1 (en) * 2009-10-23 2013-04-23 Secure Vector, Inc. Computer security system and method
US20110111863A1 (en) * 2009-11-12 2011-05-12 Daniel Kaminsky Method and apparatus for securing networked gaming devices
US8499304B2 (en) * 2009-12-15 2013-07-30 At&T Mobility Ii Llc Multiple mode mobile device
US8255986B2 (en) * 2010-01-26 2012-08-28 Frampton E. Ellis Methods of securely controlling through one or more separate private networks an internet-connected computer having one or more hardware-based inner firewalls or access barriers
US8429735B2 (en) 2010-01-26 2013-04-23 Frampton E. Ellis Method of using one or more secure private networks to actively configure the hardware of a computer or microchip
US8955131B2 (en) 2010-01-27 2015-02-10 Mcafee Inc. Method and system for proactive detection of malicious shared libraries via a remote reputation system
US8819826B2 (en) 2010-01-27 2014-08-26 Mcafee, Inc. Method and system for detection of malware that connect to network destinations through cloud scanning and web reputation
US9390263B2 (en) 2010-03-31 2016-07-12 Sophos Limited Use of an application controller to monitor and control software file and application environments
US8914879B2 (en) 2010-06-11 2014-12-16 Trustwave Holdings, Inc. System and method for improving coverage for web code
WO2012012266A2 (en) 2010-07-19 2012-01-26 Owl Computing Technologies. Inc. Secure acknowledgment device for one-way data transfer system
US9536089B2 (en) * 2010-09-02 2017-01-03 Mcafee, Inc. Atomic detection and repair of kernel memory
CO6430045A1 (es) 2011-04-26 2012-04-30 Azuan Technologies S A Mecanismo para aseguramiento de transacciones electronicas
US20120324561A1 (en) * 2011-06-15 2012-12-20 Michael A Kavanagh ROAD BLOCK the next evolution of security software for network operations
US9172678B2 (en) 2011-06-28 2015-10-27 At&T Intellectual Property I, L.P. Methods and apparatus to improve security of a virtual private mobile network
US8893278B1 (en) * 2011-07-12 2014-11-18 Trustwave Holdings, Inc. Detecting malware communication on an infected computing device
US9013366B2 (en) * 2011-08-04 2015-04-21 Microsoft Technology Licensing, Llc Display environment for a plurality of display devices
DE102011116407A1 (de) * 2011-10-19 2013-04-25 embedded projects GmbH Mobile Recheneinheit
US9081959B2 (en) 2011-12-02 2015-07-14 Invincea, Inc. Methods and apparatus for control and detection of malicious content using a sandbox environment
JP5427911B2 (ja) * 2012-04-11 2014-02-26 Eizo株式会社 カーソル移動制御方法、コンピュータプログラム、カーソル移動制御装置及び画像表示システム
US9635037B2 (en) 2012-09-06 2017-04-25 Waterfall Security Solutions Ltd. Remote control of secure installations
US9135439B2 (en) 2012-10-05 2015-09-15 Trustwave Holdings, Inc. Methods and apparatus to detect risks using application layer protocol headers
US9740390B2 (en) * 2013-03-11 2017-08-22 Spikes, Inc. Dynamic clip analysis
US10142406B2 (en) 2013-03-11 2018-11-27 Amazon Technologies, Inc. Automated data center selection
US9148350B1 (en) 2013-03-11 2015-09-29 Amazon Technologies, Inc. Automated data synchronization
US10313345B2 (en) 2013-03-11 2019-06-04 Amazon Technologies, Inc. Application marketplace for virtual desktops
US9002982B2 (en) 2013-03-11 2015-04-07 Amazon Technologies, Inc. Automated desktop placement
US9501645B2 (en) * 2013-03-15 2016-11-22 Rudolf H. Hendel System and method for the protection of computers and computer networks against cyber threats
US9419975B2 (en) 2013-04-22 2016-08-16 Waterfall Security Solutions Ltd. Bi-directional communication over a one-way link
US10623243B2 (en) 2013-06-26 2020-04-14 Amazon Technologies, Inc. Management of computing sessions
US10686646B1 (en) 2013-06-26 2020-06-16 Amazon Technologies, Inc. Management of computing sessions
US20150019728A1 (en) * 2013-06-26 2015-01-15 Amazon Technologies, Inc. Management of computing sessions
CN104750536B (zh) * 2013-12-30 2018-08-21 华为技术有限公司 一种实现虚拟机自省的方法和装置
CN106233243B (zh) * 2014-04-30 2021-02-12 惠普发展公司,有限责任合伙企业 多架构管理器
US10795707B2 (en) * 2014-05-14 2020-10-06 Peter McClelland Hay Systems and methods for ensuring computer system security via a virtualized layer of application abstraction
US9575987B2 (en) 2014-06-23 2017-02-21 Owl Computing Technologies, Inc. System and method for providing assured database updates via a one-way data link
US9690823B2 (en) 2014-09-25 2017-06-27 Dropbox, Inc. Synchronizing copies of an extent in an append-only storage system
US9720607B2 (en) * 2014-09-25 2017-08-01 Dropbox, Inc. Append-only storage system supporting open and closed extents
US9772783B2 (en) 2014-09-25 2017-09-26 Dropbox, Inc. Constructing an index to facilitate accessing a closed extent in an append-only storage system
US9553843B1 (en) 2014-10-08 2017-01-24 Google Inc. Service directory profile for a fabric network
IL235175A (en) 2014-10-19 2017-08-31 Frenkel Lior Secure desktop remote control
DE102014226239A1 (de) * 2014-12-17 2016-06-23 Kuka Roboter Gmbh Verfahren zum sicheren Einkoppeln eines Eingabegerätes
KR101814897B1 (ko) * 2016-02-11 2018-01-04 라인 가부시키가이샤 파일 보호 방법 및 시스템
IL250010B (en) 2016-02-14 2020-04-30 Waterfall Security Solutions Ltd Secure connection with protected facilities
US9912687B1 (en) 2016-08-17 2018-03-06 Wombat Security Technologies, Inc. Advanced processing of electronic messages with attachments in a cybersecurity system
US10262144B2 (en) * 2016-12-15 2019-04-16 International Business Machines Corporation Verifying proper operation of the instruction execution protection architecture
US20190147164A1 (en) * 2017-11-11 2019-05-16 Robert P. Wing Novel methodology, process and program for the repair of disabled, badly infected or slow windows computers
DE102018112364A1 (de) * 2018-05-23 2019-11-28 Fujitsu Technology Solutions Intellectual Property Gmbh Verfahren zum Bereitstellen anwendungsorientierter Software sowie Computersystem
US11609845B2 (en) * 2019-05-28 2023-03-21 Oracle International Corporation Configurable memory device connected to a microprocessor
US10922012B1 (en) 2019-09-03 2021-02-16 Dropbox, Inc. Fair data scrubbing in a data storage system
US10762198B1 (en) * 2019-09-25 2020-09-01 Richard Dea Artificial intelligence system and method for instantly identifying and blocking unauthorized cyber intervention into computer application object code
US11394782B2 (en) 2019-11-17 2022-07-19 Daniel Donahue Flight management systems and methods
US11029939B1 (en) 2020-01-06 2021-06-08 Capital One Services, Llc Dual-core ATM
US11720504B2 (en) * 2021-04-15 2023-08-08 Apple Inc. Secure storage of datasets in a thread network device
US11729195B1 (en) 2022-09-15 2023-08-15 Cyviation Ltd Computerized-system and computerized-method for detecting cyber-attacks on avionic communications of an airborne computerized-device

Family Cites Families (80)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4464747A (en) 1982-02-18 1984-08-07 The Singer Company High reliability memory
US4939694A (en) 1986-11-03 1990-07-03 Hewlett-Packard Company Defect tolerant self-testing self-repairing memory system
US5434562A (en) 1991-09-06 1995-07-18 Reardon; David C. Method for limiting computer access to peripheral devices
US5205527A (en) * 1992-02-14 1993-04-27 Bow-Wow Parts Of B.C. Ltd. Rack and method for mounting reading material
US6381694B1 (en) 1994-02-18 2002-04-30 Apple Computer, Inc. System for automatic recovery from software problems that cause computer failure
CA2191205A1 (en) * 1994-06-01 1995-12-07 John Schnurer Computer virus trap
JP3365581B2 (ja) 1994-07-29 2003-01-14 富士通株式会社 自己修復機能付き情報処理装置
JP3200661B2 (ja) 1995-03-30 2001-08-20 富士通株式会社 クライアント/サーバシステム
US5826012A (en) 1995-04-21 1998-10-20 Lettvin; Jonathan D. Boot-time anti-virus and maintenance facility
JP3512264B2 (ja) 1995-05-08 2004-03-29 富士通株式会社 光増幅装置
US5889943A (en) * 1995-09-26 1999-03-30 Trend Micro Incorporated Apparatus and method for electronic mail virus detection and elimination
US6327653B1 (en) 1995-11-07 2001-12-04 Samsung Electronics Co., Ltd. Technique for easily changing operating systems of a digital computer system using at least two pushbuttons
US5764878A (en) 1996-02-07 1998-06-09 Lsi Logic Corporation Built-in self repair system for embedded memories
US5732268A (en) 1996-02-26 1998-03-24 Award Software International Extended BIOS adapted to establish remote communication for diagnostics and repair
US5894551A (en) 1996-06-14 1999-04-13 Huggins; Frank Single computer system having multiple security levels
US5841712A (en) 1996-09-30 1998-11-24 Advanced Micro Devices, Inc. Dual comparator circuit and method for selecting between normal and redundant decode logic in a semiconductor memory device
GB9622684D0 (en) 1996-10-31 1997-01-08 Sgs Thomson Microelectronics An integrated circuit device and method of communication therwith
US6202153B1 (en) * 1996-11-22 2001-03-13 Voltaire Advanced Data Security Ltd. Security switching device
US5969632A (en) * 1996-11-22 1999-10-19 Diamant; Erez Information security method and apparatus
US6009518A (en) 1997-01-15 1999-12-28 Shiakallis; Peter Paul Computer system for providing improved security for stored information
CA2197502A1 (en) 1997-02-13 1998-08-13 Joseph Skobla Multiple user secure hard drive interface
US5974549A (en) * 1997-03-27 1999-10-26 Soliton Ltd. Security monitor
US5860001A (en) 1997-05-19 1999-01-12 International Business Machines Corporation Computer system having at least two boot sequences
US6088764A (en) * 1997-07-14 2000-07-11 International Business Machines Corporation Method and apparatus for reducing space allocation failures in storage management systems
KR100502400B1 (ko) 1997-07-31 2005-11-03 삼성전자주식회사 복수의주변저장장치선택제어기능을갖는컴퓨터및그선택제어방법
US6016553A (en) 1997-09-05 2000-01-18 Wild File, Inc. Method, software and apparatus for saving, using and recovering data
US5920515A (en) 1997-09-26 1999-07-06 Advanced Micro Devices, Inc. Register-based redundancy circuit and method for built-in self-repair in a semiconductor memory device
US6170055B1 (en) 1997-11-03 2001-01-02 Iomega Corporation System for computer recovery using removable high capacity media
DE19752615C1 (de) * 1997-11-27 1999-04-08 Siemens Nixdorf Inf Syst Verfahren und Anordnung zum Laden von Daten für grundlegende Systemroutinen eines Datenverarbeitungssystems
US6205527B1 (en) 1998-02-24 2001-03-20 Adaptec, Inc. Intelligent backup and restoring system and method for implementing the same
US6374366B1 (en) 1998-02-24 2002-04-16 Adaptec, Inc. Automated drive repair systems and methods
US6289426B1 (en) 1998-02-24 2001-09-11 Adaptec, Inc. Drive preparation methods for intelligent backup systems
JP3693807B2 (ja) 1998-03-17 2005-09-14 富士通株式会社 クライアント/サーバシステム、コンピュータ及び記録媒体
US6067618A (en) 1998-03-26 2000-05-23 Innova Patent Trust Multiple operating system and disparate user mass storage resource separation for a computer system
US20020095557A1 (en) 1998-06-22 2002-07-18 Colin Constable Virtual data storage (VDS) system
US6347375B1 (en) 1998-07-08 2002-02-12 Ontrack Data International, Inc Apparatus and method for remote virus diagnosis and repair
US6457069B1 (en) 1998-07-23 2002-09-24 Compaq Information Technologies Group, L.P. Method and apparatus for providing support for dynamic resource assignment and configuration of peripheral devices when enabling or disabling plug-and-play aware operating systems
EP0978785A1 (en) 1998-08-07 2000-02-09 Hewlett-Packard Company Data backup and recovery
US6577920B1 (en) 1998-10-02 2003-06-10 Data Fellows Oyj Computer virus screening
US6691230B1 (en) * 1998-10-15 2004-02-10 International Business Machines Corporation Method and system for extending Java applets sand box with public client storage
US6421792B1 (en) 1998-12-03 2002-07-16 International Business Machines Corporation Data processing system and method for automatic recovery from an unsuccessful boot
US6367042B1 (en) 1998-12-11 2002-04-02 Lsi Logic Corporation Testing methodology for embedded memories using built-in self repair and identification circuitry
US6938096B1 (en) 1999-04-12 2005-08-30 Softricity, Inc. Method and system for remote networking using port proxying by detecting if the designated port on a client computer is blocked, then encapsulating the communications in a different format and redirecting to an open port
SE516759C2 (sv) 1999-08-10 2002-02-26 Niklas Danielsson Säkerhetsanordning för att skydda hårddiskenhet i en dator
US6697950B1 (en) 1999-12-22 2004-02-24 Networks Associates Technology, Inc. Method and apparatus for detecting a macro computer virus using static analysis
US6640317B1 (en) 2000-04-20 2003-10-28 International Business Machines Corporation Mechanism for automated generic application damage detection and repair in strongly encapsulated application
US7096381B2 (en) 2001-05-21 2006-08-22 Self Repairing Computer, Inc. On-the-fly repair of a computer
US7137034B2 (en) 2000-05-19 2006-11-14 Vir2Us, Inc. Self repairing computer having user accessible switch for modifying bootable storage device configuration to initiate repair
US7111201B2 (en) 2000-05-19 2006-09-19 Self Repairing Computers, Inc. Self repairing computer detecting need for repair and having switched protected storage
AU2001263377B2 (en) * 2000-05-19 2005-03-17 Vir2Us, Inc. A computer with switchable components
US7100075B2 (en) 2000-05-19 2006-08-29 Sel Repairing Computers, Inc. Computer system having data store protected from internet contamination by virus or malicious code and method for protecting
GB2357939B (en) 2000-07-05 2002-05-15 Gfi Fax & Voice Ltd Electronic mail message anti-virus system and method
US6754818B1 (en) 2000-08-31 2004-06-22 Sun Microsystems, Inc. Method and system for bootstrapping from a different boot image when computer system is turned on or reset
GB2367656A (en) 2000-10-06 2002-04-10 Hewlett Packard Co Self-repairing operating system for computer entities
US6938164B1 (en) * 2000-11-22 2005-08-30 Microsoft Corporation Method and system for allowing code to be securely initialized in a computer
US7073173B1 (en) * 2000-12-04 2006-07-04 Microsoft Corporation Code and thread differential addressing via multiplex page maps
US20020078366A1 (en) 2000-12-18 2002-06-20 Joseph Raice Apparatus and system for a virus-resistant computing platform
US6859876B2 (en) 2000-12-29 2005-02-22 Hewlett-Packard Development Company, L.P. System and method for detecting and using a replacement boot block during initialization by an original boot block
US20020105973A1 (en) * 2001-02-02 2002-08-08 Mitsubishi Wireless Communications, Inc Systems and methods for improved time slot synchronization using enhanced two-times oversampling
US20020174137A1 (en) 2001-05-15 2002-11-21 Wolff Daniel Joseph Repairing alterations to computer files
US7028305B2 (en) 2001-05-16 2006-04-11 Softricity, Inc. Operating system abstraction and protection layer
US7392541B2 (en) 2001-05-17 2008-06-24 Vir2Us, Inc. Computer system architecture and method providing operating-system independent virus-, hacker-, and cyber-terror-immune processing environments
WO2002099642A1 (en) 2001-05-17 2002-12-12 Self Repairing Computers, Inc. A computer with fault-tolerant booting
US7849360B2 (en) 2001-05-21 2010-12-07 Vir2Us, Inc. Computer system and method of controlling communication port to prevent computer contamination by virus or malicious code
US7698713B2 (en) 2001-09-20 2010-04-13 Google Inc. Altered states of software component behavior
US7243230B2 (en) * 2001-11-16 2007-07-10 Microsoft Corporation Transferring application secrets in a trusted operating system environment
US7159240B2 (en) * 2001-11-16 2007-01-02 Microsoft Corporation Operating system upgrades in a trusted operating system environment
US7137004B2 (en) * 2001-11-16 2006-11-14 Microsoft Corporation Manifest-based trusted agent management in a trusted operating system environment
US7536598B2 (en) 2001-11-19 2009-05-19 Vir2Us, Inc. Computer system capable of supporting a plurality of independent computing environments
US20030105973A1 (en) 2001-12-04 2003-06-05 Trend Micro Incorporated Virus epidemic outbreak command system and method using early warning monitors in a network environment
AU2003216472A1 (en) 2002-03-01 2003-09-16 Green Border Technologies Method and system for assured denotation of application semantics
AU2003233507A1 (en) 2002-05-10 2003-11-11 Green Border Technologies Methods and systems for providing a secure application environment using derived user accounts
US7409717B1 (en) 2002-05-23 2008-08-05 Symantec Corporation Metamorphic computer virus detection
EP1525522A2 (en) 2002-06-06 2005-04-27 Green Border Technologies Method and system for implementing a secure application execution environment using derived user accounts for internet content
EP1547337B1 (en) 2002-07-26 2006-03-22 Green Border Technologies Watermarking at the packet level
US7519814B2 (en) 2003-09-15 2009-04-14 Trigence Corp. System for containerization of application sets
WO2005043360A1 (en) 2003-10-21 2005-05-12 Green Border Technologies Systems and methods for secure client applications
KR101470712B1 (ko) 2004-07-20 2014-12-08 마이크로소프트 코포레이션 컴퓨터 애플리케이션에서의 데이터 손실을 최소화하기 위한 방법 및 시스템
EP1771785A2 (en) 2004-07-21 2007-04-11 Softricity, Inc. System and method for extraction and creation of application meta-information within a software application repository
US20060137013A1 (en) * 2004-12-06 2006-06-22 Simon Lok Quarantine filesystem

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102844741A (zh) * 2010-02-23 2012-12-26 美国宇航公司 单处理器3级电子飞行包
CN102844741B (zh) * 2010-02-23 2016-10-12 美国宇航公司 单处理器3级电子飞行包
CN102959557A (zh) * 2010-07-26 2013-03-06 金基容 黑客病毒安全综合管理设备
CN108836271A (zh) * 2012-07-24 2018-11-20 日本光电工业株式会社 生命体征测量装置
CN103577469A (zh) * 2012-08-03 2014-02-12 深圳市腾讯计算机***有限公司 数据库连接复用方法和装置
CN103577469B (zh) * 2012-08-03 2017-12-01 深圳市腾讯计算机***有限公司 数据库连接复用方法和装置
CN102902576A (zh) * 2012-09-26 2013-01-30 北京奇虎科技有限公司 一种渲染网页的方法、服务器和***
CN102902576B (zh) * 2012-09-26 2014-12-24 北京奇虎科技有限公司 一种渲染网页的方法、服务器和***
CN103268278A (zh) * 2013-06-14 2013-08-28 苏州国芯科技有限公司 支持多核处理器的sram控制器及其跟踪信息处理方法
CN103268278B (zh) * 2013-06-14 2016-12-28 苏州国芯科技有限公司 支持多核处理器的sram控制器及其跟踪信息处理方法
CN105678164B (zh) * 2014-11-20 2018-08-14 华为技术有限公司 检测恶意软件的方法及装置
CN105678164A (zh) * 2014-11-20 2016-06-15 华为技术有限公司 检测恶意软件的方法及装置
US10565371B2 (en) 2014-11-20 2020-02-18 Huawei Technologies Co., Ltd. Malware detection method and malware detection apparatus
US10963558B2 (en) 2014-11-20 2021-03-30 Huawei Technologies Co., Ltd. Malware detection method and malware detection apparatus
CN109412897A (zh) * 2018-11-15 2019-03-01 紫光测控有限公司 基于多核处理器及fpga的共享mac实现***及方法
CN109412897B (zh) * 2018-11-15 2021-12-21 清能华控科技有限公司 基于多核处理器及fpga的共享mac实现***及方法
CN113474739A (zh) * 2019-02-19 2021-10-01 戴姆勒股份公司 控制装置和接管控制方法
CN112306863A (zh) * 2020-10-15 2021-02-02 北京沃东天骏信息技术有限公司 环境治理方法和装置、计算机装置和计算机可读存储介质
CN113792869A (zh) * 2021-09-16 2021-12-14 北京中星天视科技有限公司 基于神经网络芯片的视频处理方法、装置和电子设备
CN113792869B (zh) * 2021-09-16 2024-05-10 北京中星天视科技有限公司 基于神经网络芯片的视频处理方法、装置和电子设备

Also Published As

Publication number Publication date
US20080244743A1 (en) 2008-10-02
US7392541B2 (en) 2008-06-24
US20040236874A1 (en) 2004-11-25
WO2005074434A2 (en) 2005-08-18
WO2005074434A3 (en) 2007-08-30

Similar Documents

Publication Publication Date Title
CN1954297A (zh) 在具有病毒、间谍软件以及黑客防护特征的虚拟处理空间中的隔离复用多维处理
US20100005531A1 (en) Isolated multiplexed multi-dimensional processing in a virtual processing space having virus, spyware, and hacker protection features
CN104662552B (zh) 安全的盘访问控制
CN103748594B (zh) 针对arm*trustzonetm实现的基于固件的可信平台模块
US6363486B1 (en) Method of controlling usage of software components
US7624283B2 (en) Protocol for trusted platform module recovery through context checkpointing
CN107003866A (zh) 来自加密模板的加密虚拟机的安全创建
CN104246698A (zh) 弹性操作***电脑
US20040210796A1 (en) Computer system capable of supporting a plurality of independent computing environments
CN107533608A (zh) 可信更新
CN103002445A (zh) 一种安全的提供应用服务的移动电子设备
JPH10313309A (ja) 国際暗号法フレームワークでアプリケーションが一定のサービスクラスを合法的に実行することを認証する装置
JP2007524161A (ja) ウイルス、スパイウェア及びハッカー保護特徴を有する仮想処理空間における分離マルチプレクス型多次元処理
CN103959247A (zh) 虚拟化计算机程序中的安全
CN103119560A (zh) 用于服务处理器复合体中的数据存储的基于需求的usb代理
CN102289622A (zh) 基于认证策略文件和硬件信息收集的可信开机启动方法
CN109154903A (zh) 用于虚拟机的恢复环境
KR101032386B1 (ko) 가상 머신을 이용한 응용 프로그램 제공 방법 및 시스템,가상 응용 프로그램 수행 방법, 가상 머신 모듈 및 온라인서비스 제공 방법
EP3811217A1 (en) Data backup system and method
US20040105547A1 (en) Software protection
KR20060135757A (ko) 바이러스, 스파이웨어, 및 해커 보호 특성을 갖는 가상처리 공간에서의 분리된 멀티플렉싱 다차원 처리
Halsey Windows 10 Troubleshooting
JP2005535003A (ja) 複数の独立コンピューティング環境をサポートすることができるコンピュータシステム
Meade Wang Government Services, Incorporated XTS-300
Kassahu Operating Systems Administration

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Open date: 20070425