CN102473089B - 用于双操作系统的文件系统 - Google Patents

用于双操作系统的文件系统 Download PDF

Info

Publication number
CN102473089B
CN102473089B CN201080037987.4A CN201080037987A CN102473089B CN 102473089 B CN102473089 B CN 102473089B CN 201080037987 A CN201080037987 A CN 201080037987A CN 102473089 B CN102473089 B CN 102473089B
Authority
CN
China
Prior art keywords
file
daily record
ntfs
windows
context
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.)
Expired - Fee Related
Application number
CN201080037987.4A
Other languages
English (en)
Other versions
CN102473089A (zh
Inventor
B.高拉夫
R.布拉姆利
D.V.R.马哈瓦
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.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
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
Application filed by Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of CN102473089A publication Critical patent/CN102473089A/zh
Application granted granted Critical
Publication of CN102473089B publication Critical patent/CN102473089B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • G06F9/441Multiboot arrangements, i.e. selecting an operating system to be loaded
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/188Virtual file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Hardware Redundancy (AREA)

Abstract

公开了用于管理、激活以及控制在计算装置内或在单一计算机操作会话或上下文内的两个或更多O/S(操作系统)等之中的文件系统共享的方法、系统、装置和程序产品。提供了即使在多个O/S的至少一个不具有考虑其他O/S存在的特征的情况下的文件系统的日志记载和再同步。

Description

用于双操作系统的文件系统
技术领域
本发明总体上涉及共享相似架构的个人计算机和设备,更具体地说,涉及用于管理、激活和控制在计算装置内或在单一计算机操作会话或上下文内的两个或更多O/S(操作系统)等之中的文件系统共享的系统和对应的方法。
背景技术
在现代,越来越包括所谓的膝上型计算机和笔记本计算机的PC(个人计算机)的使用,正在日益普及,并且计算机本身日益增强计算机能力、减少热功率并且甚至更复杂。
较老的PC具有单一及支配性(overarching)控制软件,通常是窗口O/S(操作系统),例如Microsoft?Vista?(商业产品)或具有GNOME(开源程序)的Linux?。
商业Windows?产品和开源O/S均具有出众的优势,越来越多的膝上型计算机的买家希望具有并使用二者。在单一计算机上同时提供多个O/S程序产品提出了多种挑战,包括多引导、支持ACPI的加载和具有相关硬件支持的可视化系统管理程序。
由于跨O/S共享数据以及因此共享FS(文件系统),出现了另一问题。在多个O/S在单一操作会话内或以有效同时或连续地且交替地操作的情况下,这尤其是一个问题。典型的是,对于PC而言,操作会话是从POST(加电自检)至有序的O/S关闭以及通常的断电的序列。互斥、资源锁定和类似技术在计算领域是公知的,其中,多个实体(执行线程、处理器核心、分布式处理器等)需要有效地共享数据文件资源。在计算中的此类情形已经通过协作软件流程普遍得到了解决,以确保有序的资源共享,或者至少有序的资源分配。然而,当闭源O/S(通过设计)不知道其他O/S时,无法预计闭源O/S会促进与另一O/S的资源共享。
文件在两个或更多O/S之间同时可用或交替可用的情况下,需要一种较不一般的解决方案,并且本发明解决至少一种这样的情形。具体而言,在闭源O/S实施高级或复杂数据处理特征的情况下,例如,日志化(journalizing)或检查点/回滚,那么,其可能看起来对另一O/S表现不佳(或者至少不是表现得易于理解)。本发明解决一种尤其常见的情形,甚至更多。
先前的解决方案已经包括使每个O/S完全控制其自己的FS(文件系统),该FS然后被另一O/S视为RO(只读)。不仅其能力受到不恰当的限制,而且,当由使FS对于RW(读-写)开放的O/S在会话中使FS处于奇态或其他未记录(undocumented)状态中时,甚至可能无法产生一致的结果。在某些情形中,这种FS甚至可以被检测为无法安装(un-mountable)(或损坏),甚至对于RO,处于能够对其进行RW访问的O/S的上下文之外。
本发明实施例优于先前开发的解决方案的一个显著优势是,在不需要在单一操作会话内的O/S上下文的切换之间关闭并重启文件系统(以及隐含着重启操作系统)的情况下,在多于一个O/S之间来回切换执行变成可能。
发明内容
本发明提供用于操作计算机的方法以及还提供实施该方法的设备。此外,提出了使用本发明的程序产品和其他装置。
根据本发明的一个方面,本发明的实施例可以提供:加载两个O/S,安装由第二O/S控制并且由第一O/S只读访问的第一FS(文件系统),安装由第一O/S控制的日志(journal)。此外,将从第一O/S下的应用程序写入的数据重定向到日志,然后恢复第二O/S的执行,并且将日志应用于第二O/S的上下文中的第一FS。
由本发明提供的或从实施本发明所得到的一种优势和/或特征是,在两个O/S中的一个变成挂起而另一个变成活动时,两个O/S可以在单一文件系统内交替使用文件。
附图说明
在结合下列附图进行的下文对本发明的详细描述的回顾时,本发明的前述和相关优势和特征将变得更好理解和认识,附图被包含在本说明书中并构成其部分,示出了本发明的实施例,并且其中相同数字表示相同要素,且其中:
图1是根据本发明被配置成实施安全功能的电子设备的示意性框图;
图2和图3结合在一起形成了在实施本发明的实施例中执行的步骤的某些的概览的流程图;
图4是示出了本发明的实施例的某些软件组件之间的关系的图;
图5示出了可以如何将本发明的一个示例性实施例编码到一个或多个计算机介质上;以及
图6示出了可以如何使用电磁波来编码、传输、接收和解码本发明的示例性实施例。
具体实施方式
提供了在附图中示出的多个组件以为本领域的普通技术人员提供对本发明的透彻的、开放的公开。在本描述内未包含对公知组件的描述,以避免使本公开晦涩难懂或者剥夺了或以其他方式减少了本发明的新颖性以及由此提供的主要益处。
现在将参考附图来描述本发明的示例性实施例。图1是根据本发明的被配置成实现安全功能的电子设备的示意性框图。
在一个示例性实施例中,电子设备10可以被实施为个人计算机,例如台式计算机、膝上型计算机、平板计算机或其他适当的计算设备。虽然该描述略述了个人计算机的操作,但本领域的普通技术人员将理解的是,电子设备10可以被实施为PDA、无线通信设备,例如蜂窝电话、嵌入式控制器或设备,例如机顶盒、打印设备或其他适当的设备或适合于利用本发明操作或互操作的它们的组合。
电子设备10可以包含至少一个处理器或CPU(中央处理单元)12,其被配置成控制电子设备10的全面操作。类似控制器或MPU(微处理器单元)是常见的。典型地,处理器12可以通过诸如FSB(前侧总线)的总线13被耦合至诸如北桥芯片的总线控制器14。典型地,总线控制器14可以为诸如RAM(随机访问存储器)的读写系统存储器16提供接口。
在普通操作中,CPU 12可以从系统存储器16取得计算机指令(也被称为计算机指令代码,未在图1中示出)。然后,CPU可以解释取到的计算机指令并且操作以解释所述指令由此控制电子设备10的操作。CPU、系统存储器和典型地包括OS(操作系统)代码和其他软件的计算机指令的这种使用在计算领域中是公知的。
例如,在典型的Intel?类型实施例中,总线控制器14也可以被耦合至系统总线18,例如DMI(直接媒体接口)。耦合到DMI 18可以是诸如Intel? ICH8(输入/输出控制器集线器类型8)芯片24的所谓的南桥芯片。
在一个典型的实施例中,南桥芯片24可以连接至PCI(外围组件互连)总线22,其可以进而连接至磁盘存储子系统66,磁盘存储子系统66可以提供在本发明实施例中所使用的各种FS(文件系统)。这里结束了对图1的讨论。
来自Phoenix Technologies?公司的HyperSpace?产品家族实现了以各种方式在单一计算机上提供多个O/S程序产品。HyperSpace?产品存在若干变体,尤其使用双引导、双恢复或虚拟机的技术——后者需要在今天的膝上型计算机产品中很难普遍找到的硬件支持。HyperSpace?产品的双引导版本不提供同时加载,而是要求在加载第二O/S并允许其控制PC之前关闭第一O/S。
HyperSpace?产品的双恢复版本确实促进了第一和第二O/S的同时加载,如HyperSpace?产品所定向的,所述OS例如流线型的类似Linux?的O/S以及诸如来自Microsoft?公司的那些之一的功能丰富的闭源O/S。基本上,在HyperSpace?产品的双恢复版本中,两个O/S被同时加载,但在任何时刻,在用户层级,仅选定一个是活动的。顾名思义,在O/S之间的切换涉及使一个O/S处于静止状态并且将另一O/S从其先前静止状态“恢复”(回复)到更活动的状态。因此,在本发明所描述的实施例中,在任何时间,仅一个O/S在应用层级是活动的。
HyperSpace?产品的双恢复版本提供在两个目标O/S之间的有限文件共享。HyperSpace?产品的类似Linux的O/S侧通常称为仅HS(HyperSpace?的缩写),并且另一方面,从Microsoft?公司选择的任何现代O/S产品之一通常被称为“Windows”,这是计算域中常用的一般术语。尽管如此,Windows?也是Microsoft?公司获得承认的注册商标,并且来自MIT(麻省理工学院)的X-Windows是开源程序产品。
各种HyperSpace?固件/软件产品的一个关键特征当然是其允许FS(以及因此文件)在Windows?上下文与同时的HS(HyperSpace?的类似Linux的O/S)上下文之间被共享。在下文对具体实施例的描述中,已经被实现的特定文件系统,诸如NTFS、FAT32、Windows PSA、ext3(等,所有这些在本领域中是公知的)应被视为提供对示例性FS的开放描述。本发明总体上不限于所描述的那些特定O/S,它们仅被用作范例性示例。
一种裸机(bare-bones)并且仅勉强可接受的基本实施方式(借鉴自常见的Linux?分发)将开发使用未修改的NTFS-3g(第三代新技术文件系统)驱动器,以从HyperSpace?上下文内安装并访问被指定为C:、D:等的存储卷。使用双引导技术,允许(从类似Linux的O/S)对由Windows生成的(并且维护的)FS的安全只读访问的这种类型的实施方式是勉强可接收的。在双恢复产品中,这种限制对于绝大多数用户可能是完全不可接受的。
一般而言,向FS写入由NTFS-3g驱动器支持,但是没有进一步的预防或补救措施,实际使用这种特征可能(并且可能会)导致问题,这些问题来自于通过诸如MS NTFS VSS(Microsoft?公司的NTFS卷快照服务)以及数据日志化特征的高级特征的NTFS-3g的非完整实现。MS NTFS VSS在本领域中是公知的。
抓住机会以解决上述困难的部分可以涉及限制在NTFS-3g内的读写访问,以便提供对于目标卷的仅有限子集的完全读写访问。这样做限制了复杂的范围,同时提供了对最可能被认为是其读写访问对于用户有价值的那些文件的完全NTFS-3g访问。以这种方式限制范围,允许软件保持到最少值,因而避免了消耗过多资源的风险。
在本发明的一个实施例中,从HS侧(运行Linux?的变体)的Windows?文件的读写访问被限于FS的较小的受控部分。在一个特定实施例中,实现对“我的文档文件夹”的读写访问。“我的文档文件夹”是Microsoft?软件产品的常见的、公知的特征。
通常可以针对所有文件提供只读访问而不会导致问题;然而,可能需要采取步骤以确保当将控制转移给第二O/S时,使第一O/S的FS处于有条不紊的(tidy)状态。描述的实施方式缓解了与在另一O/S被挂起但尽管如此可能仍在应用层级具有未决(pending)动作的同时从O/S访问FS(尤其是NTFS)相关联的问题。这些效应对于本领域的普通技术人员将是显而易见的。
因而在示例性的HyperSpaceTM双恢复程序产品中,文件共享的问题具有挑战性。出现了其中Windows和HS均被激活,即使未交替而非同时执行应用层级程序的情形。例如,当一个O/S见到ACPI(高级配置与电源接口)状态S0,并且另一个认为其本身以状态S3被挂起时,这可能发生。在这种情况下,二者可以具有同时安装的Windows拥有的NTFS文件系统,即使当安装的OS之一被实际挂起时。在不采取特定措施以确保一致性的情况下,出现了过期数据被读取和/或Windows文件系统损坏的风险,例如当在其中Windows?被挂起的时段期间存在从HS对NTFS的写入时。
具体而言,下列问题是突出的,并且在本发明的实施例中得到整体或大部分解决:
(A)在文件系统或卷内的文件的“盘上”版本可能不同于在该相同文件的“尚未被保存”或被高速缓存在存储器中的版本。这是个二分问题——二者中任何一个或任何O/S可以拥有并控制文件或FS卷,因而可能产生待由另一O/S解决的问题。
(B)NTFS-3g驱动器可以拒绝安装尚未被干净地卸载的NTFS卷。
(C)在HS双恢复类型产品的情况下,Windows文件可能在将上下文切换至HS的时候,保持开放以待编辑。
(D)基于Windows的NTFS实施方式可以包括NTFS-3g所没有的增强功能,尤其包括:
(I)还原点和VSS;(II)文件索引;(III)AV(视听)封装对过滤器驱动器的使用;以及(IV)利用恢复设施的备份。
参考图2,在本发明的一个实施例中描述为从附图标记200开始,在例如基于Linux?的HS的O/S的上下文中,采取多个动作。在附图标记210,HS以只读模式,使用NTFS-3g安装FS。这可能提供从HS对于在选择待由NTFS-3g软件子系统安装的卷中的一个或多个(任何或全部)基于Windows的FS的访问。而且,Windows O/S可以通过传统方式,向各个FS写入,不受在该计算机系统中活动HyperSpaceTM上下文和O/S的存在的影响(事实上不知道该存在)。
在附图标记230,从HS应用向在属于Windows?的任何NTFS内的文件写入的任何和所有数据被写入由HS控制并拥有的影子(shadow)虚拟FS。可以从对于HS本地的FS内提供用于影子虚拟FS的卷(磁盘)空间分配。
在附图标记240,从HS内向影子虚拟FS的写入也可以被记录到日志文件中。日志可以被同步到磁盘(用于IDE(集成驱动电子设备)磁盘)的高速缓存),诸如在每次写入时或诸如按照每数秒的策略或者根据类似标准周期性地。日志文件可以被实施在卷上的专用数据区内,并且日志文件也可以从在Windows? O/S或上下文中操作的系统程序被访问。例如,在专用扩展盘分区中的FAT32(32位文件分配表)FS可以被使用,或者可以在隐藏、不可移动的邻接Windows?临时文件之上实施专有的格式化日志区。
在附图标记250,在HS上下文中接收到待服务的读取请求,其导致在虚拟影子FS上执行检查,以确定请求的数据是否已经处于其中。如果不是,那么数据读取请求是针对不存在于影子虚拟FS中的请求文件,或者找到了请求的文件,但是特定记录未找到。在附图标记 260,如果通过读取该影子FS,能够服务该请求,那么,执行该读取。否则,在附图标记270,读取只读NTFS,并且从其定位文件和数据。
在附图标记280,将存在远离HS上下文的改变,并且在附图标记290,在图3中在Windows上下文中将继续执行。
现在参考图3,附图标记300是开始恢复到在Windows上下文中的执行(或者在Microsoft?的Windows?资源分区的重新引导时)。
在附图标记310,Windows服务(典型地以应用守护程序(application daemon)形式)可以一致性检查(验证)如上所述的在HS下创建的日志文件。
在附图标记320,先前被安装到Windows应用(诸如Explorer(资源管理器)程序)中的过滤器(插件)程序和/或先前安装的FS过滤器驱动器可以延迟(即拖延或延缓)从Windows进程对某些文件的请求访问。受影响的文件是通过应用日志文件当前经受修改的那些文件。访问被延迟,直到HS写入日志已经被合并而且被完全应用之后(如下文所述)。
在附图标记325,然后,服务可以应用日志至(一个或多个)NTFS文件,然后,在附图标记330,可以擦除日志上下文(诸如,通过写入全零的数据),并且在附图标记340,可以将虚拟影子FS标记为空(或者以其他方式标记为不可应用的,因为不再包含应被应用的日志文件)。这种日志文件的应用相当于抓住(catch up)影子副本,并且确保后面的访问(诸如可以来自Windows内并且不知道影子)将仅接收有效并且新(即非过时)数据。
在附图标记350,在步骤320所施加的访问延迟或延缓被释放。这允许在恢复的O/S上下文中未决的转换继续进行,并且任何可能已经建立的待办事项被展开。在附图标记390,该动作序列被完成。
图4是示出了本发明一个实施例的软件组件之间的关系的图。在低层级并且利用BIOS辅助,存在通过ACPI 490的HyperSpaceTM双恢复支持。在此之上和之外,存在两个O/S上下文,Windows? O/S上下文400以及HyperSpaceTM O/S上下文450。
Windows? O/S上下文400在作为GUI(图形用户界面)或作为守护程序应用410运行的组件以及可替换地充当插件尤其是文件系统文件过滤器的程序之间被分割。
HyperSpaceTM O/S上下文450在用户空间455和核心空间470之间被分割。
现在将始终参考图4描述形成本发明一个实施例的各种软件组件。关于Windows侧400的设计包括若干组件:(A)NTFS文件过滤器440,(B)FS过渡管理器420以及(C)FAT文件过滤器450。
NTFS文件过滤器440是在引导期间附于Windows文件系统堆栈的文件系统驱动器,并且监视进入Windows O/S的FS驱动器的所有调用。它在辅助FS过渡管理器进行文件共享方面起到重要的作用。
在从Windows至HS的切换期间,NTFS文件过滤器440在来自FS过渡管理器420的通知时,清洗(flush)磁盘高速缓存。然后,NTFS文件过滤器440通过基于文件句柄将IRP(I/O请求包)排队,阻挡所有FS I/O(输入-输出操作)到达FS。在来自FS过渡管理器420的通知时并且响应该通知,启动和停止该阻挡。文件过滤器仅阻挡读取和写入IRP,但是允许诸如PNP IRP(即插即用IRP)、电源IRP、WMI IRP(Windows管理仪器IRP)的其他IRP。
NTFS文件过滤器440在实施对跨两个O/S之间共享的文件执行的操作锁定(OpLock)特征中起到关键的作用。操作锁定实施多读取器与一个写入器机制。操作锁定在其中在一个O/S中被打开的文件被打开以在另一O/S中编辑的情形下确保数据的完整性。当应用请求在共享分区中打开文件时,NTFS文件过滤器440捕获IRP,并且尝试在日志文件中查找该文件。如果不存在用于该请求文件的条目,该请求被允许。但是,如果存在条目,则各个应用的对打开文件的请求被拒绝。这种技术允许以有序的方式跨O/S共享FS,同时仍然遵循在两个应用同时尝试更新相同实际文件(不仅是相同FS)的传统情形中的文件锁定。
在一个实施例中,每当在HS(即在Dom0中)执行的应用打开文件句柄时,使用向日志文件写入(或更新)条目的UnionFS过滤器驱动器482(在HS中)来实施日志文件。UnionFS是在Linux?中普及的特征,并且在本领域中是公知的。当对于文件句柄的所有引用被关闭时,从日志文件删除相关日志条目。仅UnionFS驱动器(在HS侧上)更新该日志、以及各个NTFS文件过滤器仅读取(即,其具有准许的只读访问)的其他域(典型地是运行的Windows)。
类似地,作为推论,NTFS文件过滤器440也在第二日志文件中记录所有打开文件的条目。这个日志文件被Union FS过滤器482用于允许在HS中的应用打开文件以编辑的查找。因而,在一个实施例中,在第二日志中的各个条目的存在起到了防止文件被在HS中打开的作用。
由于将记录器用于实施操作锁定(许多读取器、一个写入器被允许),于是在其中应用打开用于只读访问的文件的情形中,在两个O/S上的各个记录器既不阻挡也不记录文件细节。此外,具有两个单独记录器的期望结果是,其阻止两个O/S以RW(读取-写入)模式安装相同分区(该分区的记录存在)。因而,“Windows记录文件”可以存在于Windows文件管理器(filer)驱动器能够读取和写入的共享卷中,但其从HS是只读的。相反,HS记录存在于HS能够更新或编辑的影子卷中,但对于其他域(典型地为Windows侧),其被视为只读卷或FS。
FS过渡管理器420是在后台中运行的Windows应用和服务。服务应用启动将任何弹出消息给予用户的窗口化应用。服务应用典型地不被设计成访问GDI(图形显示界面)功能,并且任何直接那样做的尝试将可能在执行期间失败。服务应用监听来自SCM(服务控制管理器——一种公知的Windows组件)的通知,并且也待机并恢复通知事件。
FS过渡管理器420是执行多个任务的关键组件:(A)在登录阶段启动自身。其安装Windows PSA(封装系统区)分区并且将其从用户层级隐藏。(B)每当Windows是活动的时,FS过渡管理器420监听触发器,以改变ACPI系统状态,并且在接收到时,通知NTFS文件过滤器440清洗磁盘高速缓存,并且临时阻挡I/O。(C)每当Windows从待机恢复时,应用监听唤醒通知,并且在接收到时,执行从影子卷到共享卷分区的复制。一旦完成该复制,其就通知过滤器驱动器解除对未决IRP的阻挡。(D)FS过渡管理器420在从待机恢复时,也安装Windows PSA卷。在本发明的一个实施例中,影子卷在Windows PSA中。
FAT32文件过滤器450是位于FAT32文件系统堆栈中的过滤器驱动器。FAT32在本领域中是公知的。在这种设计中,Windows PSA被用作影子分区,并且其是FAT32分区。FS过渡管理器420安装该分区并且执行所需的复制操作。一旦被安装,Windows就使得该分区对于用户可用,并且用户能够根据可能的需要而使用该分区。为了避免在Windows PSA上的任何这样的(潜在有问题的)操作,FAT32文件过滤器45通过设计,阻挡寻址到Windows PSA的I/O。
现在转向在HyperSpaceTM侧450上的设计,在用户空间455中的是若干组件:(D)HS过渡管理器460、(E)HS过渡管理器UI(用户界面)465以及(F)脚本支持470。文件过滤器、VFS480(虚拟文件系统)以及UnionFS 482位于核心空间470中。这些文件过滤器与各种类型的FS(文件系统)、“ext3”484(缺省Linux?FS)、NTFS 486以及FAT32 488一起操作。
HS过渡管理器460管理对于NTFS RO(只读)分区的受控I/O。每当存在不需要更新磁盘的事务,即任何RO操作时,HS过渡管理器460从适当的NTFS分区读取文件,并且以RO模式将其打开。当任何业务需要更新磁盘时,则HS过渡管理器460以RO模式从NTFS分区打开文件,但在这种情况下,I/O传输(写入或重新写入)被定向到影子卷,其以RW(读取-写入)模式被安装,而非I/O传输被定向到NTFS分区本身。
在本发明的一个实施例中,HS文件过滤器模块可以是用于与UnionFS 482相关联起作用的VFS 480的文件过滤器的一部分。UnionFS 482是一种类型的文件系统,其处理将两个安装点合并及执行对影子卷488的写入I/O,即使在用户空间中的应用被展示了已直接发生在NTFS区上的写入I/O的视图。UnionFS的使用规定,每当该数据已经通过最近的写入操作被改变时,读取操作将适当地取得数据,尤其是从在影子卷上的编辑数据(而非原始和未改变的数据)。
用于VFS 480的文件过滤器除了提供HS文件过滤器模块能力以外,还提供诸如直接对于ext3 484和NTFS 486的一般文件访问。
HS过渡管理器460读取关于正在被打开以用于从元数据文件(未在图4中示出)的写入I/O的文件的状态的信息。元数据文件可以被实施为上文所描述的记录文件的特征,或者其可以被单独地创建并维护。元数据文件存在于以RO模式安装的NTFS分区中。NTFS文件过滤器(在Windows中)利用正在Windows中被编辑或更新的任何有关(潜在可共享的)文件的信息来更新该元数据文件。诸如Windows系统文件的某些文件可以被有意排除,因此对于HS应用侧保持未知。
在元数据文件中含有的信息包含文件名、在NTFS分区中的位置、当前状态、文件描述符引用的数目以及更多。如果文件在HS中正在以允许写入的模式被打开,并且如果HS过渡管理器460从元数据文件发现该文件处于“在Windows中打开以编辑”的状态,那么HS过渡管理器460发信号通知HS过渡管理器UI 465,以显示适当的消息,并且文件打开被禁止。
类似地,HS过渡管理器460维护影子卷中的元数据文件。内部结构类似于由Windows更新的NTFS分区中存在的元数据文件。每当来自任何HS应用的请求到达以打开属于NTFS分区并且尚未在Windows中被编辑的文件进行写入时,HS过渡管理器460更新该元数据文件。如果在HS中正在编辑的文件在朝Windows切换上下文之前被关闭,则用于该文件的条目被从元数据文件中移除。因而,向Windows指示其可以打开该文件进行编辑。实际文件本身与元数据一起被保存在影子卷中。每当上下文被切换到Windows时,这个文件被Windows复制到其在NTFS分区上的实际位置。这种情形尤其可以应用于其中新文件在HS上下文中创建并且使之对于Windows侧可用的情形。这也可以是(或视为)等价于其中日志仅是整个文件的情形,其是关于如何实施这一点的实施细节。
通过Linux风格的UnionFS 482驱动器实施HS文件过滤器。UnionFS是处于VFS和NTFS-3g驱动器之间的一种类型的文件系统。
UnionFS在本领域中是公知的。就功能而言,UnionFS 482同时位于若干文件系统484、486、488之上,或者有时在单一文件系统内的多个目录上。UnionFS 482将若干目录覆盖到一个单一安装点中。其首先尝试访问在顶部分支上的文件,并且,如果不成功,在较低层级分支上继续。如果用户尝试修改在较低层级分支上的为RO的文件,那么,该文件被复制到较高层级的读取-写入分支上。UnionFS 482向核心呈现文件系统接口,并且UnionFS进而将其自身作为核心的VFS呈现给其被堆叠于其上的文件系统。由于UnionFS向核心呈现文件系统视图,其可以被(一个或多个)用户层级应用所采用。UnionFS拦截针对较低层级文件系统捆绑的操作,因此,其能够修改操作以呈现统一的视图。
在本发明的实施例中,两个文件系统可以是NTFS(只读)和FAT32影子卷(读取-写入)。用户(用户模式应用)被允许访问影子卷,但作为例外HS过渡管理器460被允许如此。FAT32影子卷488可以被用于维护寻求在NTFS分区486中创建的新文件和元数据文件。
HS过渡管理器460可以被实施为(A)UnionFS-FUSE驱动器(在用户空间内的UnionFS文件系统)或者可替换地是UnionFS的核心空间文件系统驱动器。UnionFS-FUSE驱动器未在图4中示出,但在本领域中是公知的。
脚本支持468提供启动脚本,其被定制为加载UnionFS核心模块。如果使用UnionFS-FUSE,脚本必须加载FUSE核心模块并且调用UnionFS-FUSE。然后,(无论是否使用UnionFS-FUSE),启动HS过渡管理器守护程序460和HS过渡管理器UI 465。
关于图5,待被包括到电子设备10中的计算机指令可以作为制造的固件和/或使用多种可能介质530的软件计算机产品510而被分发,多种可能介质530具有诸如通过使用存储记录装置520而记录于其上的指令。通常,在与部署本发明的那些一样复杂的产品中,在分发过程中以及在制造相关产品中,可以使用多于一个介质。为了清楚起见,在图5中仅示出了一个介质,但是可以使用多于一个介质,并且单一计算机产品可以在多个介质之间被划分。
图6示出了本发明的一个示例性实施例可以如何使用电磁波来编码、传输、接收和解码。
参考图6,此外,尤其是由于因特网使用的兴起,通过将计算机产品610编码到被调制为波的信号中,可以分发计算机产品610。然后,所得到的波形可以通过发射器640发射,作为有形的已调制电磁载波650传播,并且由接收器660接收。在接收时,它们可以被解调,并且信号被解码成在存储器中或在作为第二电子设备11的一部分并且本质上典型地与电子设备10类似的其他存储设备中的计算机产品611的另一版本或副本。
其他拓扑和/或设备也可以被用于构建本发明的可替换实施例。上述实施例仅是示例性的,而非限定性的,并且应根据权利要求确定本发明的边界。虽然上文已经具体描述了本发明的优选实施例,应清楚理解的是,对于本领域的技术人员可能显而易见的此处所教导的基本发明性概念的许多更改和/或修改,将仍落入如随附的权利要求所限定的本发明的精神和范围内。

Claims (14)

1.一种操作计算机的方法,包括:
将第一操作系统O/S加载到存储器中;
将第二操作系统O/S加载到存储器中;
安装由所述第二O/S控制并且由所述第一O/S只读访问的第一文件系统FS;
将从由所述第一O/S控制的应用程序写入的多个数据重定向到由所述第一O/S控制的日志;
恢复所述第二O/S的执行,以及
将所述日志应用于所述第二O/S的上下文中的所述第一FS。
2.根据权利要求1所述的方法,其中:
所述第一FS是新技术文件系统NTFS。
3.根据权利要求1所述的方法,其中,所述恢复按照高级配置与电源接口ACPI状态变化。
4.根据权利要求1所述的方法,其中:
所述日志被存储在影子虚拟文件系统中。
5.根据权利要求1所述的方法,进一步包括:
从所述日志和所述第一FS的联合,重定向被读入由所述第一O/S控制的所述应用程序的多个数据。
6.根据权利要求1所述的方法,其中,所述将所述日志应用于所述第一FS进一步包括:
在所述第二O/S的上下文中的所述日志上,执行一致性或有效性检查。
7.根据权利要求1所述的方法,进一步包括:
在将所述日志应用于在所述第二O/S的上下文中的所述第一FS未决时,延缓在所述第二O/S的上下文中的所述第一FS的事务。
8.根据权利要求1所述的方法,其中:
所述日志被包括在第二FS内。
9.根据权利要求8所述的方法,其中:
所述第一FS是NTFS类型,并且所述第二FS是文件分配表32位FAT32类型。
10.根据权利要求1所述的方法,其中:
上下文按照多个ACPI状态变化,在第一和第二O/S之间连续交替。
11.一种操作计算机的设备,包括:
用于将第一操作系统O/S加载到存储器中的装置;
用于将第二操作系统O/S加载到存储器中的装置;
用于安装由所述第二O/S控制并且由所述第一O/S只读访问的第一文件系统FS的装置;
用于将从由所述第一O/S控制的应用程序写入的多个数据重定向到由所述第一O/S控制的日志的装置;
用于恢复所述第二O/S的执行的装置,以及
用于将所述日志应用于所述第二O/S的上下文中的所述第一FS的装置。
12.根据权利要求11所述的设备,其中:
所述第一FS是新技术文件系统NTFS。
13.根据权利要求11所述的设备,其中:
所述恢复按照高级配置与电源接口ACPI状态变化。
14.根据权利要求11所述的设备,其中:
所述日志被存储在影子虚拟文件系统中。
CN201080037987.4A 2009-08-27 2010-08-27 用于双操作系统的文件系统 Expired - Fee Related CN102473089B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US12/549,294 US8195929B2 (en) 2009-08-27 2009-08-27 Controlling file systems sharing among two or more operating system
US12/549294 2009-08-27
US12/549,294 2009-08-27
PCT/US2010/046905 WO2011031537A2 (en) 2009-08-27 2010-08-27 File system for dual operating systems

Publications (2)

Publication Number Publication Date
CN102473089A CN102473089A (zh) 2012-05-23
CN102473089B true CN102473089B (zh) 2014-07-02

Family

ID=43626562

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201080037987.4A Expired - Fee Related CN102473089B (zh) 2009-08-27 2010-08-27 用于双操作系统的文件系统

Country Status (6)

Country Link
US (1) US8195929B2 (zh)
KR (1) KR101638658B1 (zh)
CN (1) CN102473089B (zh)
DE (1) DE112010003049T5 (zh)
GB (1) GB2485111B (zh)
WO (1) WO2011031537A2 (zh)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8793257B2 (en) * 2009-05-24 2014-07-29 Roger Frederick Osmond Method for improving the effectiveness of hash-based data structures
US20100299362A1 (en) * 2009-05-24 2010-11-25 Roger Frederick Osmond Method for controlling access to data containers in a computer system
US9015198B2 (en) * 2009-05-26 2015-04-21 Pi-Coral, Inc. Method and apparatus for large scale data storage
CN102063447A (zh) * 2009-11-16 2011-05-18 联想(北京)有限公司 系统状态切换时的文件呈现方法及便携终端
US9665712B2 (en) 2010-02-22 2017-05-30 F-Secure Oyj Malware removal
US8909781B2 (en) 2010-05-24 2014-12-09 Pi-Coral, Inc. Virtual access to network services
US20120084272A1 (en) * 2010-10-04 2012-04-05 International Business Machines Corporation File system support for inert files
EP2666107B1 (en) * 2011-01-21 2019-03-06 Thomson Licensing Method for backward-compatible aggregate file system operation performance improvement, and respective apparatus
US8874823B2 (en) 2011-02-15 2014-10-28 Intellectual Property Holdings 2 Llc Systems and methods for managing data input/output operations
US9201677B2 (en) 2011-05-23 2015-12-01 Intelligent Intellectual Property Holdings 2 Llc Managing data input/output operations
US9003104B2 (en) 2011-02-15 2015-04-07 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a file-level cache
US8996807B2 (en) 2011-02-15 2015-03-31 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a multi-level cache
KR20130049111A (ko) * 2011-11-03 2013-05-13 한국전자통신연구원 분산 처리를 이용한 포렌식 인덱스 방법 및 장치
US9116812B2 (en) 2012-01-27 2015-08-25 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a de-duplication cache
US8615766B2 (en) 2012-05-01 2013-12-24 Concurix Corporation Hybrid operating system
US10339056B2 (en) 2012-07-03 2019-07-02 Sandisk Technologies Llc Systems, methods and apparatus for cache transfers
US9612966B2 (en) 2012-07-03 2017-04-04 Sandisk Technologies Llc Systems, methods and apparatus for a virtual machine cache
US9842053B2 (en) 2013-03-15 2017-12-12 Sandisk Technologies Llc Systems and methods for persistent cache logging
CN106293994A (zh) * 2015-05-15 2017-01-04 株式会社日立制作所 网络文件系统中的虚拟机克隆方法和网络文件系统
EP3113092B1 (en) * 2015-07-03 2021-12-01 Huawei Technologies Co., Ltd. Method and apparatus for managing virtual execution environments using contextual information fragments
CN108701098B (zh) 2015-12-31 2022-05-03 雷蛇(亚太)私人有限公司 控制计算装置的方法、计算机可读介质及计算装置
CN106027677A (zh) * 2016-07-13 2016-10-12 浪潮通用软件有限公司 一种分布式Web应用程序会话管理方法
CN106843951A (zh) * 2017-01-12 2017-06-13 北京珠穆朗玛移动通信有限公司 软件程序的安装处理方法及其移动终端
CN109428943B (zh) * 2017-09-05 2020-08-25 华为技术有限公司 对请求处理的方法、片上系统和公有云管理组件
US10909005B2 (en) * 2019-02-25 2021-02-02 Datto, Inc. Object-level metadata-preserving cross heterogeneous operating systems backup and restore apparatuses, methods and systems
CN112799902A (zh) * 2019-11-14 2021-05-14 云丁网络技术(北京)有限公司 日志输出重定向方法、装置及相关设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1940805A (zh) * 2005-09-30 2007-04-04 联想(北京)有限公司 计算机系统及其安全加固方法
CN101042681A (zh) * 2006-03-23 2007-09-26 联想(北京)有限公司 一种数据透明保护的安全读写系统和方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001024010A1 (fr) * 1999-09-29 2001-04-05 Hitachi, Ltd. Procede de partage de fichiers et systeme de stockage
JP2004086330A (ja) * 2002-08-23 2004-03-18 Toshiba Corp 電子機器
KR101115486B1 (ko) 2003-08-08 2012-02-27 엘지전자 주식회사 컴퓨터 시스템의 부팅 제어 장치 및 방법
KR100673681B1 (ko) 2004-03-25 2007-01-24 엘지전자 주식회사 개인용 컴퓨터에서의 인스턴트 온 기능 실행방법
TWI284837B (en) 2004-11-05 2007-08-01 Mitac Technology Corp Computer booting method, storage medium and computer device employing the same
TWI276957B (en) 2004-12-03 2007-03-21 Intervideo Digital Technology Partition area architecture of an operation system common used disk and the method thereof
US7493314B2 (en) * 2005-01-10 2009-02-17 Cyberlink Corp. System and method for providing access to computer files across computer operating systems
WO2007005562A2 (en) * 2005-06-30 2007-01-11 Phoenix Technologies Ltd. Shared file system management between independent operating systems
US8447936B2 (en) * 2006-06-30 2013-05-21 Microsoft Corporation Module state management in a virtual machine environment
US8312476B2 (en) * 2007-09-05 2012-11-13 Htc Corporation Method for synchronizing information of dual operating systems

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1940805A (zh) * 2005-09-30 2007-04-04 联想(北京)有限公司 计算机系统及其安全加固方法
CN101042681A (zh) * 2006-03-23 2007-09-26 联想(北京)有限公司 一种数据透明保护的安全读写系统和方法

Also Published As

Publication number Publication date
GB201202798D0 (en) 2012-04-04
DE112010003049T5 (de) 2012-06-06
CN102473089A (zh) 2012-05-23
KR101638658B1 (ko) 2016-07-11
US8195929B2 (en) 2012-06-05
US20110055536A1 (en) 2011-03-03
WO2011031537A3 (en) 2011-06-30
KR20120104161A (ko) 2012-09-20
WO2011031537A2 (en) 2011-03-17
GB2485111A (en) 2012-05-02
GB2485111B (en) 2015-12-09

Similar Documents

Publication Publication Date Title
CN102473089B (zh) 用于双操作系统的文件系统
US8577845B2 (en) Remote, granular restore from full virtual machine backup
CN102439573B (zh) 用于支持非虚拟化系统中的存储器增长的互操作系统存储器热交换
US8495316B2 (en) Efficient management of archival images of virtual machines having incremental snapshots
US10067835B2 (en) System reset
US8156301B1 (en) Method and apparatus for synchronizing a physical machine with a virtual machine while the virtual machine is operational
EP1907935B1 (en) System and method for virtualizing backup images
KR101292429B1 (ko) 오프 상태로부터의 운영 체제의 고속 부팅
CN103210395B (zh) 与客户端虚拟机交互的技术
CN104823160A (zh) 虚拟机-保留主机更新
US8347071B2 (en) Converting virtual deployments to physical deployments to simplify management
EP3769224B1 (en) Configurable recovery states
CN105830020A (zh) 存储器保留重新引导
CN104239166A (zh) 一种对运行中虚拟机实现文件备份的方法
US8015374B2 (en) Method, system and computer program for backing-up data with centralized control
CN102591675A (zh) 使用共享存储块管理多软件镜像的方法和系统
CN102968358A (zh) 一种软raid1部署系统的快速恢复方法
EP3769225B1 (en) Free space pass-through
KR100605031B1 (ko) Usb 메모리 장치를 이용한 임베디드 시스템의 장애복구 및 업그레이드 방법
JP2008310591A (ja) クラスタシステム、計算機、および障害回復方法
CN112912848A (zh) 一种丛集作业过程中的电源请求管理方法
US12072774B2 (en) Backup and restore via union mount filesystem
CN107315624B (zh) 信息处理方法及虚拟化管理器
CN107368315A (zh) 一种双硬盘双系统的启动方法及装置
BR112012004232B1 (pt) método para operar computador, meio legível por computador e dispositivo eletrônico

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20140702