CN1282915A - 在应用程序模块不工作时自动卸载的方法和装置 - Google Patents
在应用程序模块不工作时自动卸载的方法和装置 Download PDFInfo
- Publication number
- CN1282915A CN1282915A CN00127015.XA CN00127015A CN1282915A CN 1282915 A CN1282915 A CN 1282915A CN 00127015 A CN00127015 A CN 00127015A CN 1282915 A CN1282915 A CN 1282915A
- Authority
- CN
- China
- Prior art keywords
- application program
- program module
- shared resource
- module
- computer
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/62—Uninstallation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Information Transfer Between Computers (AREA)
Abstract
这里描述了一种自动安装应用程序模块并且如果目标应用程序模块不能执行或正常工作时卸载目标应用程序模块的方法和设备。在一个实施例中,这种方法包括确定共享资源是否存在于目标媒介中,如果共享资源存在,确定应用程序模块是否能在目标媒介上正常工作,如果应用程序模块不能正常工作,自动卸载这个应用程序模块。
Description
本发明整体涉及计算机系统领域,更具体地说是涉及在应用程序模块不能正常工作时对目标应用程序模块的自动卸载。
有许多的技术使用安装程序来安装目标应用程序,这里安装程序本身就是一个应用程序。安装应用程序负责获取目标应用程序中必要的组成部分,并将它放置在目标媒介中,如果需要的话改动操作系统,来允许目标应用程序正常地执行。这些技术包括使用可执行程序或批处理文件。应用程序的安装通常是由用户启动的。如果存在问题,如果不能正常地运行就会要求用户卸载应用程序。
然而,如果不经用户知道和许可就自动安装应用程序,如果应用程序不能正常地运行或不能正常操作,应用程序可能会导致系统的闭锁。
本发明包括一种自动卸载在目标媒介上的一个应用程序模块的方法。在一个实施例中,这种方法包括确定共享资源是否存在于目标媒介中,如果共享资源存在,确定应用程序模块在目标媒介中能否正常工作,如果应用程序模块不能正常工作,自动卸载这个应用程序模块。
下面介绍其他实施例及其权利要求。
图1是使用本发明的设备和方法的信息分布系统的一个实施例的系统方框图;
图2显示了实现本发明的实施例的示范处理器系统或者用户计算机系统;
图3显示了本发明的一个实施例的逻辑图;
图4A和4B显示了依据本发明的原理提供的过程流程图的一个实施例;
图5显示了依据本发明的一个实施例的BIOS和非易失性存储器的逻辑图;
图6是显示依据本发明的一个实施例由源应用程序模块执行的操作的流程图;
图7是依据本发明的一个示范实施例在目标媒介上安装时由目标应用程序模块执行的操作的流程图。
本发明包括一种在目标应用程序模块不能工作或不能正常工作时自动卸载该目标应用程序模块的方法和设备。在一个实施例中,当计算机系统最初启动时,源应用程序模块在非易失性存储器中查找共享资源,如果没有发现,就生成共享资源并初始化共享资源中的第一和第二标志。在生成共享资源之前或之后,源应用程序模块在目标媒介上自动安装目标应用程序模块。目标应用程序模块一旦起动,将复位第一标志。如果目标应用程序模块正常工作,则目标应用程序模块复位第二标志。确定目标应用程序是否正常工作的标准依赖于诸多因素并可能相应地发生改变。
在随后的计算机系统加电自检(POST)过程中,当源应用程序模块启动时,源应用程序模块再一次查找共享资源,如果存在,首先询问第二标志。如果第二标志大于(或者等于)第二预定计数,表示目标应用程序模块对于第二预定计数已经连续地不能正常工作,源应用程序模块自动卸载或禁止目标应用程序模块。源应用程序模块在共享资源中可选地设置第三标志来防止目标应用程序模块的重新安装。
如果第二标志不大于第二预定计数,源应用程序模块就会查询第一标志。如果第一标志大于(或者等于)第一预定计数,表明目标应用程序模块对于第一预定计数已经连续地不能正常启动,源应用程序模块自动重新安装目标应用程序模块。然而,如果第一标志不大于第一预定计数,则源应用程序模块增量第一和第二标志并结束,表明目标应用程序模块正常工作。在一个实施例中,这一进程在随后的POST过程中无限期地重复。
定义
此处讨论的“计算机系统”是一个包括能够处理数据的电路的产品。计算机系统包括但并不局限于,通用计算机系统(例如,服务器,膝上电脑,桌面电脑,掌上电脑,个人电子设备等)、个人电脑(PC)、硬拷贝设备(例如,打印机,绘图仪,传真机等)、银行设备(例如,自动柜员机)以及类似的设备。信息媒介是一个代表商品和服务生产者提供信息的网址,还向商家提供关于供应商和其他商家提供的产品和/或服务等的相关信息。内容指的是应用程序、驱动程序、实用程序、有效负荷等及其组合,还包括图形、信息材料(文章、股票报价等)和类似的内容,或者单独或者任意组合。“有效负荷”是指用图形或信息资料(例如文章、股票报价等)表示的消息,包括文件或应用程序。在一个实施例中,将其在预定时间传送到系统的海量存储介质。另外,“通信链路”是指通信的媒介或信道。通信链路包括电话线、调制解调器连接、因特网连接、综合业务数字网(“ISDN”)连接、异步传递模式(ATM)连接、帧中继连接、以太网连接、同轴连接、光纤连接、卫星连接(例如数字卫星服务等)、无线连接、射频(RF)链接,电磁链接、双向寻呼连接等及其组合。
另外,操作系统(“OS”)的加载指的是操作系统引导装入程序的初始布置。在一个实施例中,在OS加载过程中,一般将一个扇区的信息从硬盘加载进系统存储器。或者,将引导装入程序从网络加载进系统存储器。OS“引导”是指引导装入程序的执行。这样将OS置于系统的控制下。在OS引导期间执行的一些动作包括系统配置、设备检测、驱动器加载和用户登录。
OS运行时间指的是引导阶段的完成和由OS执行应用程序的开始。在一个实施例中,在OS运行时间期间,OS和用户交互作用来执行和/或运行应用程序。
通电自检(POST)指的是在加载OS前执行的用以配置和检测系统硬件的指令。
下面来介绍包含本发明实施例的一个例示系统。
图1是使用本发明的设备和方法的信息分布系统10的一个实施例的系统方框图。系统10涉及到信息媒介的提供。它包含对因特网用户和系统轮廓文件的安全和私人储存库的构造和维护,这些主要是从授权服务注册、因特网服务注册、系统轮廓文件、用户偏好中收集的。最初,这些信息用于向所购买的硬件和软件产品的制造商以及在线或其他服务的供应商注册用户。随着时间的过去,用户数据用于生成一个用户轮廓文件,并通知用户相关软件的更新和升级,以鼓励在线购买相关产品,并允许一对一的定做销售和其他服务。
在一个实施例中,两个软件模块用来实现本发明的各个实施例。一个软件驻留于用户系统中,用来访问一个预定网址。例如,在一个实施例中,操作系统和基本输入输出系统(BIOS)预先安装在一个计算机系统中,当计算机系统随后首次启动时,一个出于讨论的目的被称为第一软件模块(在一个实施例中,第一软件模块是将在下文中描述的初始启动应用程序(ISUA))的应用程序将允许一个或多个可执行程序在引导前的环境中启动。在一个实施例中,第一软件模块使一个或多个可执行程序在OS的加载、引导、执行与/或运行之前的启动变得容易。在一个实施例中,用户被鼓励选择使用像这样的程序(即,第一软件模块的使用),在另一个实施例中,程序是自动启动的。包含在第一软件模块中的程序能够使工具和实用程序在适当的时间以正确的用户授权运行,还允许用户通过PC机上的因特网连接下载一个包括驱动程序、应用程序和附加有效负荷的第二软件模块。如果OS不能成功地启动,程序还可以提供系统的远程管理。
一旦第二个软件模块被传递过来,它可成为驻留存储器的程序,并且禁止第一软件模块的传送的拷贝。仍然驻留在系统的非易失性存储器中的第一软件模块的原始拷贝保持空闲,直到第二软件模块不能工作、遭破坏或被删除为止,此时,又传送第一软件模块的原始拷贝如上所述。第二软件模块包括将用户和因特网上的特定服务连接起来并指导用户到预定网址上寻求授权来下载更多的预约资料的一个应用程序。第二软件模块还包括和第一软件模块的内容相同或相近的内容。
在一个实施例中,系统还可以包括一个存储在只读存储器BIOS(ROMBIOS)中的初始有效负荷。在一个实施例中,初始有效负荷是第一软件模块(例如,ISUA)的一部分。在另一个实施例中,初始有效负荷作为一个模块存储在ROM BIOS中,同第一软件模块分开。在一个实施例中,初始有效负荷是从ROM BIOS中启动,并在通电自检(POST)之后,但在OS引导、加载和/或执行之前显示在屏幕上。这将在预定时间上发生,例如在系统被制造、装配和检测时,或者在终端用户首次激活系统时。在另一个实施例中,这个初始有效负荷在预定时间被复制到预定位置(比如系统的硬盘中),例如在系统被制造、装配和检测时,或者当终端用户首次激活系统时。一旦被复制,有效负荷在POST之后、OS操作之前执行,并在屏幕上显示图形、广告、动画、联合图象专家组(JPEG)/运动图象专家组(MPEG)格式的资料。当附加程序和/或有效负荷(通过因特网或其他外部连接)被传送时,在OS引导前和引导过程中,显示屏将被用于以消息或图形的方式提供定制屏幕。另外,除了随后的从网站上下载的程序(例如第二软件模块)之外,在第一软件模块中传送的可执行程序可以用来检测PC以决定所安装的设备、驱动程序和应用程序的各种类型。在一个实施例中,如同在题目为“在计算机上自动安装和配置软件的方法和设备”的其内容在此作为参考的共同未决的美国专利申请的序列号_中所描述的,第一软件模块用于为用户识别和自动生成快捷方式和/或书签。从网站上下载的程序包括基于用户偏好收集和维护的用户轮廓文件的软件。这些信息提供给信息媒体,信息媒体随后根据信息将信息和/或所编辑数据的一部分提供给供应商和其他商家,以便获得供应商和其他商家提供的信息的更新或修订。
参考图1,信息分布系统10包括通过一条或者多条通信链路301-30N与一台或多台用户计算机系统401-40N(“40”)连接起来的服务中心20。服务中心20包括一个或多个服务器22、一个或多个数据库24以及一个或多个计算机261-26M。一个或多个计算机261-26M可以由多个用户计算机系统401-40N同时访问。如果使用了多个计算机,则计算机261-26M可以通过局域网(LAN)或其他相似的连接技术进行连接。然而,对于服务中心20来说,也可以有其他配置。例如,较少数目的大型计算机(比如少数的主机、小型计算机等),带有在大型计算机上运行的、能够与用户计算机建立通信链路的一些内部程序和进程。
服务中心20也可以连接到远程网络50(例如因特网)或者远程位置(例如在附图1中没有显示的卫星)。远程网络50或者远程位置允许服务中心20提供可能存储在服务中心20中的更广泛的计算机软件、内容等。与服务中心计算机、例如261相连接的一个或多个数据库24用于存储包括在计算机26上可用的计算机软件的数据库项。在一个实施例中,每个用户计算机401-40N都有自己的不能被其他计算机访问的安全数据库(未显示)。通信链路301-30N允许一个或多个用户计算机系统401-40N同时和计算机261-26M连接。连接由服务器22管理。
在一个用户计算机系统40与信息服务计算机26建立双向通信之后,将内容以下述方式传送到用户计算机系统40。下载的内容包括一个用来检测用户和/或用户计算机系统的硬件和/或软件以便开发一个用户轮廓文件以及用户系统的轮廓文件的应用程序。从用户和/或用户计算机系统搜集的信息随后被提供给服务中心20,服务中心20根据用户和系统轮廓文件向用户计算机40提供附加内容。与服务计算机26相连的数据库的数据库项包括关于计算机软件、硬件和用户可以使用的第三方服务和产品的信息。在用户和/或系统轮廓文件基础上,内容进一步被传送给用户计算机来显示。该内容还包括信息摘要,例如现有计算机软件的补丁和纠错的可用性、现有计算机软件的新版本、全新计算机软件、新的帮助文件等。该内容还包括关于硬件和用户感兴趣的第三方产品和服务的可用性的信息。用户能够从可用产品和服务摘要中做出一个或多个选择,要求将产品从服务计算机26传送到用户计算机。或者,用户也可以从可用产品和服务摘要中购买所需的产品或服务。
图2显示了实现本发明的实施例的一个例示计算机系统100。计算机系统100显示了用户计算机系统401-40N和/或计算机261-26M(图1)的一个实施例,但也可以容易地使用其他的实施例。
参考图2,计算机系统100包括处理器或中央处理单元(CPU)104。所示的CPU 104包括一个进行计算的算术逻辑单元(ALU)、一个用于临时存储数据和指令的寄存器集合和一个控制系统100的操作的控制单元。在一个实施例中,CPU 104包括IntelTM公司出售的X86、PentiumTM、PentiumⅡTM、Pentium ProTM微处理器、AMDTM出售的K-6微处理器、或者CyrixTM公司出售的6×86MX微处理器中的任意一种。更多的例子还包括Digital Equipment CorporationTM(数字设备公司)出售的AlphaTM处理器、MotorolaTM出售的680X0处理器、或者IBMTM出售的Power PCTM处理器。另外,包括Sun Microsystems、MIPS、IBM、Motorola、NEC、Cyrix、AMD、Nexgen和其他公司出售的其他处理器种类中的任何一种都能用于实现CPU 104。CPU 104不仅仅局限于微处理器,还可以有其他形式,如微控制器、数字信号处理器、精简指令集计算机(RISC)、应用专用集成电路等。尽管只显示了一个CPU 104,计算机系统100也可以包括多个处理单元。
CPU 104通过CPU总线108与总线控制器112相连。总线控制器112包括集成在其内的存储器控制器116,但存储器控制器116也可以在总线控制器112外部。存储器控制器116提供了CPU 104或其他设备经存储器总线120访问系统存储器124的接口。在一个实施例中,系统存储器124包括同步动态随机存取存储器(SDRAM)。系统存储器124可以可选地包括附加的或者可替代的高速存储设备或存储电路。总线控制器112与系统总线128相连,系统总线128可以是外设部件互连(PCI)总线、工业标准结构(ISA)总线等。同系统总线128相连的是图形控制器、图形引擎或视频控制器132、海量存储设备152、通信接口设备156、一个或多个输入/输出(I/O)设备1681-168N、以及扩展总线控制器172。视频控制器132与能够在如数字144所指示的一单个卡或设备上集成的视频存储器136(例如8兆字节)和视频BIOS 140相连。视频存储器136用于容纳在显示屏148上显示信息的显示数据,视频BIOS 140包括用于控制视频控制器132的代码和视频服务。在另一个实施例中,视频控制器132通过高级图形端口(AGP)总线和CPU 104相连接。
海量存储设备152包括(但不仅仅局限于)硬盘、软盘、CD-ROM、DVD-ROM、磁带、高密度软盘、高容量可拆卸媒体、低容量可拆卸媒体、固态存储设备等及其组合。海量存储设备152还可以包括任何其他海量存储媒体。通信接口设备156包括网卡、调制解调器接口等,用于通过通信链路160访问网络164。I/O设备1681-168N包括键盘、鼠标、声卡、打印机和类似设备。I/O设备1681-168N可以是盘驱动器、例如紧致盘驱动器、数字盘驱动器、磁带驱动器、高速驱动器、强化驱动器、数字视盘(DVD)驱动器、固态存储设备、磁光盘驱动器、高密度软盘驱动器、高容量可拆卸驱动器、低容量媒体设备和/或其任何组合。扩展总线控制器172与包括系统固件176的非易失性存储器175相连。系统固件176包括用来控制计算机系统100中的硬件设备及其它实体的系统BIOS82。系统固件176还包括ROM 180和闪存(或EEPROM)184。扩展总线控制器172还与具有RAM、ROM和/或闪存(未显示)的扩展存储器188相连接。系统100另外还包括与总线控制器112相连接的存储器模块190。在一个实施例中,存储器模块190包括ROM 192和闪存(或EEPROM)194。
对于本领域普通技术人员来说熟悉的是,计算机系统100还包括一个操作系统(OS)和至少一个应用程序,在一个实施例中,将OS与应用程序从海量存储器152载入系统存储器124并在POST之后启动。OS包括但并不局限或限制在包括DOS、WindowsTM(例如Windows95TM,Windows98TM,Windows NTTM等)、Unix、Linux、OS/2、OS/9、Xenix等中的任何一种OS类型。操作系统是控制计算机系统的操作和资源分配的一个或多个程序的集合。应用程序是执行用户所要求的任务的一个或多个软件程序的集合。
根据计算机编程领域普通技术人员的实践,除非另外指明,在下文中参考由计算机系统100执行的操作的符号表示来描述本发明。这样的操作有时称作是由计算机执行的。这样将认识到,以符号表示的操作包括由CPU104对表示数据比特的电信号的处理和数据比特在系统存储器124中的存储单元上的维护,以及其他的信号处理。维护数据比特的存储单元是有与数据比特相符合的特定的电、磁、光或有机特性的物理区域。
当以软件实施时,本发明的元素实质上是执行必要任务的代码段。程序或代码段可以被存储在处理器可读媒体中或以包含在载波中的计算机数据信号在传播媒体或通信链路上发送。“处理器可读媒体”包括能够存储或传送信息的任何媒体。处理器可读媒体的例子包括电子线路、半导体存储设备、ROM、闪存、可擦除ROM(EROM)、软盘、CD-ROM、光盘、硬盘、光纤媒体、射频(RF)链路等。计算机数据信号包括能够在诸如电子网络信道、光纤、空中、电磁、射频链路等的传输媒体上传播的任何信号。代码段可通过因特网、内联网等计算机网络下载。
图3显示了计算机系统100的逻辑图。参考图2和3,系统固件176包括在POST期间载入系统存储器124并在随后由处理器104执行的软件模块和数据。在一个实施例中,系统固件176包括一个具有系统BIOS处理程序、硬件例程等的系统BIOS模块82、一个ROM应用程序接口(RAPI)模块84、一个初始启动应用程序(ISUA)模块86、一个初始有效负荷88a、密钥90、密码引擎92和显示引擎94。系统固件176的上述模块和部分包含于ROM180和/或闪存184中。或者,系统固件176的上述模块和部分也可以包含于ROM190和/或闪存194中。RAPI84、ISUA86和初始有效负荷88a每一个都在最初使用计算机系统100之前单独地开发并存储在系统固件176中。在一个实施例中,RAPI84、ISUA86和初始有效负荷88a每一个都包括由Phoenix Technologies,Ltd开发的专有软件。RAPI84提供了ROM应用程序和系统固件176之间的安全接口。在转让给Phoenix Technologies,Ltd的1999年6月18日提交的、题目为“安全使用基本输入输出(BIOS)服务的系统和方法”的共同未决的美国专利申请的序列号_中描述了RAPI 84的一个实施例,其内容在此作为参考。在转让给Phoenix Technologies,Ltd的1999年6月18日提交的题目为“在计算机上自动安装和配置软件的方法和设备”的共同未决的美国专利申请的序列号_中描述了ISUA 86的一个实施例,其内容在此作为参考。
如图3和4A和4B所示的一个实施例中,在最初对一个新的计算机系统100加电之后,系统以POST过程开始。在初始POST期间,ISUA 86被传送到海量存储设备152,如A1所示。在一个实施例中,这样的传送是在制造和/或装配过程中当系统100在操作系统安装之后(但是在载入和运行操作系统之前)首次加电时进行的。在另一个实施例中,这样的传送是在制造和/或装配过程之后在用户收到和加电系统100之后进行的。在另一个可代替实施例中,在ISUA 86传送期间,附加程序、应用程序、驱动程序、数据、图形和其他信息也可以被传送(例如,从ROM)到海量存储器152。例如,传送包括初始有效负荷88a到海量存储器152的传送,随后从海量存储器152传递出初始有效负荷。在1999年6月18日提交的、转让给Phoenix Technologies,Ltd的题目为“一种从系统固件向存储设备传送应用程序的系统和方法”的共同未决的美国专利申请的序列号_中描述了用于这种传送的系统和过程的一个实施例,其内容在此作为参考。在1999年3月19日提交的、题目为“一种提供基于存储器的设备仿真的方法和设备”的共同未决的美国专利申请的序列号09/272,859、在1999年6月18日提交的、题目为“提供基于存储器的设备仿真的方法和设备”的共同未决的美国专利部分继续申请的序列号、以及1999年6月18日提交的、题目为“在海量存储器中插入一个或者多个文件的系统和方法”的共同未决的美国专利申请的序列号_中描述了用于这种传送的系统和过程的其它实施例,每一个申请都转让给本发明的受让人Phoenix Technologies,Ltd,其内容在此作为参考。
在一个实施例中,ISUA 86是一个确定是否有驻留在终端用户系统中的预安装程序的计算机软件可执行程序。如果是,它将识别那些预安装的程序,并(在Windows操作系统的情况下,在桌面上)生成快捷方式或书签,来允许用户自动启动程序。在这个实施例中,如下所述可执行程序也能够启动和建立与服务器22和/或任何一个服务计算机26(图1)上的一个或者多个应用程序的双向通信。此外,在一个实施例中,初始有效负荷88a中的图形内容在POST期间通过显示引擎94显示在用户的显示器上。或者,初始有效负荷88a中的图形内容可以在随后的引导过程之后显示。例如,作为下述的用户轮廓文件的一部分,用户会被询问他或她是否想获得关于一种或多种产品和/或服务的附加信息。如果用户这样要求,所需产品和或服务的相关内容在随后的引导过程期间被显示。
一旦POST完成,OS被加载、执行和初始化。然后标准的OS驱动程序和服务程序被加载。然后提示用户输入包括诸如年龄、性别、爱好等人口统计信息的注册信息。另外,执行ISUA 86,在后台运行,保持空闲状态直到它检测到通过图2的网络164(例如,因特网)在计算机系统100与远程服务器(例如图1中的服务器22)之间建立的通信链路。在一个实施例中,ISUA 86可以通过操作系统查找,以确定是否有已经加载和已经安装在系统上的应用程序。如果有,一旦通信链路建立,ISUA86能自动为应用程序提供快捷方式和/或书签来发送进一个预定的服务器。这个通信链路可以通过套接字以一个网络协议堆栈(比如TCP/IP)或任何其他的本领域已知双向通信技术来建立。一旦建立了通信链路30,ISUA 86向服务器22(如A2所示)发出一个请求信号,以便从一个内容模块60下载一个初始内容程序包62。响应这个请求,服务器下载这个初始内容程序包62(如A3所示),在一个实施例中,该初始内容程序包62被存储在海量存储器152中。在一个实施例中,初始内容62和后续内容64可以单独开发,在服务器22上存储初始内容62和后续内容64之前,将每个内容都用密钥进行加密和/或数字签名。当初始内容62和或/后续内容64随后被下载进系统100中时,密码引擎92将使用密钥90对初始内容62和/或后续内容64进行解密。
如上所述,初始内容程序包62包括应用程序62a、驱动程序62b和有效负荷62c。在一个实施例中,应用程序62a包括一个数据加载应用程序和一个轮廓文件管理器应用程序。数据加载应用程序以与ISUA 86相同或相似的方式工作,一旦下载,则禁止并替代ISUA 86。更具体地,数据加载应用程序是一个也能够启动、建立和结束服务器22和计算机系统100之间的双向通信的计算机软件程序。数据加载应用程序还提供服务器22和计算机系统100之间的通信控制管理、以及促进终端用户系统和指定服务器之间的通信和下载到终端用户系统的内容等其他功能。
轮廓文件管理器根据用户偏好、系统硬件和在计算机系统100上安装的软件获得计算机系统100的用户和系统的轮廓文件。在获得计算机系统100的用户和系统轮廓文件基础上,轮廓文件管理器应用程序将结果传送给数据加载应用程序,数据加载应用程序随后将这些信息提供给服务器22,服务器22将用户告诉的偏好与数据库24(图1)进行匹配。结果可以在预定的时间间隔或根据用户要求被传送。然后,服务器22处理用户轮廓文件或人口统计学数据,并将内容对准有相似轮廓文件的用户。另外,多个用户的用户轮廓文件数据在服务器22中被编译和集合来生成一个总体用户轮廓文件模型。然后将内容传送到以用户轮廓文件数据和/或总体用户轮廓文件模块为基础的用户的计算机系统上(如A4所示)。后续内容64被下载并存储在系统固件176中,由数字88b所示。在一个实施例中,后续内容64被保存在非易失性存储器、例如闪存或EEPROM中,如同本领域普通技术人员所熟知的,后续内容的加载是通过重新擦写ROM完成的。后续内容64也可以作为一个或多个文件存储在海量存储器152中或被用于修正WindowsTM系统文件(在WindowsTM环境下)。轮廓文件收集过程在计算机系统100活动期间一直继续。在一个实施例中,内容可以在服务器22接收并分析了用户的轮廓文件之后才下载。
当计算机系统100随后被加电时(见图4B),系统再次执行POST。然后,在加载和/或执行操作系统之前,显示先前下载和保存在系统固件176中且有关版权问题已经解决的内容。在WindowsTM环境中,在初始加载操作系统期间显示的WindowsTM徽标随后被一个或多个显示保存在系统固件176中的以前下载的内容的屏幕所代替。
在与再闪烁ROM不同将内容作为一个或者多个文件存储在海量存储器152中的情况下,在引导或关闭时显示的WindowsTM徽标可以被改变或替换。利用这种方法的一个实施例包括用一个或多个显示内容的文件(例如,图形文件)替换相应的WindowsTM系统文件,如同在1999年6月18日提交的、题目为“在引导或关闭过程中显示图象”、转让给PhoenixTechnologies,Ltd的共同未决的美国专利申请的序列号_中所描述的,其内容在此作为参考。将引导Windows显示文件取名为LOGO.SYS,通常位于Windows目录中。首先将WindowsTM LOGO.SYS文件从Windows目录传送到其他目录。然后,将内容图形文件重命名为LOGO.SYS并传送到Windows目录下。当操作系统初次被运行时,操作系统将恢复这个文件,因此,内容在显示器上显示。WindowsTM期望LOGO.SYS文件是图形分辨率为320×400和256色的一个位图文件,尽管WindowsTM后来为了显示的目的将图象分辨率扩展到640×400。因此,内容图形文件要成为同样的图形格式(在重命名为LOGO.SYS之前通常以“.BMP”为扩展名进行命名)。
操作系统然后被加载、执行和初始化。标准操作系统驱动程序和应用程序也被加载。轮廓文件管理器被执行。当已经建立与预定网站的链接时,附加的内容会被下载和随后被显示。这样的附加内容既可以任意地被提供,也可以根据从用户或用户系统的调查中获得的信息被提供。在一个实施例中,一旦引导过程完成,显示屏的一部分将被用来提供用于访问关于以前显示过的消息或广告的详细信息的图标和快捷方式。在更进一步的实施例中,消息或广告在关闭过程期间可以再次被显示,例如,用其他的选择内容来替换屏幕显示的“Windows正在关机”或“现在可以安全关闭你的计算机”等消息。
图5显示了依据本发明的一个实施例的BIOS 205和非易失性存储器220的逻辑图。参考图5,逻辑图显示了可以实施为一个单独设备或多个设备的BIOS 205。BIOS 205包括一个源应用程序模块210和一个目标应用程序模块215及其它模块。在一个实施例中,源和目标模块210和215在生成BIOS 205的过程中被安装。至少一部分BIOS 205有电可改变的非易失性存储器,例如EEPROM或闪存。这样,在另一个实施例中,目标模块215在BIOS 205生成和安装之后被编程进BIOS 205。在一个实施例中,目标应用程序模块215是图3中所示的ISAU 86。在一个可替代的的实施例中,目标应用程序模块215也是替换ISAU 86之后的数据载入应用程序。源应用程序模块210在BIOS POST期间的一些时刻被执行。在一个实施例中,源应用程序模块210位于系统BIOS 82中(图3)。
图5还显示了可以采取许多形式的非易失性存储器220。在一个实施例中,非易失性存储器220包括一海量存储器(例如硬盘)、光学设备等或其组合(例如,图2中的海量存储器152),但并不仅仅局限或限定于这些。必须注意的是,源和目标应用程序模块210和215可以存储在非易失性存储器220中而不是在BIOS 205中。
参考图2和5,当计算机系统100最初被接通时,源应用程序模块210确定当前是否有操作系统,如箭头240所示。换句话说,源模块210查看是否全部条件都满足,以便安装目标应用程序215。在一个实施例中,源应用程序模块通过检测(ⅰ)目标媒介(例如硬盘)上的分区、(ⅱ)目标媒介上的知道的文件系统结构(例如FAT表)、(ⅲ)文件系统结构中的目标操作系统和/或(ⅳ)在目标应用程序中使用的必要文件的存在来确定操作系统的存在。
一旦确定操作系统已经存在,源应用程序模块210查看在目标媒介(例如,海量存储器220)的预定位置是否有共享资源230存在。如果共享资源230不存在,源应用程序模块210生成共享资源230,如箭头250所示,并将目标应用程序模块215安装(箭头245)在目标媒介(例如,海量存储器220)上,如数字225所示。共享资源230可以是在具有被源应用程序模块210和目标应用程序模块225两者都共享的标志或变量的非易失性存储器220中的文件或存储单元。或者,共享资源230可以位于BOIS 205(例如EEPROM,闪存等)的电可改变部分上。应该理解,共享资源230可以在目标应用程序225安装前、安装时或安装后生成。
一旦安装到目标媒介上,目标应用程序模块225就变成在计算机系统100上运行的可执行程序。在一个实施例中,每次计算机系统100被启动和操作系统被加载,目标应用程序模块225都会在后台执行。在这个实施例中,目标应用程序模块225可以是ISUA 86(附图3)。或者,目标应用程序模块225也可以是由ISUA 86下载到计算机系统100上并替代ISUA 86的数据加载应用程序。如上所述,ISUA 86在后台运行,并保持空闲,直到检测到一个因特网连接(或其他网络连接)。因此,ISUA 86定期地轮询(例如,每15秒一次)以查看是否存在因特网连接。
在一个实施例中,确定目标应用程序模块225是否正常工作的标准包括:(ⅰ)轮询以查看是否有因特网连接X次(例如5次),(ⅱ)检测有因特网连接,和/或(ⅲ)成功地下载数据加载应用程序。如果目标应用程序模块225是或变成数据加载应用程序,则用于确定目标应用程序模块225是否起作用的标准可能不同。数据加载应用程序的功能包括从远程计算机(例如,网站)下载内容,但并不仅仅局限和限定于此。必须注意到,目标应用程序模块225可以执行任何其他功能,因此确定目标应用程序模块225是否正常工作的标准也是不同的。然而,本发明的实施例提供了一个机构,该机构自动安装目标应用程序模块,在目标应用程序模块不能正常工作时自动卸载,以及/或在特定情况下自动重新安装目标应用程序模块,而不用管目标应用程序模块225是什么或目标应用程序模块被认为正常工作的条件如何。
如果目标应用程序模块225不能执行,则在共享资源中生成的第一标志不复位,使得源应用程序模块在下一次被执行时检测到目标应用程序模块执行或正常运行的失败。不能执行可能是由于很多因素,包括传送目标应用程序模块中的故障、目标媒介中的故障或服务于目标应用程序模块的操作系统的功能故障等。如果目标应用程序模块不能连续执行第一预定次数,则源应用程序模块执行目标应用程序模块在目标媒介上的自动重新安装。或者,源应用程序模块执行目标应用程序模块在另一媒介上的自动安装。
如果目标应用程序模块可以执行但不能正常工作,则在共享资源中生成的第二个标志不被复位,允许源应用程序模块在下一次被执行时检测到目标应用程序模块正常工作的失败。如果目标应用程序模块不能连续地正常工作第二预定次数,则源应用程序模块执行目标应用程序模块从目标媒介的自动卸载。在成功卸载之后,源应用程序模块可选地建立另一个标志来确保不会作出对自动安装目标应用程序模块的进一步的尝试。或者,允许用户复位这个标志或在预定时段过去之后复位这个标志,来允许源应用程序模块再尝试重新安装目标应用程序模块。
一旦目标应用程序模块225满足了标准,则复位第一和第二标志,以便在下一次执行时向源应用程序模块210表明目标应用程序模块225执行并正常工作。
源应用程序模块210也监视共享资源和/或目标应用程序模块225在无差错条件下的状态以考虑重新安装。例如,在硬盘上安装目标应用程序模块225之后,如果硬盘被拆除或被擦除,或安装了一个新的操作系统或系统文件而改变了目标应用程序模块225和/或共享资源230的特性,则源应用程序模块210检测到目标应用程序模块225和/或共享资源230不存在并重新安装它们。
图6是显示依据本发明的一个实施例由源应用程序模块300执行的操作的流程图。源应用程序模块300在BIOS POST期间的某点上启动的。参考图6,源应用程序模块300在框302处开始,在那里,源应用程序模块300在目标媒介(例如,诸如海量存储器或闪存等的非易失性存储器)上的预定位置查找共享资源。在框304,如果共享资源文件不存在,源应用程序模块300在目标媒介的预定位置生成并存储共享资源(框306)。源应用程序模块300然后在共享资源文件中生成和初始化几个标志。特别地,将SOURCE_APP_DISABLE设为0,将START_FAIL和EXIT_FAIL都设为1。然后,在框308,将目标应用程序模块安装在目标媒介上。在一个实施例中,安装和/或重新安装目标应用程序模型的步骤包括(ⅰ)确定分区表是否存在,(ⅱ)找到有效分区并判断是否支持其类型,(ⅲ)询问文件分配表和目录结构,以确定是否存在成功安装的操作系统,(ⅳ)询问操作系统的初始化文件等。在确定了操作系统已经安装之后,源应用程序模块处理文件系统结构,以便在目标子目录中生成附加文件项。在生成文件项之后,源应用程序模块把目标应用程序和相关文件解压缩并拷贝到目标子目录中去。一旦安装了目标应用程序模块,源应用程序模块300结束(框324)。注意,在目标媒介被拆除或被擦除的情况下,或者在共享资源文件被擦除的情况下,在源应用程序模块300的初始执行过程中执行框306和308。
另一方面,在框304,如果共享资源文件存在,表明目标应用程序模块已经安装,在框310,源应用程序模块300询问SOURCE_APP_DISABLE。如果SOURCE_APP_DISABLE等于1,则源应用程序模块300结束。如果SOURCE_APP_DISABLE不等于1,则源应用程序模块300在框312上询问EXIT_FAIL。如果EXIT_FAIL大于N,其中N是一个正整数(例如6),表明目标应用程序模块不能正常工作连续N次,源应用程序模块300自动卸载或禁止目标应用程序模块(框314),将SOURCE_APP_DISABLE修改为1(框316),然后结束。然而,在一个实施例中,为了防止过早地卸载目标应用程序模块,N被设置为2或更大的数。按照可能的失败原因,在所有情况下卸载目标应用程序模块可能是苛刻和不灵活的。例如,尽管目标应用程序能被正确地操作,可能的差错条件或失败原因可能是由于用户不正确地关闭计算机。
如果EXIT_FAIL不大于N,则源应用程序模块300询问START_FAIL(框318)。如果START_FAIL大于M,其中M是一个正整数(例如4),表明目标应用程序模块不能正常启动连续M次,则源应用程序模块300自动重新安装目标应用程序模块(框320)并结束。如果目标应用程序模块被擦除、破坏、与操作系统文件不相容等,它都不能正常地启动。如果START_FAIL不大于M,源应用程序模块300增量位于共享资源中的EXIT_FAIL和START_FAIL的值(框322)。
附图7是显示依据本发明的示范实施例当安装在目标媒介上时由目标应用程序模块400执行的操作的流程图。参考图7,目标应用程序模块400开始于框402,在那里执行初始化,例如初始化参数、证实操作系统文件存在、证实目标应用程序模块文件存在等。如果框402成功执行,则在框404将START_FAIL复位为0,表明目标应用程序模块400能够执行。在框406,确定目标应用程序模块400是否正常工作。确定目标应用程序模块400是否正常工作的标准随应用程序而变化,然而,上面依据一个实施例提供了例示性标准。如果目标应用程序模块400能正常地工作,则将EXIT_FAIL复位为0(框408),目标应用程序模块400在框410结束。如果目标应用程序模块400不能正常工作,则在框410结束而不复位EXIT_FAIL为0。
本发明提供了一个源应用程序模块,该源应用程序模块监视目标应用程序模块的功能,并在出故障的情况下自动卸载该目标应用程序模块。这样提供了很多优点,包括对由很多非确定性情况导致的失败的检测、在不需要用户知道或干涉的情况下目标应用程序模块的自动卸载、非确定性情况的自检来防止自动安装、以及不使用操作系统的情况下目标应用程序模块的卸载。
虽然在附图中描述和显示了特定的例示性实施例,但应该明白,这样的实施例仅仅是说明性的,而不限定该广阔的发明,本发明不仅仅局限于显示和描述的特定结构和布置,对于本领域普通技术人员来说,可以进行其他各种修改。
Claims (19)
1.一种自动卸载目标媒介上的应用程序模块的方法,包括:
确定共享资源是否存在于目标媒介上;以及
如果共享资源存在,
确定应用程序模块是否在目标媒介上正常工作,
如果应用程序模块不能正常工作,自动卸载这个应用程序模块。
2.根据权利要求1所述的方法,其特征在于,如果共享资源不存在,
生成共享资源;以及
在目标媒介上自动安装应用程序模块。
3.根据权利要求1所述的方法,其特征在于,确定应用程序模块是否在目标媒介上正常工作包括询问位于共享资源中的标志。
4.根据权利要求1所述的方法,其特征在于,自动卸载应用程序模块包括如果应用程序模块在预定数目次数内不能正常工作就自动卸载这个应用程序模块。
5.根据权利要求1所述的方法,其特征在于,如果共享资源存在,所述方法还包括:
确定应用程序模块是否在目标媒介上执行,
如果应用程序模块不能在目标媒介上执行,自动重新安装应用程序模块。
6.根据权利要求1所述的方法,其特征在于,目标媒介包括海量存储器。
7.根据权利要求1所述的方法,其特征在于,共享资源产生在下列中的一个上:闪存和海量存储器。
8.一种计算机程序产品,包括:
计算机可用媒介,在其中包含有计算机程序代码,用来确定共享资源是否存在于目标媒介上;以及
计算机可读程序代码,用来确定应用程序模块是否在目标媒介上正常工作,以及,如果存在共享资源且应用程序模块不能正常地工作时,用来自动卸载应用程序模块。
9.根据权利要求7所述的计算机程序产品,还包括如果共享资源不存在时生成共享资源并在目标媒介上自动安装应用程序模块的计算机可读程序代码。
10.根据权利要求8所述的计算机程序产品,其特征在于,确定应用程序模块是否正常工作的计算机可读程序代码包括用于询问位于共享资源中的标志的计算机可读程序代码。
11.根据权利要求8所述的计算机程序产品,其特征在于,自动卸载应用程序模块的计算机可读程序代码包括如果应用程序模块在预定数目次数内不能正常工作时自动卸载这个应用程序模块的计算机可读程序代码。
12.根据权利要求8所述的计算机程序产品,还包括确定应用程序模块是否在目标媒介上执行并且如果应用程序模块不能在目标媒介上执行时自动重新安装应用程序模块的计算机可读程序代码。
13.根据权利要求8所述的计算机程序产品,其特征在于,目标媒介包括海量存储器。
14.根据权利要求8所述的计算机程序产品,其特征在于,共享资源被生成在下列中的一个上:闪存和海量存储器。
15.一种计算机系统,包括:
具有一个或多个指令的存储元件;
与存储元件相连的处理器,所述处理器响应一个或多个指令,以便
确定共享资源在第一媒介上是否存在,
如果共享资源不存在,
在第二媒介上安装一个目标应用程序;
否则,
确定在第一媒介上的最近一次操作中目标应用程序是否正常工作,
如果目标应用程序不能正常工作,自动卸载目标应用程序。
16.根据权利要求15所述的计算机系统,其特征在于,存储元件是下列中的一种:只读存储器和随机存取存储器。
17.根据权利要求15所述的计算机系统,其特征在于,第一媒介是硬盘。
18.根据权利要求15所述的计算机系统,其特征在于,第二媒介是闪存。
19.根据权利要求15所述的计算机系统,其特征在于,如果目标应用程序连续N次不能正常工作,处理器响应一个或多个指令进一步自动卸载目标应用程序,其中N是一个大于1的正整数。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/336,254 US6453469B1 (en) | 1999-06-18 | 1999-06-18 | Method and apparatus to automatically deinstall an application module when not functioning |
US09/336,254 | 1999-06-18 | ||
US09/336254 | 1999-06-18 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1282915A true CN1282915A (zh) | 2001-02-07 |
CN1157654C CN1157654C (zh) | 2004-07-14 |
Family
ID=23315253
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB00127015XA Expired - Fee Related CN1157654C (zh) | 1999-06-18 | 2000-06-18 | 在应用程序模块不工作时自动卸载的方法和装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US6453469B1 (zh) |
JP (1) | JP4842421B2 (zh) |
CN (1) | CN1157654C (zh) |
TW (1) | TW476911B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101996101B (zh) * | 2009-08-13 | 2013-08-28 | 北京搜狗科技发展有限公司 | 输入法系统性能优化方法及装置 |
WO2014089734A1 (zh) * | 2012-12-10 | 2014-06-19 | 东莞宇龙通信科技有限公司 | 终端和应用程序恢复方法 |
CN103765380B (zh) * | 2011-07-01 | 2017-07-28 | 英特尔公司 | 用于事件的安全排队的方法和系统 |
CN107291517A (zh) * | 2017-07-26 | 2017-10-24 | 广东小天才科技有限公司 | 一种应用的卸载方法、装置及终端设备 |
Families Citing this family (47)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2341463B (en) * | 1998-09-12 | 2003-02-19 | Ibm | Software file loading |
US6486883B1 (en) * | 1999-06-18 | 2002-11-26 | Phoenix Technologies, Ltd. | Apparatus and method for updating images stored in non-volatile memory |
US6983315B1 (en) | 2000-01-18 | 2006-01-03 | Wrq, Inc. | Applet embedded cross-platform caching |
US6625754B1 (en) * | 2000-03-16 | 2003-09-23 | International Business Machines Corporation | Automatic recovery of a corrupted boot image in a data processing system |
US6789215B1 (en) * | 2000-04-21 | 2004-09-07 | Sprint Communications Company, L.P. | System and method for remediating a computer |
US6823508B1 (en) * | 2000-04-27 | 2004-11-23 | Microsoft Corporation | Automatic computer program customization based on a user information store |
CA2328644C (en) * | 2000-12-15 | 2005-05-10 | Ibm Canada Limited-Ibm Canada Limitee | Methods, systems, signals and media for encouraging users of computer readable content to register |
US7734285B2 (en) * | 2001-04-03 | 2010-06-08 | Qualcomm Incorporated | Method and apparatus for network initiated uninstallation of application program over wireless network |
US6948166B2 (en) * | 2001-04-05 | 2005-09-20 | International Business Machines Corporation | System and method for automatically de-installing previously installed software based on user defined preferences |
US20020157090A1 (en) * | 2001-04-20 | 2002-10-24 | Anton, Jr. Francis M. | Automated updating of access points in a distributed network |
CA2349654A1 (en) * | 2001-06-04 | 2002-12-04 | Ibm Canada Limited-Ibm Canada Limitee | Server configuration versioning tool |
US6944855B2 (en) * | 2001-10-25 | 2005-09-13 | Siemens Medical Solutions Health Services Corporation | System, method, and article of manufacture for creating and updating an application using software application elements |
US7673136B2 (en) * | 2002-02-26 | 2010-03-02 | Stewart Ian A | Method for secure multicast repeating on the public Internet |
US7604608B2 (en) * | 2003-01-14 | 2009-10-20 | Flowcardia, Inc. | Ultrasound catheter and methods for making and using same |
US7185335B2 (en) * | 2002-09-19 | 2007-02-27 | International Business Machines Corporation | Programmatic application installation diagnosis and cleaning |
CN1333314C (zh) * | 2002-12-11 | 2007-08-22 | 雄图资讯股份有限公司 | 软件执行控制系统 |
US7822962B2 (en) * | 2003-05-05 | 2010-10-26 | Peter Ar-Fu Lam | Application software configured to work with two operating systems |
US8095783B2 (en) | 2003-05-12 | 2012-01-10 | Phoenix Technologies Ltd. | Media boot loader |
US7590837B2 (en) * | 2003-08-23 | 2009-09-15 | Softex Incorporated | Electronic device security and tracking system and method |
US7287251B1 (en) * | 2003-10-16 | 2007-10-23 | Microsoft Corporation | Source engine for transferring a resource to local secure cache |
JP4874568B2 (ja) * | 2004-05-14 | 2012-02-15 | パナソニック株式会社 | アプリケーション管理装置及び管理方法 |
US7739681B2 (en) * | 2005-06-29 | 2010-06-15 | Novell, Inc. | Delayed application installation |
US20070118646A1 (en) * | 2005-10-04 | 2007-05-24 | Computer Associates Think, Inc. | Preventing the installation of rootkits on a standalone computer |
CN100419694C (zh) * | 2005-11-04 | 2008-09-17 | 鸿富锦精密工业(深圳)有限公司 | 检测硬盘安装位置正确性的系统及方法 |
US7984432B2 (en) * | 2006-05-30 | 2011-07-19 | Infineon Technologies Ag | Method for patching a read-only memory and a data processing system comprising a means of patching the read-only memory based on patch contexts |
US7890930B2 (en) * | 2006-12-11 | 2011-02-15 | International Business Machines Corporation | Method and system for allowing an eclipse feature to create/remove/update program groups and shortcuts, via an eclipse install handler |
CN100555298C (zh) * | 2007-06-08 | 2009-10-28 | 北京飞天诚信科技有限公司 | 虚拟个人办公环境的方法和设备 |
US8584119B2 (en) * | 2008-06-24 | 2013-11-12 | International Business Machines Corporation | Multi-scenerio software deployment |
US20100262953A1 (en) * | 2009-04-14 | 2010-10-14 | Barboni Michael P | Systems and methods for automatically enabling and disabling applications and widgets with a computing device based on compatibility and/or user preference |
US8584113B2 (en) * | 2009-11-09 | 2013-11-12 | Bank Of America Corporation | Cross-updating of software between self-service financial transaction machines |
US20110113416A1 (en) * | 2009-11-09 | 2011-05-12 | Bank Of America Corporation | Network-Enhanced Control Of Software Updates Received Via Removable Computer-Readable Medium |
US8972974B2 (en) * | 2009-11-09 | 2015-03-03 | Bank Of America Corporation | Multiple invocation points in software build task sequence |
US9122558B2 (en) * | 2009-11-09 | 2015-09-01 | Bank Of America Corporation | Software updates using delta patching |
US20110113226A1 (en) * | 2009-11-09 | 2011-05-12 | Bank Of America Corporation | Distribution Of Software Updates |
US9176898B2 (en) * | 2009-11-09 | 2015-11-03 | Bank Of America Corporation | Software stack building using logically protected region of computer-readable medium |
US9128799B2 (en) * | 2009-11-09 | 2015-09-08 | Bank Of America Corporation | Programmatic creation of task sequences from manifests |
US20110238572A1 (en) * | 2010-03-25 | 2011-09-29 | Bank Of America Corporation | Remote Control Of Self-Service Terminal |
US8898668B1 (en) | 2010-03-31 | 2014-11-25 | Netapp, Inc. | Redeploying baseline virtual machine to update a child virtual machine by creating and swapping a virtual disk comprising a clone of the baseline virtual machine |
US9319406B2 (en) * | 2011-07-12 | 2016-04-19 | Apple Inc. | System and method for linking pre-installed software to a user account on an online store |
EP2570920A1 (en) * | 2011-09-16 | 2013-03-20 | France Télécom | System and method for cross-platform application execution and display |
CN102521031B (zh) * | 2011-12-13 | 2014-11-05 | 华为终端有限公司 | 移动终端预置应用程序的管理方法和移动终端 |
US8850406B1 (en) * | 2012-04-05 | 2014-09-30 | Google Inc. | Detecting anomalous application access to contact information |
US9851965B2 (en) | 2015-06-19 | 2017-12-26 | Microsoft Technology Licensing, Llc | Storing optimization for customization resources |
US9740473B2 (en) | 2015-08-26 | 2017-08-22 | Bank Of America Corporation | Software and associated hardware regression and compatibility testing system |
CN109739633B (zh) * | 2019-01-08 | 2023-09-15 | 深圳市网心科技有限公司 | 一种共享计算管理方法及相关装置 |
US11928451B2 (en) | 2021-10-13 | 2024-03-12 | International Business Machines Corporation | Dynamic management of application uninstallation |
CN116383827B (zh) * | 2023-03-17 | 2024-06-14 | 中广核智能科技(深圳)有限责任公司 | 一种安全卸载可信功能机制方法、系统和存储介质 |
Family Cites Families (73)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5146568A (en) | 1988-09-06 | 1992-09-08 | Digital Equipment Corporation | Remote bootstrapping a node over communication link by initially requesting remote storage access program which emulates local disk to load other programs |
US5121345A (en) | 1988-11-03 | 1992-06-09 | Lentz Stephen A | System and method for protecting integrity of computer data and software |
US5142680A (en) | 1989-04-26 | 1992-08-25 | Sun Microsystems, Inc. | Method for loading an operating system through a network |
US5131089A (en) | 1989-06-12 | 1992-07-14 | Grid Systems Corporation | Solid state disk drive emulation |
JPH03168828A (ja) | 1989-11-29 | 1991-07-22 | Canon Inc | 情報処理装置 |
US5307497A (en) | 1990-06-25 | 1994-04-26 | International Business Machines Corp. | Disk operating system loadable from read only memory using installable file system interface |
US5128995A (en) | 1990-07-23 | 1992-07-07 | International Business Machines Corp. | Apparatus and method for loading a system reference diskette image from a system partition in a personal computer system |
US5214695A (en) | 1990-07-23 | 1993-05-25 | International Business Machines Corporation | Apparatus and method for loading a system reference diskette image from a system partition in a personal computer system |
EP0483865A3 (en) | 1990-11-02 | 1992-09-02 | Kabushiki Kaisha Toshiba | Personal computer capable of changing boot priority |
EP0489227B1 (en) | 1990-12-06 | 1998-12-23 | Tandberg Data Asa | Data storage system having removable media and equipped to download a control program from the removable media |
US5594903A (en) | 1991-02-26 | 1997-01-14 | Lynx Real-Time Systems, Inc. | Operating System architecture with reserved memory space resident program code identified in file system name space |
SE469956B (sv) * | 1991-11-27 | 1993-10-11 | Icl Systems Ab | Förfarande och arrangemang för att minska mängden information som krävs vid enhetlig revidering av programvara i ett flertal användarenheter i ett datorsystem |
US5452454A (en) | 1991-12-10 | 1995-09-19 | Digital Equipment Corporation | Generic remote boot for networked workstations by creating local bootable code image |
US5471674A (en) | 1992-02-07 | 1995-11-28 | Dell Usa, L.P. | Computer system with plug-in override of system ROM |
EP0559222A2 (en) | 1992-03-06 | 1993-09-08 | Microsoft Corporation | Improved method for loading programs |
US5325532A (en) | 1992-09-25 | 1994-06-28 | Compaq Computer Corporation | Automatic development of operating system boot image |
US5469573A (en) | 1993-02-26 | 1995-11-21 | Sytron Corporation | Disk operating system backup and recovery system |
US5463766A (en) | 1993-03-22 | 1995-10-31 | Dell Usa, L.P. | System and method for loading diagnostics routines from disk |
US5522076A (en) | 1993-05-13 | 1996-05-28 | Kabushiki Kaisha Toshiba | Computer system having BIOS (basic input/output system)-ROM (Read Only Memory) writing function |
US5444850A (en) | 1993-08-04 | 1995-08-22 | Trend Micro Devices Incorporated | Method and apparatus for controlling network and workstation access prior to workstation boot |
US5418918A (en) | 1993-09-10 | 1995-05-23 | Compaq Computer Corp. | Scanning initial CD-ROM sectors for a boot record and executing said boot record to load and execute floppy disk image corresponding to the existing floppy drive |
US5379431A (en) | 1993-12-21 | 1995-01-03 | Taligent, Inc. | Boot framework architecture for dynamic staged initial program load |
FR2718262B1 (fr) | 1994-03-31 | 1996-05-24 | Sgs Thomson Microelectronics | Mémoire tampon à adressage modulo. |
US5504905A (en) | 1994-05-17 | 1996-04-02 | International Business Machines Corporation | Apparatus for communicating a change in system configuration in an information handling network |
US5604890A (en) | 1994-08-16 | 1997-02-18 | Miller; Paul B. | Coupling device for the switching of data lines between a data storage device controller and a plurality of bootable data storage devices |
US5864698A (en) | 1994-08-24 | 1999-01-26 | Packard Bell Nec | Disk based bios |
US5732266A (en) * | 1994-09-02 | 1998-03-24 | Compaq Computer Corporation | Storage medium storing application programs and application initialization files and automatic launching of computer applications stored on the storage medium |
JPH0887460A (ja) * | 1994-09-19 | 1996-04-02 | Seiko Epson Corp | インストールシステム |
US5652868A (en) | 1994-09-27 | 1997-07-29 | International Business Machines Corporation | Data processor having BIOS decryption of emulated media images |
US5694583A (en) | 1994-09-27 | 1997-12-02 | International Business Machines Corporation | BIOS emulation parameter preservation across computer bootstrapping |
US5586327A (en) | 1994-09-27 | 1996-12-17 | International Business Machines Corporation | Extended initialization for personal data processing systems |
US5802363A (en) | 1994-09-27 | 1998-09-01 | International Business Machines Corporation | Bios dynamic emulation of multiple diskettes from a single media |
US5652886A (en) | 1994-10-03 | 1997-07-29 | United Technologies Corporation | System for loading a boot program into an initially blank programmable memory of a microprocessor using state machine and serial bus |
US5581740A (en) | 1994-10-04 | 1996-12-03 | Dell Usa, L.P. | System for reading CD ROM data from hard disks |
JP3946275B2 (ja) * | 1995-01-10 | 2007-07-18 | 富士通株式会社 | リモートインストールシステムおよび方法 |
US5715456A (en) | 1995-02-13 | 1998-02-03 | International Business Machines Corporation | Method and apparatus for booting a computer system without pre-installing an operating system |
US5805898A (en) * | 1995-02-24 | 1998-09-08 | International Business Machines Corporation | Method and apparatus for estimating installation time in a data processing system |
JPH08234992A (ja) * | 1995-02-27 | 1996-09-13 | Matsushita Electric Ind Co Ltd | 分割インストール方法 |
US6282712B1 (en) * | 1995-03-10 | 2001-08-28 | Microsoft Corporation | Automatic software installation on heterogeneous networked computer systems |
US5742829A (en) * | 1995-03-10 | 1998-04-21 | Microsoft Corporation | Automatic software installation on heterogeneous networked client computer systems |
US5781758A (en) | 1995-03-23 | 1998-07-14 | Apple Computer, Inc. | Software emulation system with reduced memory requirements |
US5701477A (en) | 1995-03-30 | 1997-12-23 | Cirrus Logic, Inc. | Method and apparatus for master boot record shadowing |
US5832251A (en) | 1995-06-02 | 1998-11-03 | Nec Corporation | Emulation device |
US5748957A (en) | 1995-06-27 | 1998-05-05 | Klein; Dean A. | Computer system usage determination based on hard disk drive activity |
JP3088269B2 (ja) | 1995-07-26 | 2000-09-18 | 日本電気通信システム株式会社 | コンピュータネットワークシステム及びそのオペレーティングシステムの版数管理方法 |
US5664194A (en) | 1995-12-04 | 1997-09-02 | Metricom, Inc. | Method for autonomously transferring code to a computer without accessing local memory by the central processing unit |
US5819063A (en) | 1995-09-11 | 1998-10-06 | International Business Machines Corporation | Method and data processing system for emulating a program |
US5745568A (en) * | 1995-09-15 | 1998-04-28 | Dell Usa, L.P. | Method of securing CD-ROM data for retrieval by one machine |
US5754853A (en) | 1995-12-15 | 1998-05-19 | Dell Usa, Lp | System for executing utility programs while preserving the state of a native operating system |
US5790849A (en) | 1995-12-22 | 1998-08-04 | Intel Corporation | Method and apparatus to permit the boot of a shared memory buffer architecture employing an arbitrary operating system |
US5796984A (en) | 1996-01-26 | 1998-08-18 | Dell Usa, L.P. | Operating system independent apparatus and method for eliminating peripheral device functions |
US5805880A (en) | 1996-01-26 | 1998-09-08 | Dell Usa, Lp | Operating system independent method for avoiding operating system security for operations performed by essential utilities |
US5694600A (en) | 1996-02-09 | 1997-12-02 | Iomega Corporation | Methods and apparatus for booting a computer having a removable media disk drive |
US5732268A (en) | 1996-02-26 | 1998-03-24 | Award Software International | Extended BIOS adapted to establish remote communication for diagnostics and repair |
US5933646A (en) * | 1996-05-10 | 1999-08-03 | Apple Computer, Inc. | Software manager for administration of a computer operating system |
US5758154A (en) * | 1996-06-05 | 1998-05-26 | Microsoft Corporation | Method and system for storing configuration data into a common registry |
US6151643A (en) * | 1996-06-07 | 2000-11-21 | Networks Associates, Inc. | Automatic updating of diverse software products on multiple client computer systems by downloading scanning application to client computer and generating software list on client computer |
US5805882A (en) | 1996-07-19 | 1998-09-08 | Compaq Computer Corporation | Computer system and method for replacing obsolete or corrupt boot code contained within reprogrammable memory with new boot code supplied from an external source through a data port |
US5907679A (en) | 1996-08-19 | 1999-05-25 | Visiontek | Hard drive upgrade system |
US5854905A (en) | 1996-09-03 | 1998-12-29 | Intel Corporation | Extensible bios for boot support of devices on multiple hierarchical buses |
US5764593A (en) | 1996-12-04 | 1998-06-09 | Keylabs, Inc. | Method and system for the interception and control of the computer boot process |
JPH10214208A (ja) * | 1997-01-31 | 1998-08-11 | Meidensha Corp | ソフトウェアの異常監視方式 |
GB2321981B (en) * | 1997-02-06 | 2002-01-09 | Ibm | Hosted machine code installation |
US6073123A (en) * | 1997-02-26 | 2000-06-06 | Staley; Clinton A. | Method and apparatus for detecting unauthorized copies of software |
US5887164A (en) | 1997-06-06 | 1999-03-23 | National Instruments Corporation | System and method for enabling a target computer to use storage resources of a host computer |
US5901310A (en) | 1997-09-11 | 1999-05-04 | Ati Technologies, Inc. | Storing firmware in compressed form |
US6279156B1 (en) * | 1999-01-26 | 2001-08-21 | Dell Usa, L.P. | Method of installing software on and/or testing a computer system |
US6167567A (en) * | 1998-05-05 | 2000-12-26 | 3Com Corporation | Technique for automatically updating software stored on a client computer in a networked client-server environment |
US6253374B1 (en) * | 1998-07-02 | 2001-06-26 | Microsoft Corporation | Method for validating a signed program prior to execution time or an unsigned program at execution time |
US6189147B1 (en) * | 1998-10-13 | 2001-02-13 | Hewlett-Packard Company | Apparatus and method for an installation recovery system |
US6279154B1 (en) * | 1998-10-13 | 2001-08-21 | Hewlett-Packard Company | Apparatus and method for an install system for third party applications |
US6308326B1 (en) * | 1999-01-08 | 2001-10-23 | Apple Computer, Inc. | Run-time modules for dynamically adjusting computer operation |
US6269480B1 (en) * | 1999-03-29 | 2001-07-31 | International Business Machines Corporation | Cross platform installer-with the ability to create platform independent variables of specific operating system variables from a scripting language |
-
1999
- 1999-06-18 US US09/336,254 patent/US6453469B1/en not_active Expired - Lifetime
-
2000
- 2000-06-18 CN CNB00127015XA patent/CN1157654C/zh not_active Expired - Fee Related
- 2000-06-19 JP JP2000182558A patent/JP4842421B2/ja not_active Expired - Fee Related
- 2000-11-21 TW TW089111934A patent/TW476911B/zh not_active IP Right Cessation
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101996101B (zh) * | 2009-08-13 | 2013-08-28 | 北京搜狗科技发展有限公司 | 输入法系统性能优化方法及装置 |
CN103765380B (zh) * | 2011-07-01 | 2017-07-28 | 英特尔公司 | 用于事件的安全排队的方法和系统 |
WO2014089734A1 (zh) * | 2012-12-10 | 2014-06-19 | 东莞宇龙通信科技有限公司 | 终端和应用程序恢复方法 |
CN104040496A (zh) * | 2012-12-10 | 2014-09-10 | 东莞宇龙通信科技有限公司 | 终端和应用程序恢复方法 |
US9367403B2 (en) | 2012-12-10 | 2016-06-14 | Dongguan Yulong Telecommunication Tech Co., Ltd. | Terminal and application restoring method |
CN104040496B (zh) * | 2012-12-10 | 2017-06-23 | 东莞宇龙通信科技有限公司 | 终端和应用程序恢复方法 |
CN107291517A (zh) * | 2017-07-26 | 2017-10-24 | 广东小天才科技有限公司 | 一种应用的卸载方法、装置及终端设备 |
Also Published As
Publication number | Publication date |
---|---|
US6453469B1 (en) | 2002-09-17 |
JP4842421B2 (ja) | 2011-12-21 |
TW476911B (en) | 2002-02-21 |
JP2001051835A (ja) | 2001-02-23 |
CN1157654C (zh) | 2004-07-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1157654C (zh) | 在应用程序模块不工作时自动卸载的方法和装置 | |
CN1211734C (zh) | 计算机上自动安装和配置软件的方法和设备 | |
CN100385386C (zh) | 在引导和关机期间显示图象的方法 | |
CN1302381C (zh) | 创建并展开较小微软视窗应用程序的方法和设备 | |
US6473855B1 (en) | Method and apparatus for providing content on a computer system based on usage profile | |
US6438750B1 (en) | Determining loading time of an operating system | |
US6449682B1 (en) | System and method for inserting one or more files onto mass storage | |
US6401202B1 (en) | Multitasking during BIOS boot-up | |
US5931909A (en) | System for multiple-client software installation and upgrade | |
US6477642B1 (en) | Method and apparatus for extending BIOS control of screen display beyond operating system boot process | |
EP1584007B1 (en) | System to automatically process components on a device | |
US6457122B1 (en) | Fault tolerant process for the delivery of programs to writeable storage device utilizing pre-operating system software/firmware | |
CN102591675B (zh) | 使用共享存储块管理多软件镜像的方法和系统 | |
US20040098427A1 (en) | Device memory management during electronic file updating | |
CN101114233A (zh) | 固件更新的设备与方法 | |
US20090210871A1 (en) | System and method for software application migration | |
CN1183458C (zh) | 将应用程序从系统固件传递到存储设备的方法和系统 | |
US6715043B1 (en) | Method and system for providing memory-based device emulation | |
CN101490645A (zh) | 用以设备虚拟化的方法及设备 | |
WO2006023274A2 (en) | System and method for configuring computer for operation | |
CN1269044C (zh) | 一种更新存储在非易失性存储器中的图象的设备和方法 | |
CN114296835B (zh) | 应用程序的启动方法和装置 | |
US20090144722A1 (en) | Automatic full install upgrade of a network appliance | |
US6647492B1 (en) | Method of providing persistent memory to a hand-held platform operating system on a computer system | |
EP1086420A2 (en) | Method and system for providing memory-based device emulation |
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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20040714 Termination date: 20100618 |