CN102460386A - 用于在引导过程期间加载文件的方法、装置和计算机程序 - Google Patents

用于在引导过程期间加载文件的方法、装置和计算机程序 Download PDF

Info

Publication number
CN102460386A
CN102460386A CN2010800263223A CN201080026322A CN102460386A CN 102460386 A CN102460386 A CN 102460386A CN 2010800263223 A CN2010800263223 A CN 2010800263223A CN 201080026322 A CN201080026322 A CN 201080026322A CN 102460386 A CN102460386 A CN 102460386A
Authority
CN
China
Prior art keywords
file
computing equipment
new file
tabulation
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.)
Granted
Application number
CN2010800263223A
Other languages
English (en)
Other versions
CN102460386B (zh
Inventor
D·克雷
P·哈特曼
I·伍德
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.)
Nokia Technologies Oy
Original Assignee
Nokia Oyj
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 Nokia Oyj filed Critical Nokia Oyj
Publication of CN102460386A publication Critical patent/CN102460386A/zh
Application granted granted Critical
Publication of CN102460386B publication Critical patent/CN102460386B/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/22Microcontrol or microprogram arrangements
    • G06F9/24Loading of the microprogram
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/54Link editing before load time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/142Reconfiguring to eliminate the error
    • G06F11/143Reconfiguring to eliminate the error with loss of software functionality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1433Saving, restoring, recovering or retrying at system level during software upgrading

Abstract

本发明的实施方式涉及方法、装置和计算机程序。更具体而言,实施方式涉及识别在计算设备的引导过程期间在计算设备中将要加载的至少一个新文件。此外,确定加载所识别的新文件中的至少一个是否使得计算设备崩溃。此外,基于加载所识别的新文件是否使得计算设备崩溃来更新计算设备上的列表。此外,基于列表在引导过程期间在计算设备中加载至少一个文件以防止计算设备在引导过程期间崩溃。

Description

用于在引导过程期间加载文件的方法、装置和计算机程序
技术领域
本发明的实施方式总体涉及计算设备。更具体而言,实施方式涉及用于在所述计算设备的引导过程期间加载文件的方法、装置和计算机程序。
背景技术
当计算设备开启时或在其被重新引导之后,计算设备执行引导过程以初始化该设备。引导过程涉及多个文件的加载。在多个文件之一受损的情形下,计算设备可能在试图加载该受损文件时崩溃并随后需要重新引导。然而,受损的文件可以导致持续的重新引导循环,其中该设备从没有完成引导过程。
发明内容
在权利要求书中阐述了本发明的示例的各个方面。
本发明的第一示例提供了一种方法,其包括:
识别在计算设备的引导过程期间在所述计算设备中将要加载的至少一个新文件,确定加载所识别的新文件中的至少一个是否使得所述计算设备崩溃,以及基于加载所识别的新文件是否使得所述计算设备崩溃来更新所述计算设备上的列表;以及
基于所述列表在所述计算设备的引导过程期间在所述计算设备中加载至少一个文件,以防止所述计算设备在引导过程期间崩溃。
在一个示例中,确定加载所识别的新文件中的至少一个是否使得所述计算设备崩溃包括加载所识别的新文件以及检测所述计算设备是否尚未崩溃。在另一示例中,检测所述计算设备尚未崩溃包括检测所述计算设备可操作。
在一个示例中,确定加载所识别的新文件中的至少一个是否使得所述计算设备崩溃还包括在加载所识别的新文件之前对所识别的新文件执行验证测试。在另一示例中,如果所识别的新文件没有通过验证测试,则确定加载所识别的新文件使得所述计算设备崩溃。在又一示例中,验证测试包括确定所识别的新文件的大小大于零。
在一个示例中,所述列表包括无效部分,并且如果确定加载所识别的新文件使得所述计算设备崩溃,则在所述无效部分中存储该识别的新文件的表征。在另一示例中,所述列表还包括有效部分,并且如果确定加载所识别的新文件并不使得所述计算设备崩溃则在所述有效部分中存储该识别的新文件的表征。在另一示例中,步骤a还包括在所述无效部分中写入至少一个识别的新文件的表征,并且更新所述列表包括如果确定加载对应于表征的所述识别的新文件不会使得所述计算设备崩溃,则将该表征移动至所述有效部分。在又一示例中,对写入所述无效部分中的每个表征进行标记,并且更新所述列表还包括如果确定加载对应于表征的识别的新文件会使得所述计算设备崩溃,则去除所述无效部分中该表征的标记。
在一个示例中,步骤b包括不加载具有在所述无效部分中的表征的文件。在另一个示例中,步骤b包括加载具有在所述有效部分中的表征的文件。
在一个示例中,该方法还包括检测对具有在所述列表中的表征的文件的修改,以及从所述列表移除所述表征。
在一个示例中,识别在计算设备的引导过程期间在所述计算设备中将要加载的至少一个新文件包括:识别在引导过程期间将要加载的、不具有在所述列表中的表征的文件。在另一示例中,识别在计算设备的引导过程期间在所述计算设备中将要加载的至少一个新文件还包括识别对应于接收自计算设备的一个或多个表征的、不具有在所述列表中的表征的文件。
本发明的第二示例提供一种装置,包括:
处理器;
存储器,包括计算机程序代码;
存储器和计算机程序代码被配置成在使用时与处理器一起使得该装置至少执行:
识别在计算设备的引导过程期间在所述计算设备中将要加载的任何新文件,确定加载所识别的新文件中的至少一个是否使得所述计算设备崩溃,以及基于加载所识别的新文件是否使得所述计算设备崩溃来更新所述计算设备上的列表;以及
基于所述列表在所述计算设备的引导过程期间在所述计算设备中加载至少一个文件,以防止所述计算设备在引导过程期间崩溃。
本发明的第三示例提供一种计算机程序,包括:
用于识别在计算设备的引导过程期间在所述计算设备中将要加载的至少一个新文件,确定加载所识别的新文件中的至少一个是否使得所述计算设备崩溃,以及基于加载所识别的新文件是否使得所述计算设备崩溃来更新所述计算设备上的列表的代码;以及
用于基于所述列表在所述计算设备的引导过程期间在所述计算设备中加载至少一个文件,以防止所述计算设备在引导过程期间崩溃的代码。
在一个示例中,计算机程序是计算机程序产品,该计算机程序产品包括承载计算机程序代码的计算机可读介质,该计算机程序代码在该计算机可读介质中实现以与计算机一同使用。
本发明的第四示例提供一种使用指令进行编码的计算机可读介质,当该指令由计算机执行时:
识别在计算设备的引导过程期间在所述计算设备中将要加载的任何新文件,确定加载所识别的新文件中的至少一个是否使得所述计算设备崩溃,以及基于加载所识别的新文件是否使得所述计算设备崩溃来更新所述计算设备上的列表;以及
基于所述列表在所述计算设备的引导过程期间在所述计算设备中加载至少一个文件,以防止所述计算设备在引导过程期间崩溃。
本发明的第五示例提供一种设备,包括:
用于识别在计算设备的引导过程期间在所述计算设备中将要加载的至少一个新文件的装置,所述装置被配置成为确定加载所识别的新文件中的至少一个是否使得所述计算设备崩溃,以及所述装置被配置成为基于加载所识别的新文件是否使得所述计算设备崩溃来更新所述计算设备上的列表;以及
用于基于所述列表在所述计算设备的引导过程期间在所述计算设备中加载至少一个文件以防止所述计算设备在引导过程期间崩溃的装置。
附图说明
下面参考附图描述实施方式,在附图中:
图1是在其中实施本发明实施方式的计算设备的示意性表征;
图2是示出了图1的计算设备的硬件组件的布置的示意性图示;
图3是示出了当图1的计算设备根据本发明的第一实施方式布置时,该计算设备的硬件组件和软件组件的布置的示意性图示;
图4是当图1的计算设备根据第一实施方式布置时,该计算设备的引导过程的流程图;
图5是图4的引导过程的一部分的详细示图;
图6是示出了当图1的计算设备根据第一实施方式布置时该计算设备的操作的流程图;
图7是示出了当图1的计算设备根据本发明第二实施方式布置时该计算设备的操作的流程图;
图8是示出了当图1的计算设备根据本发明第三实施方式布置时,该计算设备的硬件组件和软件组件的布置的示意性图示;
图9是当计算设备根据第三实施方式布置时,图4的引导过程的一部分的详细示图;以及
图10是示出了当图1的计算设备根据第三实施方式布置时该计算设备的操作的流程图。
具体实施方式
下面仅通过示例的方式提供若干实施方式的描述。
图1是具有外壳12的计算设备10的示意性图示。计算设备10构成将要描述的实施方式的基础。设备10的外壳12封装有小键盘14、触摸屏显示器16、扬声器18和麦克风20。设备10还包括天线22。在图1中示出的设备10是移动设备,因为该设备可以由用户手持并用于参与通信会话,尤其是参与电话呼叫。在这种会话期间,可以利用设备10从而使得将扬声器18持握于用户耳边并且将麦克风20位于用户嘴边。
设备10是工作为移动电话的计算设备。然而,又一些实施方式涉及并不包括电话功能作为其主要功能的其他一些计算设备。
图2是显示了图1的设备10的硬件组件的布置的示意性示图。图1中显示的小键盘14、显示器16、扬声器18和麦克风20与系统总线42通信。总线42还与应用处理器24、基带处理器26、发射器28、接收器30和电池40通信。发射器28和接收器30与天线22通信。总线42还与存储器控制器32通信,存储器控制器32继而与易失性存储器34和非易失性存储器36通信。应用处理器24处理与各种软件模块和操作系统软件有关的指令,该操作系统软件和各种软件模块在设备10上运行并且提供设备10的各种功能性。基带处理器26与通信功能相关并且因此控制电话功能堆栈,并且与发射器28和接收器30通信以借助于天线22建立通信。可以在单个处理器上提供设备10的诸如应用处理器24和基带处理器26之类的各种处理元件。
存储器控制器32控制对易失性存储器34和非易失性存储器36的访问以及与其的交互。应用处理器24以此方式能够与各种硬件元件以及存储器控制器32通信,并且因而能够根据存储在易失性存储器34或非易失性存储器36上的软件指令来控制各种硬件元件的操作。
在图2中仅示出单个总线,总线42。可以认识到,可以由两个或更多个总线替换该总线,并且图2的拓扑结构将相应地变化。此外,已知计算设备包括图2中示出的那些硬件组件之外的硬件组件。
图3是示出了设备10的各种硬件组件和软件组件的图示。在设备10上操作的软件可以以各种方式分类。某些软件操作为管理由各种硬件组件提供的资源以及建立其他软件在其中执行的操作环境。该软件称为设备的操作系统,并且在图3中以操作系统(OS)50表征。OS 50与存储器管理单元32交互,该存储器管理单元32如之前描述的那样与易失性存储器34和非易失性存储器36通信。OS 50还与多个应用44通信,每个应用可以以由OS 50指定的方式访问硬件组件。应用44是可以由用户启动和终止的用户应用。图3显示了非易失性存储器36中的内容为列表文件38。在当前实施方式中,列表文件是文本文件,然而可以理解在一些其他实施方式中,列表文件可以是任何其他文件类型,包括但不限于二进制文件或XML文件。
在该示例中的OS 50还包括字体服务器51。字体服务器的作用之一在于在设备10的引导过程期间(例如在设备开启之后或是在重新引导之后)加载字体文件。在本实施方式中,字体服务器51向易失性存储器34中加载存储在非易失性存储器36上的各个字体文件。该操作使得对应于字体文件的字体能够供设备10的软件使用,该软件诸如应用44。
OS 50使用设备驱动52与小键盘14通信,使用设备驱动54与扬声器18通信,以及使用设备驱动56与显示器16通信。仅示出了一些硬件组件,但是总体而言,OS 50通过各种设备驱动来控制设备10的硬件资源。此外,虽然设备驱动已被示出为与OS 50分离,但是设备驱动可以被集成在OS 50中。
图3的软件组件通过虚线区域60来描绘。然而,软件和硬件之间的这种区分并非必须。图3中描绘为软件的组件可以以硬件提供,而在某些情形中,描绘为硬件的组件可以提供为软件。
在设备的操作期间,存储在非易失性存储器36中的软件指令建立OS 50、应用44和设备驱动52、54和56。通过使用图2中示出的各种组件,用户能够根据各种应用44提供的功能性来利用设备10。例如,用户使用小键盘14和/或触摸屏显示器16以通过设备驱动52和56与OS 50通信,从而使得应用44之一通过存储器管理单元32访问存储在非易失性存储器36上的数据。OS 50使得由存储器管理单元32提供的数据将由通常在应用处理器24上运行的应用44进行处理。应用处理器24通常在该过程中会利用易失性存储器34来返回源于数据和指令的结果。响应于来自应用的进一步指令,OS50将通过设备驱动56使得该结果将在显示器16上向用户显示。可以认识到,设备驱动52、54和56也是源自存储在非易失性存储器36上的指令的软件组件。
仅通过示例的方式展示图3的图例;已知的设备可以包括比所示组件更多的组件。实施方式的实现并不取决于图1、图2和图3中所示组件的确切布置和配置。因此,在不影响实施方式的操作的前提下,可以使用具有类似功能性的其他组件对图1、图2和图3中所示的组件进行替换,并且可以向其添加其他组件,或者省略图1、图2和图3中所示的一些组件。
图4是示出了本示例中设备10的引导过程98的流程图。例如在由设备的人类用户或在设备上运行的软件应用开启或重新引导设备10之后激活引导过程98。在步骤100处,通过设备10的电源按钮(未示出)的激活或设备10的重新引导来触发硬件重置。在此之后执行的第一软件是存储在非易失性存储器36上的引导程序。在进入引导之时,运行环境非常简单,并且引导程序操作以提供OS 50的内核进程的基本运行环境。当这完成时,处理流至步骤102。在步骤102处,启动内核进程。此时应用处理器24正在运行,并且运行堆栈允许例如C++代码之类的高级软件编程语言代码运行。然而,仍然仅存在简单的存储器环境和仅一条运行路径。一旦内核进程的初始化完成,便全面管理应用处理器24、存储器34和存储器36、电池40以及诸如显示器16和扬声器18之类的外围部件。处理继而流至步骤104。在步骤104处,具有运行中的内核,然而尚未向OS 50提供用以实例化新过程的手段以从非易失性存储器36读取基于文件的数据,或在易失性存储器34或非易失性存储器36中存留数据。在步骤104中发生建立所有这些服务的过程,并且一旦完成,处理流至步骤106。在步骤106处,所有的内核和文件服务器服务被完全初始化并且OS的剩余部分准备使用系统启动器过程开始其引导过程。系统启动器以有序方式管理OS系统服务的剩余部分的初始化。根据服务之间的从属关系来选择启动存留、通信、多媒体、安全和其他服务的确切顺序,并且首先启动必要服务。一旦运行了足够的系统服务,处理可以流至步骤108。在步骤108处,可以启动OS的主图形用户界面(GUI)。在塞班(RTM)OS的情形下,主GUI是windows(视窗)服务器。现在这允许其他用户界面服务和应用的初始化,这些应用和其他用户界面服务构成OS的、对于设备10的用户最为明显的一些方面。
图5更为详细地示出了上面参考图4的步骤106讨论的系统启动器过程。系统启动器过程涉及若干个OS系统服务200a-200n的初始化。如上所述,根据不同服务之间的从属关系以及确保首先启动关键服务的有序方式来初始化OS系统服务200a-200n。OS系统服务200a-200n包括但不限于图形、音频、安全和通信服务。OS系统服务200b代表OS 50的字体服务器51。字体服务器51代表图形服务的一部分,这是由于字体服务器51初始化各种字体从而使得各种字体可以被OS 50和设备10的诸如应用44之类的其他软件使用。如图5可见,一旦字体服务器51被初始化,字体服务器51就加载存储在设备10上的若干字体文件202a-202n。具体而言,字体服务器51从非易失性存储器36读取若干字体文件并随后将其加载到易失性存储器34中。可以理解,如果字体文件以压缩状态存储在非易失性存储器36上,则该过程可以涉及解压缩的步骤。在本实施方式中,字体服务器51加载存储在非易失性存储器36中的每种字体文件。然而,在其他一些实施方式中,字体服务器51可以仅加载存储在非易失性存储器36上的所有字体文件的子集。例如,设备可以能够识别需要何种字体以便初始化设备10,并且仅加载对应于该识别的字体的字体文件。此后,如果需要任何未加载的字体,设备10进一步能够在那时加载对应的字体文件。
在任何情形中,在引导过程98的系统启动步骤106(图4)期间,字体服务器51加载若干字体文件。在字体文件之一受损的情形下,加载该字体文件可能使得设备10在引导过程期间崩溃。这可能迫使设备10重新引导。设备10下一次引导字体服务器51时可能再次试图加载同一受损字体文件,该字体文件可能再次使得设备10崩溃。该操作可能导致持续重新引导循环,其中设备10在引导过程中始终中途重新引导,从而使得设备10不可用。
图6提供了示出字体服务器51的用于加载存储在非易失性存储器36上的所有字体文件的操作的流程图。图6的操作通过使用存储在非易失性存储器36上的列表文件38,避免了导致持续的重新引导循环。图6中的处理始于步骤300。
在步骤300处,引导设备10。在本情形中,设备的用户通过按压设备10的电源按钮(未示出)开始引导。然而,重新引导使得设备引导同等有效。此外,重新引导可以由设备的用户、设备的应用或OS 50来开始。在任何情形中,一旦引导过程98到达步骤106,即系统启动,处理流至步骤302。在步骤302处,初始化字体服务器51。这使得处理流至步骤304,其中字体服务器51检查列表文件38是否存在于非易失性存储器36上。在本实施方式中,如果列表文件38存储在非易失性存储器36上,则该列表文件38位于特定存储器位置处。然而,在其他一些实施方式中,列表文件38可以存储在非易失性存储器36上任何位置处,并且字体服务器51能够搜索非易失性存储器36以便定位该文件。在任何情形中,如果列表文件38存在于非易失性存储器36上,则处理流至后面将讨论的步骤306。备选地,如果不存在列表文件,则处理流至步骤308。如果不存在列表文件,则这一般指示这是设备10被首次激活,或者设备10刚被格式化。
在步骤308处,字体服务器在非易失性存储器36上创建新的列表文件。该列表文件包括两个列表部分,无效列表部分(下文称为“无效列表”)和有效列表部分(下文称为“有效列表”)。列表文件38的每个列表用于存储一个或若干个文件表征。在本实施方式中,每个表征包括文件名称。然而,在一些其他实施方式中,使用其他表征类型,诸如文件位置或唯一的文件标识符。一旦创建了新的列表文件,处理流至步骤310。在步骤310处,字体服务器51识别未列入列表文件38的任一列表中的字体文件。列表文件38的列表当前空白,因而将存在若干未被列入的字体文件。因此,在步骤310中,字体服务器51根据其内部逻辑选择字体文件之一。在本实施方式中,字体服务器51将根据字体文件存储在非易失性存储器36上的顺序来识别第一字体文件。然而,在其他一些实施方式中,其他顺序同样有效。例如,字体服务器51可以按字母顺序来识别第一字体文件。在任何情形中,一旦识别出了第一字体文件,则处理流至步骤312。
在步骤312处,字体服务器51向列表文件38的无效列表中写入所识别的字体文件的表征。如上所述,表征包括文件的名称。接着,在步骤314处,字体服务器51将该文件名称标记为“新”,接着处理流至步骤316。在步骤316处,字体服务器51加载该文件并且处理流至步骤318。在步骤318处,文件加载操作有两种可能结果。或者字体文件加载成功,在此情形中处理流至步骤320,或者字体文件加载失败,在此情形中处理流至步骤322。如果字体文件受损,则处理可以流至步骤322。在步骤322处,设备10崩溃并且重新引导,在重新引导之后处理流回至步骤300。返回步骤300使得字体服务器操作如图6的流程图所限定的那样再次启动。备选地,如果在步骤316处文件加载成功,则处理从步骤318流至步骤320。实际中,如果设备10在文件加载之后仍工作,则第一实施方式检测到文件加载成功。
在步骤320处,字体服务器将字体文件名称从无效列表移至有效列表,并且移除“新”标记。一旦文件名称已被移除,则处理流至步骤324,其中字体服务器识别是否存在尚未被列入的任何其他字体文件。当前仅列入了一个文件名称,因而很有可能存在其他一些文件名称。在此情形中,处理将围绕上述回路流动,直至处理返回步骤324,并且非易失性存储器36上不存在尚未被列入列表文件38的其他字体文件。此时,处理将从步骤324流至步骤326,其中字体文件加载完成。一旦字体文件加载完成,则引导处理98返回图5的步骤106,其中,初始化下一系统服务。如果所有的系统服务已被初始化,则引导过程将如上所述地流至图5的步骤108。
如上简要提到的,在步骤304处,如果存在列表文件,则处理流至步骤306。注意到这是一般情形,除非设备是首次引导或刚被格式化。在步骤306处,字体服务器51加载有效列表中列出的所有字体文件,此后,处理流至步骤328。在步骤328处,字体服务器51搜索列表文件38以识别无效列表中被标记为“新”的任何字体文件名称。在未发现被标记的字体文件名称的情形下,处理如上所述地流至步骤324。备选地,如果在步骤328中识别出被标记的字体文件名称,则处理流至步骤330。如果上次文件服务器51操作时其试图加载使得设备10崩溃的字体文件,则处理将以此方式流动。换言之,处理经由步骤322流回至步骤300,并且随后从步骤300经由步骤302、304、306、328流至步骤330。在此情形中,在步骤330处,移除新标记并将字体文件名称遗留在无效列表中。将字体文件名称以未添加标记的状态遗留在无效列表中表明该字体文件不应被加载,因为该字体文件将使得设备10在引导期间崩溃。根据该操作,避免了持续的重新引导循环。一旦“新”的标记在步骤330处被移除,则处理如上所述地流至步骤324。
根据本发明的第一实施方式的上述操作,一旦存储在非易失性存储器中的每个字体文件已被加载,则其文件名称就出现在列表文件38中。具体而言,如果字体文件加载成功,则将文件名称写入有效列表,或者如果加载不成功,则写入无效列表。一旦每个字体文件名称被写入列表文件38,则下一次设备10引导时,字体服务器51将仅加载有效列表中的那些字体文件。不加载无效列表中的任何字体文件。因此,可以避免持续的重新引导循环。具体而言,使得设备在引导时崩溃的字体文件仅被允许加载一次,之后该字体文件的名称被存储在无效列表中,并且在再次引导期间将不加载该字体文件。
可以理解,字体服务器提供用于识别在设备10的引导过程期间将要加载的文件的装置。字体服务器还提供用于确定加载文件是否使得设备10崩溃的装置。字体服务器还提供用于更新用于指示加载特定文件是否使得设备10崩溃的列表文件38的装置。字体服务器还提供用于基于列表文件38的内容在引导过程期间加载文件的装置。
在新的字体文件加载至非易失性存储器36上的情形中,在添加了新的字体文件之后的下一引导期间,字体服务器51在步骤324处检测新文件的存在,并且在步骤312处向列表文件38的无效列表添加该新文件的名称。如果新文件加载成功,则该文件的名称在步骤320处被移至有效列表。备选地,如果文件加载不成功,则该文件的名称保留在无效列表中。注意,可以以若干种方式向设备10添加新的字体文件。例如,用户可以在设备10上安装新的应用,该新的应用可以包括一种或若干种新的字体文件。附加地或备选地,自动的软件更新可以向设备10添加一种或若干种新的字体文件。
在修改了已有字体文件的情形中,字体服务器51检测到该修改,并且确保将文件名称重新插入到无效列表中并将其标记为新。如果文件的未修改版本在有效列表中,则该条目此时被移除。因此,修改的文件将被再次视为是新的文件,并且仅当该文件在加载时不使得设备10崩溃时才将其移至有效列表。
第一实施方式的优势在于将写入文件以防止设备10持续重新引导循环的次数最小化。因此,同样最小化了由于字体服务器的上述操作而导致的任何引导时间的增加。继而,这意味着引导时间未被不必要地延长,而不必要的延长引导时间将恶化用户体验。具体而言,仅在开始时对列表文件38进行写入以将每个字体文件的文件名称置于正确列表中。一旦所有的字体文件名称都在正确列表中,则字体服务器仅从列表文件38读取以确定要加载哪个文件。换言之,一旦设备10上的各个字体文件的文件名称被置于正确的列表中,则字体服务器不必对列表文件进行写入。因此,字体服务器可以自动地检测无效文件,而不需要执行任何文件写入。
在第一实施方式中,非易失性存储器是闪速存储器驱动。第一实施方式操作的又一优势在于减少闪速驱动上的过度磨损。具体而言,如果在闪速驱动上执行重复的写入操作,则可能出现过度磨损。由于第一实施方式的操作最小化了检测无效文件所需的文件写入的次数,因此第一实施方式还延长了闪速存储器的寿命。
第一实施方式的优势在于由字体服务器51创建列表文件38并且自动更新列表文件38。此外,设备用户无需负责维护列表文件38。这是维护列表文件38的优势,否则用户可能必须熟知设备10上存在的字体文件。根据第一实施方式,用户可以简单地在设备上安装新的字体文件,而字体服务器将自动检测无效文件并且自动防止设备10进入持续重新引导循环。
在第一实施方式中,列表文件38包括两个列表,无效列表和有效列表。然而,在其他一些实施方式中,由字体服务器来创建和管理两个列表文件同样有效,其中一个文件包含有效列表而另一个文件包含无效列表。列表文件可以是文本文件、二进制文件、XML文件、或任何其他类型的文件。
在第一实施方式中,当字体服务器将新的字体文件名称插入到列表文件中时,字体服务器将该文件名称标记为新。如此行事的目的在于在加载文件成功的情形下,字体服务器知晓将哪个文件移至有效列表。在其他一些实施方式中,字体服务器无需对文件名称进行标记。然而,在这种实施方式中,字体服务器需要记住当前正被测试的文件的文件名称,从而在通过加载测试(步骤318)时字体服务器知晓将哪个文件名称移至有效列表。
图6的操作可以被修改以形成本发明的第二实施方式。图7提供了第二实施方式的操作的流程图。下面描述图7与图6不同的方面。具体而言,在步骤314和316之间插入新的步骤400和402。
在步骤314处,已被插入到无效列表中的新的字体文件名称被标记为“新”。在图7中,一旦文件名称已被标记,则处理流至新的步骤400。在步骤400处,字体服务器51验证该新的字体文件。文件验证在文件被加载之前对该文件执行一个或若干个测试。每个验证测试的目的在于确定文件加载是否会使得设备崩溃。一旦已经执行文件验证测试,则处理流至新的步骤402,在此考虑测试的结果。在第二实施方式中,字体服务器检查字体文件的大小以确认字体文件是否大于零。在文件大小大于零的情形下,字体服务器推定字体文件有效,并且加载该字体文件不会使得设备10崩溃。因此,处理从步骤402流至步骤316,上面已参考第一实施方式和图6讨论了步骤316。备选地,如果文件大小为零,则字体服务器推定字体文件受损并且加载该字体文件将使得设备10崩溃。因此,处理从步骤402流至步骤330,上面已参考第一实施方式讨论了步骤330。
第二实施方式的优势在于字体服务器在某些情形中可以识别加载之后会使得设备10崩溃的字体文件。因此,在识别出这种字体文件之后,字体服务器可以避免加载该文件。此外,字体服务器可以去除对文件名称的标记并将该文件名称遗留在无效列表中,从而使得在引导期间不加载该文件。因此,第二实施方式避免了必须经历加载受损文件从而使得设备崩溃并重新引导该设备的过程。根据该操作,第二实施方式可以减少引导时间并且由此改进用户体验。
在第二实施方式中,字体服务器执行单个验证测试。在本发明的其他一些实施方式中,可以执行任何数目的验证测试。此外,可以执行不同的验证测试。例如,字体服务器可以确定字体文件所指向的存储器表是否正确、字体文件是否包含正确的语法、或者字体文件是否包含正确的数据类型。
此外,结合第一实施方式陈述的优势和备选特征等同地适用于第二实施方式。
图8是示出了根据本发明第三实施方式布置的设备10的各种硬件组件和软件组件的图示。下面描述了图8的组件与图3的组件之间的差异。
在图8中,OS 50包括验证服务器500。验证服务器500的功能是自动检测和防止在设备10的引导期间加载无效的(即受损的)文件。因此,验证服务器500的作用是自动防止持续的重新引导循环。
图9更为详细地示出了当根据第三实施方式布置设备10时,上面参考图4的步骤106讨论的系统启动器过程。如上所述,系统启动器过程涉及若干个OS系统服务200a-200n的初始化。图9显示了每个OS系统服务器200a-200n与验证服务器500通信。具体而言,每个OS系统服务200a-200n在其需要在引导期间加载文件时与验证服务器500通信。文件可以涉及任何OS系统服务并不限于图形服务或字体。例如,文件可以涉及诸如设备驱动之类的文件或诸如安全、通信或音频服务之类的服务。当服务200a-200n与验证服务器通信时,服务200a-200n发送指定需要被加载的文件的表征的验证请求。在本实施方式中,文件表征包括文件名称。然而,在一些其他实施方式中,可以使用不同的表征,诸如文件位置或唯一的文件标识符。在接收到验证请求之时,验证服务器500识别文件是否有效。如果文件有效,则验证服务器500允许加载文件。另一方面,如果文件无效,则验证服务器500防止文件被加载。根据该操作,验证服务器500操作以自动避免持续的重新引导循环。
图10提供了限定本发明第三实施方式的操作的流程图,其中图10中的步骤编号与图6和图7中的步骤编号相同,图10中的步骤涉及关于图6和图7限定的步骤相同的操作。图10中的处理始于步骤300。
在步骤300处,设备10引导。在该情形中,设备用户通过按压设备10的电源按钮(未示出)来开始引导。然而,重新引导使得设备引导同等有效。此外,重新引导可以通过设备用户、设备的诸如OS 50之类的应用来开始。在任何情形中,一旦引导过程98到达步骤106,即系统启动,则处理流至步骤502。
在步骤502处,初始化验证服务器500。这使得处理流至步骤304,其中验证服务器500检查在非易失性存储器36上是否存在列表文件38。在本实施方式中,如果列表文件38存储在非易失性存储器36上,则该列表文件位于特定存储器位置处。然而,在其他一些实施方式中,列表文件38可以存储在非易失性存储器36上的任何其他位置处,并且验证服务器500能够搜索非易失性存储器36以便定位该列表文件38。在任何情形中,如果列表文件38存在于非易失性存储器36上,则处理流至后面将讨论的步骤504。备选地,如果不存在列表文件,则处理流至步骤308。如果不存在列表文件,则这一般指示这是设备10被首次激活,或者设备10刚被格式化。
在步骤308处,验证服务器500在非易失性存储器36上创建新的列表文件。列表文件包括两个列表部分,无效列表部分和有效列表部分。列表文件38的每个列表都用于存储一个或若干个文件表征。在本实施方式中,文件表征包括文件名称。一旦新的列表文件已被创建,则处理流至步骤504。
在步骤504处,验证服务器500等待,直至从OS系统服务器200a-200n之一接收到验证请求。当接收到验证请求时,处理从步骤504流至步骤506。注意,由验证服务器500接收的各个验证请求包括文件表征。在第三实施方式中,表征包括文件名称。然而,在一些其他实施方式中,使用其他文件表征同等有效。例如,在一些实施方式中,使用文件位置或唯一的文件标识符。此外,验证请求是来自OS系统服务的用于确认文件是否有效的请求,该文件的文件名称附随该请求。在步骤506处,验证服务器500识别随请求传递的文件名称是否列于列表文件38的有效列表中。在文件名称处于有效列表的情形中,处理从步骤506流至步骤508,其中验证服务器500对发送验证请求的OS系统服务进行响应。具体而言,验证服务器500确认OS系统服务可以安全地加载文件而不会使得设备10崩溃。
备选地,如果在步骤506处文件名称不在有效列表中,则处理流至步骤510。在步骤510处,验证服务器500确定文件名称是否在无效列表中。如果在无效列表中,则处理流至步骤512,否则处理流至步骤312。在步骤512处,验证服务器500检查该文件名称是否在无效列表中被标记为新。如果上次操作验证服务器500时加载文件并使得设备10崩溃,则将会是这种情形。在此情形中,在步骤330处从文件名称移除该新标记,之后处理流至步骤514。备选地,如果文件名称未被标记,则处理从步骤512直接流至步骤514。在步骤514处,验证服务器500对在步骤504处做出初始验证请求的OS系统服务进行响应,并且告知OS系统服务不加载该文件。
如上简要提到的,如果文件名称不在列表文件38的有效列表和无效列表中,则处理从步骤510流至步骤312。如果文件名称代表的文件是新文件,则将会是这种情形。在步骤312处,文件名称被插入列表文件38的无效列表中,此后,处理流至步骤314。在步骤314处,验证服务器500对刚插入的文件名称进行标记,此后,处理流至步骤400。在步骤400处,验证服务器500验证该文件。在本实施方式中,验证测试包括检查文件大小是否大于零。在文件大小为零的情形下,验证测试失败,并且处理从步骤400流至步骤402继而流至上述的步骤330。备选地,如果文件大小大于零,则验证测试在步骤402处通过,并且处理流至步骤316。在步骤316处,加载文件,并且处理流至步骤318。在步骤318处,考虑文件加载的结果。如果在步骤316处文件加载成功,则处理流至步骤320。实际中,第三实施方式检测如果在文件加载之后设备10仍工作则文件加载成功。在步骤320处,文件名称被去除标记并被从无效列表移至有效列表。处理继而流至步骤516,其中验证服务器500对在步骤504处做出验证请求的OS系统服务进行响应,并且确认文件已被加载成功。备选地,如果在步骤318处文件加载不成功,则设备崩溃并且处理流至步骤322,此后,当设备重新引导时,处理返回至步骤300。
根据上述操作,验证服务器500可以用于验证由OS系统服务200a-200n加载的每个文件。备选地,验证服务器500可以用于仅验证由OS系统服务200a-200n加载的文件的子集。在任何情形中,如果文件受损,并且使得设备崩溃,则文件进入无效列表。如果文件未受损,则OS系统服务200a-200n被告知其可以加载文件或被告知验证服务器已加载该文件。在后续的引导中,验证服务器将防止OS系统服务加载无效列表中的文件,并且将允许OS系统服务加载有效列表中的文件。根据该操作,自动防止持续的重新引导循环。
可以理解,验证服务器提供用于识别在设备10的引导过程期间将要加载的文件的装置。验证服务器还提供用于确定加载文件是否使得设备10崩溃的装置。验证服务器还提供用于更新用于指示加载特定文件是否使得设备10崩溃的列表38的装置。验证服务器还提供用于基于列表文件38的内容在引导过程期间加载文件的装置。
在已有文件被修改的情形中,验证服务器对此进行检测,并且确保文件名称被重新插入到无效列表中并被标记为新。如果文件的未修改版本位于有效列表中,则该条目同时被移除。因此,经修改的文件被再次当作新的文件,并且仅在加载文件时该文件不使得设备10崩溃的情况下被移至有效列表。
第三实施方式的优势在于任何OS系统服务可以使用验证服务器500来自动确定文件是否可以被加载。因此,需要在引导期间加载的任何文件可以运行通过验证服务器。附加地,需要在引导期间加载的所有文件可以运行通过验证服务器。换言之,自动防止了因在引导期间加载的任何文件导致的持续重新引导循环。在验证步骤318处检测到受损文件,或者在步骤312处,受损文件被加载一次之后在重新引导之后检测到该受损文件,并且不再再次加载。
第三实施方式的优势在于对写入文件以防止设备10进入持续重新引导循环的次数进行最小化。因此,因验证服务器的上述操作导致的任何引导时间增加也被最小化。继而,这意味着引导时间未被不必要地延长,而不必要地延长将恶化用户体验。具体而言,仅在开始时对列表文件38进行写入以将每个字体文件的文件名称置于正确列表中。一旦所有的文件名称都在正确列表中,则验证服务器仅从列表文件38读取以确定哪个文件可以被加载。换言之,一旦在引导期间将要加载的每个文件的名称被置于正确的列表中,则验证服务器不必对列表文件进行写入。因此,验证服务器可以自动检测无效文件,而无需执行任何文件写入。
在第三实施方式中,非易失性存储器是闪速存储器驱动。第三实施方式的操作的又一优势在于减少了闪速存储器上的过度磨损。具体而言,如果在闪速驱动上执行重复写入操作,则可能发生过度磨损。由于第三实施方式的操作最小化了自动检测无效文件所需的文件写入次数,因此第三实施方式也延长了闪速存储器的寿命。
在第三实施方式中,如果验证服务器识别出文件无效(即受损),则验证服务器通知OS系统服务不加载该文件。在一些其他实施方式中,验证服务器可以附加地或备选地加载对应于该无效文件的默认文件。具体而言,文件的加载对于设备10进入操作状态可能是必要的。如果情形如此,则简单地指示对应的OS系统服务不加载文件将阻止设备进入操作状态。因此,验证服务器可以存储若干必要文件的旧的但是有效的副本,从而在当前版本受损的情形中验证服务器可以加载该文件的有效的旧版本。根据该操作,设备将继而能够进入操作状态。在一些实施方式中,设备可以自动检测文件的当前版本无效并且例如经由显示器16上的适当消息来自动指示设备用户获得有效的文件的当前版本。
第三实施方式的优势在于由验证服务器自动创建和更新列表文件38。此外,设备用户无需承担维护列表文件38的责任。这是维护列表文件38的优势,否则用户必须熟知在引导期间加载哪个文件。根据第三实施方式,用户可以在设备上简单地安装新文件,并且如果在引导期间加载文件使得设备崩溃,则验证服务器将自动防止设备10进入持续重新引导循环。
在第三实施方式中,列表文件38包括两个列表,无效列表和有效列表。然而,在其他一些实施方式中,由字体服务器来创建和管理两个列表文件同样有效,其中一个文件包含有效列表而另一个文件包含无效列表。列表文件可以是文本文件、二进制文件、XML文件、或任何其他类型的文件。
在第三实施方式中,当验证服务器将新的字体文件名称插入列表文件时,验证服务器将该文件名称标记为新。如此行事的目的在于在加载文件测试成功的情形(步骤318)下,验证服务器知晓将哪个文件移至有效列表。在其他一些实施方式中,验证服务器无需标记文件名称。然而,在这种实施方式中,验证服务器需要记住正被测试的当前文件的文件名称,从而在通过加载测试的情形下验证服务器知晓将哪个文件名称移至有效列表。
第三实施方式包括由步骤400和步骤402表征的验证阶段。然而,可以理解,在一些其他实施方式中,步骤400和步骤402可以省略。这些实施方式因而将对应于上述的第一实施方式。
已经参考引导过程98的系统启动阶段(步骤106)期间加载文件而讨论了第一实施方式、第二实施方式和第三实施方式。然而,可以理解,本发明的一些其他实施方式可以涉及不同的引导过程。进一步地,一些其他实施方式可以涉及在引导过程的不同阶段出现的文件加载。例如,一些其他实施方式可以涉及在GUI和图4的其他应用加载阶段(即步骤108)期间的文件加载。
上面已经参考成功加载或加载使得设备崩溃的文件而讨论了第一实施方式、第二实施方式和第三实施方式。可以理解,一些其他实施方式也可以使用如下文件来操作,该文件受损但是却不使得设备崩溃。在此情形下,与文件有关的新标记将被移除,而文件名称将保留在无效列表中。备选地,如果不执行文件标记,则文件名称将仅被遗留在无效列表中。
在上述第一实施方式、第二实施方式和第三实施方式中,列表文件38列出了文件名称。然而,可以理解,在本发明的一些其他实施方式中,可以使用除了名称之外的文件表征。例如,列表文件38可以列出文件位置或唯一的文件标识符。备选地,可以针对每个文件产生代码,并且该代码可以被用作存储在列表文件中的表征。此外,在第三实施方式中,上面已经参考伴随每个验证请求接收单个文件表征而讨论了验证服务器。在一些其他实施方式中,多于一个的文件表征可以随着验证请求传递。任何数目的文件表征可以随着若干验证请求传递。
最后,可以对上述实施方式做出各种添加和修改以提供进一步的实施方式,该进一步的实施方式对于作为本领域技术人员的目标读者而言是显然的,并且该进一步实施方式中的任一以及所有旨在落入所附权利要求的范围内。

Claims (18)

1.一种方法,包括:
识别在计算设备的引导过程期间在所述计算设备中将要加载的至少一个新文件;
确定加载所识别的新文件中的至少一个是否使得所述计算设备崩溃;
基于加载所述识别的新文件是否使得所述计算设备崩溃来更新所述计算设备上的列表;以及
基于所述列表在所述计算设备的引导过程期间在所述计算设备中加载所述至少一个新文件中的文件以防止所述计算设备在所述引导过程期间崩溃。
2.根据权利要求1所述的方法,其中确定加载所述识别的新文件中的至少一个是否使得所述计算设备崩溃包括加载所述识别的新文件并且检测所述计算设备是否尚未崩溃。
3.根据权利要求2所述的方法,其中确定加载所述识别的新文件中的至少一个是否使得所述计算设备崩溃还包括在加载所述识别的新文件之前对所述识别的新文件执行验证测试。
4.根据权利要求3所述的方法,其中所述验证测试包括确定所述识别的新文件的大小是否大于零。
5.根据前述权利要求中任一项所述的方法,其中所述列表包括无效部分,并且如果加载所述识别的新文件使得所述计算设备崩溃,则将所述识别的新文件的表征存储在所述无效部分中。
6.根据权利要求1所述的方法,其中所述列表包括有效部分,并且如果加载所述识别的新文件并不使得所述计算设备崩溃,则将所述识别的新文件的表征存储在所述有效部分中。
7.根据权利要求6所述的方法,还包括:
在所述无效部分中写入所述识别的新文件中的至少一个的表征;以及
如果确定加载对应于表征的所述识别的新文件不会使得所述计算设备崩溃,则通过将所述表征移至所述有效部分来更新所述列表。
8.根据权利要求7所述的方法,其中写入所述无效部分中的每个表征被标记,并且更新所述列表还包括如果确定加载对应于表征的所述识别的新文件会使得所述计算设备崩溃,则去除对所述无效部分中的所述表征的标记。
9.根据权利要求1所述的方法,其中不加载具有在所述无效部分中的表征的文件。
10.根据权利要求1所述的方法,其中加载具有在所述有效部分中的表征的文件。
11.根据前述权利要求中任一项所述的方法,还包括检测对具有在所述列表中的表征的文件的修改,以及将所述表征从所述列表移除。
12.根据前述权利要求中任一项所述的方法,其中识别在所述计算设备的引导过程期间在所述计算设备中将要加载的至少一个新文件还包括识别在所述引导过程期间将要加载的、不具有在所述列表中的表征的文件。
13.根据前述权利要求中任一项所述的方法,其中识别在所述计算设备的引导过程期间在所述计算设备中将要加载的至少一个新文件还包括识别对应于接收自所述计算设备的一个或多个表征的、不具有在所述列表中的表征的文件。
14.一种装置,包括:
处理器;以及
存储器,其包括计算机程序代码,所述存储器和计算机程序代码被配置为在使用时与所述至少一个处理器一起使得所述装置至少执行:
识别在所述装置的引导过程期间在所述装置中将要加载的任何新文件;
确定加载所述识别的新文件中的至少一个是否使得所述装置崩溃;
基于加载所述识别的新文件是否使得所述装置崩溃来更新所述装置上的列表;以及
基于所述列表在所述装置的引导过程期间在所述装置中加载所述至少一个新文件中的文件以防止所述装置在引导过程期间崩溃。
15.一种计算机程序,包括:
用于识别在计算设备的引导过程期间在所述计算设备中将要加载的至少一个新文件,确定加载识别的新文件中的至少一个是否使得所述计算设备崩溃,基于加载所述识别的新文件是否使得所述计算设备崩溃来更新所述计算设备上的列表的代码;以及
用于基于所述列表在所述计算设备的引导过程期间在所述计算设备中加载所述至少一个新文件中的文件以防止所述计算设备在所述引导过程期间崩溃的代码。
16.根据权利要求15所述的计算机程序,其中所述计算机程序是计算机程序产品,其包括承载计算机程序代码的计算机可读介质,所述计算机程序代码在所述计算机可读介质上体现以与计算机一同使用。
17.一种使用指令进行编码的计算机可读介质,当所述指令由计算设备执行时:
识别在所述计算设备的引导过程期间在所述计算设备中将要加载的任何新文件;
确定加载所述识别的新文件中的至少一个是否使得所述计算设备崩溃;
基于加载所述识别的新文件是否使得所述计算设备崩溃来更新所述计算设备上的列表;以及
基于所述列表在所述计算设备的引导过程期间在所述计算设备中加载所述至少一个新文件中的文件以防止所述计算设备在引导过程期间崩溃。
18.一种设备,包括:
用于识别在设备的引导过程期间在所述设备中将要加载的至少一个新文件,确定加载识别的新文件中的至少一个是否使得所述设备崩溃,基于加载所述识别的新的文件是否使得所述设备崩溃来更新所述设备上的列表的装置;以及
用于基于所述列表在所述设备的引导过程期间在所述设备中加载所述至少一个新文件中的文件以防止所述设备在所述引导过程期间崩溃的装置。
CN201080026322.3A 2009-06-30 2010-05-25 用于在引导过程期间加载文件的方法和装置 Expired - Fee Related CN102460386B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB0911337A GB2471480A (en) 2009-06-30 2009-06-30 Preventing boot crashes due to new files
GB0911337.4 2009-06-30
PCT/IB2010/052321 WO2011001305A1 (en) 2009-06-30 2010-05-25 A method, apparatus and computer program for loading files during a boot- up process

Publications (2)

Publication Number Publication Date
CN102460386A true CN102460386A (zh) 2012-05-16
CN102460386B CN102460386B (zh) 2016-02-10

Family

ID=41008513

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201080026322.3A Expired - Fee Related CN102460386B (zh) 2009-06-30 2010-05-25 用于在引导过程期间加载文件的方法和装置

Country Status (6)

Country Link
US (1) US9081727B2 (zh)
EP (1) EP2449463A4 (zh)
KR (1) KR101420026B1 (zh)
CN (1) CN102460386B (zh)
GB (1) GB2471480A (zh)
WO (1) WO2011001305A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5910444B2 (ja) * 2012-09-28 2016-04-27 富士通株式会社 情報処理装置、起動プログラム、および起動方法
US10095529B2 (en) * 2016-06-07 2018-10-09 Microsoft Technology Licensing, Llc Font download on application boot

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1001339A2 (en) * 1998-10-13 2000-05-17 Hewlett-Packard Company Apparatus and method for an installation recovery system
US6675295B1 (en) * 2000-06-19 2004-01-06 Microsoft Corporation Method and computer system for detecting and correcting a failure in a computer application program during startup
CN1940884A (zh) * 2005-09-30 2007-04-04 联想(北京)有限公司 计算机系统、计算机网络及其方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5974546A (en) * 1997-05-08 1999-10-26 Micron Electronics, Inc. Apparatus and method to determine cause of failed boot sequence to improve likelihood of successful subsequent boot attempt
US6230285B1 (en) * 1998-09-08 2001-05-08 Symantec Corporation Boot failure recovery
CN1537260A (zh) * 2001-03-09 2004-10-13 皇家菲利浦电子有限公司 带有用于验证新部件的服务器的系统
US6898731B2 (en) * 2002-01-10 2005-05-24 International Business Machines Corporation System, method, and computer program product for preventing machine crashes due to hard errors in logically partitioned systems
US7734945B1 (en) * 2005-04-29 2010-06-08 Microsoft Corporation Automated recovery of unbootable systems
US7895474B2 (en) * 2007-05-03 2011-02-22 International Business Machines Corporation Recovery and restart of a batch application
JP5255348B2 (ja) * 2007-07-16 2013-08-07 ヒューレット−パッカード デベロップメント カンパニー エル.ピー. クラッシュダンプ用のメモリアロケーション
US8438423B1 (en) * 2009-03-31 2013-05-07 American Megatrends, Inc. Invalid setup recovery

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1001339A2 (en) * 1998-10-13 2000-05-17 Hewlett-Packard Company Apparatus and method for an installation recovery system
US6675295B1 (en) * 2000-06-19 2004-01-06 Microsoft Corporation Method and computer system for detecting and correcting a failure in a computer application program during startup
CN1940884A (zh) * 2005-09-30 2007-04-04 联想(北京)有限公司 计算机系统、计算机网络及其方法

Also Published As

Publication number Publication date
GB2471480A (en) 2011-01-05
WO2011001305A1 (en) 2011-01-06
KR20120030573A (ko) 2012-03-28
EP2449463A4 (en) 2012-11-21
US20120185686A1 (en) 2012-07-19
CN102460386B (zh) 2016-02-10
KR101420026B1 (ko) 2014-07-15
GB0911337D0 (en) 2009-08-12
EP2449463A1 (en) 2012-05-09
US9081727B2 (en) 2015-07-14

Similar Documents

Publication Publication Date Title
EP3109762B1 (en) Electronic device having external memory and method for operating the same
CN102004655B (zh) 自动安装驱动程序的装置及方法
US9959125B2 (en) Field update of boot loader using regular device firmware update procedure
EP2652599B1 (en) System reset
CN101344854B (zh) 通过SD卡对嵌入式Linux设备进行升级的方法
US20100192147A1 (en) Method of installing software, program, and information processing apparatus
CN107783776B (zh) 固件升级包的处理方法及装置、电子设备
CN104375856A (zh) 应用更新方法和装置
CN103136018A (zh) 一种基本输入输出系统bios的设置方法及系统
US20110265072A1 (en) Dynamic Installation of Files for Running Programs
CN103309751A (zh) 提供文件系统功能的终端的设备和方法
CN101506772B (zh) 环境状态改变以更改功能
US20140298316A1 (en) Managing method for application program installation and electronic device
CN112394906A (zh) 一种应用切换运行的方法及设备
CN107818026A (zh) 一种缓存分区重构的方法和装置
CN103365684A (zh) 更新方法和多域嵌入式系统
CN102460386A (zh) 用于在引导过程期间加载文件的方法、装置和计算机程序
CN105809027A (zh) 应用程序的权限控制方法及装置
CN110659052B (zh) 网络设备中系统软件的更新方法、系统及可读存储介质
CN113360379A (zh) 程序测试方法和程序测试装置
Bettany et al. Exam Ref 70-698 Installing and Configuring Windows 10
CN113419756A (zh) 一种文件升级方法、装置及电子设备
CN115878149A (zh) 一种固件升级方法、装置、设备及存储介质
CN103176908B (zh) Dmi信息存储方法及系统
CN115421761A (zh) 微控制单元应用程序升级方法、装置、系统、设备及介质

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
C41 Transfer of patent application or patent right or utility model
GR01 Patent grant
TA01 Transfer of patent application right

Effective date of registration: 20160118

Address after: Espoo, Finland

Applicant after: Technology Co., Ltd. of Nokia

Address before: Espoo, Finland

Applicant before: Nokia Oyj

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160210

Termination date: 20170525

CF01 Termination of patent right due to non-payment of annual fee