CN1302381C - 创建并展开较小微软视窗应用程序的方法和设备 - Google Patents

创建并展开较小微软视窗应用程序的方法和设备 Download PDF

Info

Publication number
CN1302381C
CN1302381C CNB001262963A CN00126296A CN1302381C CN 1302381 C CN1302381 C CN 1302381C CN B001262963 A CNB001262963 A CN B001262963A CN 00126296 A CN00126296 A CN 00126296A CN 1302381 C CN1302381 C CN 1302381C
Authority
CN
China
Prior art keywords
executable program
operating system
user
wdl
program
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
CNB001262963A
Other languages
English (en)
Other versions
CN1283817A (zh
Inventor
C·程
B·袁
J·-P·阿布格拉尔
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.)
Phoenix Technologies Ltd
Original Assignee
Phoenix Technologies Ltd
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 Phoenix Technologies Ltd filed Critical Phoenix Technologies Ltd
Publication of CN1283817A publication Critical patent/CN1283817A/zh
Application granted granted Critical
Publication of CN1302381C publication Critical patent/CN1302381C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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

Abstract

一种方法,包括:按照Windows控制面板语言(CPL)格式创建可执行程序;将可执行程序存储在第一非易失性存储器中;从第一非易失性存储器向第二非易失性存储器传送该可执行程序;以及配置操作系统,使操作系统完成引导后就启动该可执行程序。

Description

创建并展开较小微软视窗应用程序的方法和设备
技术领域
本发明涉及可执行程序尺寸的减小。特别地,本发明描述了一种为计算设备的自动配置创建并展开(deploy)较小Microsoft Windows应用程序的方法和设备。
背景技术
计算机在收集和分配信息中的越来越多的使用已经暴露了典型收集和分配渠道上的许多问题。例如,一种当前的软件分配系统使软件销售商能够通过网络向多个用户提供软件。此系统还使销售商能够按照用户的要求更新和维护软件,使用户能够通过网络从不同的软件销售商那里按照用户的要求得到软件。然而,这样一个系统只能按用户的要求提供软件和相关服务,而没有考虑到用户的需求或偏好。其结果是,此系统对于用户的特定需求和/或偏好不是最优化的。
通常,计算机系统运到用户时是没有捆绑任何软件的。当计算机制造商想要增加软件包来增加系统的感知的(perceived)终端用户价值时,就会增加配置时间和花费,因为每个附加软件包都必须在系统的装配阶段进行安装和调试。为了节约时间,制造商可以提前配置系统的这种组件,如硬盘驱动程序。但是,如果已安装的软件需要作一些改变,则制造商必须要考虑库存成本和浪费的配置时间。
一种可能的解决方法是在独立的存储介质、例如软盘或光盘(CD-ROM或DVD-ROM)上包含软件。然后用户就可以将这种附加软件安装到计算机系统上。然而,这种解决方法需要用户花费时间来安装软件,而且,如果用户不能正确地安装软件,还会产生附加的客户支持问题。另外,用户可以选择不安装制造商预定安装的一种或多种应用程序,如演示软件或其他广告软件。
制造商可用的另一种可能的解决方法是在计算机系统中放入可以在计算机启动时自动装载、然后安装附加应用程序的软件。这种软件可以不引人注意地从网上下载附加应用程序,并安装这些程序。而且,这种软件必须尽可能地小,以减少对计算机硬件资源的使用。
目前,可以在由微软公司销售的32位版本的操作系统(如Windows 95TM、Windows 98TM和Windows NTTM,通称为Windows)下获得的最小可执行程序在用微软公司销售的诸如Visual C++的版本5的编译器进行编译后体积约为8K。但是,这是在假设没有任何功能而且去除了所有的调试支持后得到的结果。因此,要得到任一功能或提供调试能力的话,就会增加程序的体积。尽管编译后的程序的大小根据使用的特定编译器和文件类型等因素的不同而不同,但是对一个应用程序所能达到的即使是最小的编译后的体积也是相当地大。
假定需要拥有一个比当前可使用可执行程序格式达到的最小体积还要小、且能够在不修改Windows系统注册表的情况下在Windows启动时自动启动的Windows应用程序,就不能使用标准的Windows可执行文件格式。
因此,在技术上存在着对一种创建较小微软Windows应用程序的方法和设备的需求,这种应用程序在启动时可执行,而且不需要修改Windows就能兼容。
发明内容
本方法包括根据Windows Control Panel Language(Windows控制面板语言,CPL)格式来创建可执行程序;将该可执行程序存储到第一非易失性存储器中;将可执行程序从第一非易失性存储器传输到第二非易失性存储器中;以及,配置操作系统,使操作系统完成引导后就启动该可执行程序。
根据本发明的一个方面,一种利用减小了大小的应用程序的方法,包括:
按照Windows控制面板语言格式创建可执行程序;
将所述可执行程序存储在第一非易失性存储器中;
从所述第一非易失性存储器向第二非易失性存储器传送所述可执行程序;以及
配置操作系统,使操作系统在完成引导后就运行所述可执行程序。
根据本发明的另一个方面,一种利用减小了大小的应用程序的设备,包括:
一个包括一条或多条指令的存储器;以及
一个与所述存储器相连的处理器,所述处理器响应于所述一条或多条指令:
从一个非易失性存储器向第二存储器传输按照Windows控制面板语言格式创建的可执行程序,以及
配置操作系统以使所述操作系统完成引导后就启动所述可执行程序。
附图说明
图1是使用本发明的方法和设备的信息分配系统的一个实施例的系统方框图;
图2显示了能够实现本发明实施例的例示性处理器系统或用户计算机系统;
图3显示了图1中的信息分配系统的一个实施例的细节部分的方框图;
图4显示了依据本发明的原理提供的过程流程图的一个实施例;
图5显示了依据本发明的原理配置的计算机系统内包含的存储器的一个实施例的方框图;
图6显示了详述依据本发明的原理执行的较小微软Windows应用程序的开发过程的一个例子的流程图;
图7显示了详述依据本发明的原理执行的较小微软Windows应用程序的操作的一个例子的流程图。
具体实施方式
定义
此处讨论的“计算机系统”是一个包括能够处理数据的电路的产品。计算机系统包括但并不局限于,通用计算机系统(例如,服务器,膝上电脑,桌面电脑,掌上电脑,个人电子设备等)、个人电脑(PC)、硬拷贝设备(例如,打印机,绘图仪,传真机等)、银行设备(例如,自动柜员机)以及类似的设备。信息媒介是一个代表商品和服务生产者提供信息的网址,还向商家提供关于供应商和其他商家提供的产品和/或服务等的相关信息。内容指的是应用程序、驱动程序、实用程序、有效负荷等及其组合,还包括图形、信息材料(文章、股票报价等)和类似的内容,或者单独或者任意组合。“有效负荷”是指用图形或信息资料(例如文章、股票报价等)表示的消息,包括文件或应用程序。在一个实施例中,将其在预定时间传送到系统的海量存储介质。另外,“通信链路”是指通信的媒介或信道。通信链路包括电话线、调制解调器连接、因特网连接、综合业务数字网(“ISDN”)连接、异步传递模式(ATM)连接、帧中继连接、以太网连接、同轴连接、光纤连接、卫星连接(例如数字卫星服务等)、无线连接、射频(RF)链接,电磁链接、双向寻呼连接等及其组合。
另外,操作系统(“OS”)的加载指的是操作系统引导装入程序的初始布置。在一个实施例中,在OS加载过程中,一般将一个扇区的信息从硬盘加载进系统存储器。或者,将引导装入程序从网络加载进系统存储器。OS“引导”是指引导装入程序的执行。这样将OS置于系统的控制下。在OS引导期间执行的一些动作包括系统配置、设备检测、驱动器加载和用户登录。
OS运行时间指的是引导阶段的完成和由OS执行应用程序的开始。在一个实施例中,在OS运行时间期间,OS和用户交互作用来执行和/或运行应用程序。
通电自检(POST)指的是在加载OS前执行的用以配置和检测系统硬件的指令。
下面来介绍包含本发明实施例的一个例示系统。
本发明提供了一种通过采用Windows控制面板库(CPL)格式创建较小Windows应用程序而不改变Windows系统从而避开微软Windows(“Windows”)可执行程序的尺寸限制的方法。CPL文件格式具有与标准Windows动态链接库(DLL)文件类似的结构,该文件具有作为单独的应用程序执行的附加性能。应用程序一旦被装载,就可以通过在Windows目录下“启动”文件夹里包含快捷方式或“win.ini”文件的修改在操作系统启动时执行。然后,无需用户的干涉,应用程序就可以下载并配置恰当的软件。
这涉及到将可执行图象(例如应用程序)从系统的基本输入输出系统(BIOS)传送到系统的硬盘或其他大容量存储设备。在用户不进行干预的情况下,每次操作系统启动时都会执行该应用程序或得到的应用程序的替换物。本文中将传输图象称为因特网启动应用程序(ISUA)。该应用程序便于构造和维护一个安全的、专用的主要从授权服务注册、因特网服务注册、系统轮廓文件(profile)和用户偏好等收集到的因特网用户和系统轮廓文件的储存库。最初,这些信息用于向所购买的硬件和软件产品的制造商和在线或其他服务的供应商注册用户。随着时间的过去,用户数据用于创建一个用户轮廓文件,并通知用户相关软件的更新或升级,以鼓励在线购买相关软件,并允许一对一的定制销售和其他服务。
在本发明的各个实施例中使用了两个软件模块。一个软件驻留于用户系统中,用来访问一个预定网址。例如,在一个实施例中,操作系统和基本输入输出系统(BIOS)预先安装在一个计算机系统中,当计算机系统随后首次启动时,一个出于讨论的目的被称为第一软件模块(在一个实施例中,第一软件模块是将在下文中描述的初始启动应用程序(ISUA))的应用程序将允许一个或多个可执行程序在引导前的环境中启动。在一个实施例中,第一软件模块使一个或多个可执行程序在OS的加载、引导、执行与/或运行之前的启动变得容易。在一个实施例中,用户被鼓励选择使用像这样的程序(即,第一软件模块的使用),在另一个实施例中,程序是自动启动的。包含在第一软件模块中的程序能够使工具和实用程序在适当的时间以正确的用户授权运行,还允许用户通过PC机上的因特网连接下载一个包括驱动程序、应用程序和附加有效负荷的第二软件模块。如果OS不能成功地启动,程序还可以提供系统的远程管理。
一旦第二个软件模块被传递过来,它可成为驻留存储器的程序,并且禁止第一软件模块的传送的拷贝。仍然驻留在系统的非易失性存储器中的第一软件模块的原始拷贝保持空闲,直到第二软件模块不能工作、遭破坏或被删除为止,此时,对传送第一软件模块的原始拷贝如上所述。第二软件模块包括将用户和因特网上的特定服务连接起来并指导用户到预定网址上寻求授权来下载更多的预约资料的一个应用程序。第二软件模块还包括和第一软件模块的内容相同或相近的内容。
在一个实施例中,系统还可以包括一个存储在只读存储器BIOS(ROM BIOS)中的初始有效负荷。在一个实施例中,初始有效负荷是第一软件模块(例如,ISUA)的一部分。在另一个实施例中,初始有效负荷作为一个模块存储在ROMBIOS中,同第一软件模块分开。在一个实施例中,初始有效负荷是从ROM BIOS中启动,并在通电自检(POST)之后,但在OS引导、加载和/或执行之前显示在屏幕上。这将在预定时间上发生,例如在系统被制造、装配和检测时,或者在终端用户首次激活系统时。在另一个实施例中,这个初始有效负荷在预定时间被复制到预定位置(比如系统的硬盘中),例如在系统被制造、装配和检测时,或者当终端用户首次激活系统时。一旦被复制,有效负荷在POST之后、OS操作之前执行,并在屏幕上显示图形、广告、动画、联合图象专家组(JPEG)/运动图象专家组(MPEG)格式的资料。当附加程序和/或有效负荷(通过因特网或其他外部连接)被传送时,在OS引导前和引导过程中,显示屏将被用于以消息或图形的方式提供定制屏幕。另外,除了随后的从网站上下载的程序(例如第二软件模块)之外,在第一软件模块中传送的可执行程序可以用来检测PC以决定所安装的设备、驱动程序和应用程序的各种类型。在一个实施例中,如同在题目为“在计算机上自动安装和配置软件的方法和设备”的其内容在此作为参考的共同未决的美国专利申请的序列号09/336,289中所描述的,第一软件模块用于为用户识别和自动生成快捷方式和/或书签。从网站上下载的程序包括基于用户偏好收集和维护的用户轮廓文件的软件。这些信息提供给信息媒体,信息媒体随后根据信息将信息和/或所编辑数据的一部分提供给供应商和其他商家,以便获得供应商和其他商家提供的信息的更新或修订。
参考图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的操作的控制单元。在一个实施例中,CPU104包括IntelTM公司出售的X86、PentiumTM、PentiumIITM、PentiumProTM微处理器、AMDTM出售的K-6微处理器、或者CyrixTM公司出售的6x86MX微处理器中的任意一种。更多的例子还包括Digital Equipment CorporationTM(数字设备公司)出售的AlphaTM处理器、MotorolaTM出售的680X0处理器、或者IBMTM出售的PowerPCTM处理器。另外,包括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)总线和CPU104相连接。
海量存储设备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中。RAPI 84、ISUA 86和初始有效负荷88a每一个都在最初使用计算机系统100之前单独地开发并存储在系统固件176中。在一个实施例中,RAPI 84、ISUA 86和初始有效负荷88a每一个都包括由Phoenix Technologies,Ltd开发的专有软件。RAPI84提供了ROM应用程序和系统固件176之间的安全接口。在转让给PhoenixTechnologies,Ltd的1999年6月18日提交的、题目为“安全使用基本输入输出(BIOS)服务的系统和方法”的共同未决的美国专利申请的序列号09/336,889中描述了RAPI 84的一个实施例,其内容在此作为参考。在转让给PhoenixTechnologies,Ltd的1999年6月18日提交的题目为“在计算机上自动安装和配置软件的方法和设备”的共同未决的美国专利申请的序列号09/336,289中描述了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的题目为“一种从系统固件向存储设备传送应用程序的系统和方法”的共同未决的美国专利申请的序列号09/336,067中描述了用于这种传送的系统和过程的一个实施例,其内容在此作为参考。在1999年3月19日提交的、题目为“一种提供基于存储器的设备仿真的方法和设备”的共同未决的美国专利申请的序列号09/272,859、在1999年6月18日提交的、题目为“提供基于存储器的设备仿真的方法和设备”的共同未决的美国专利部分继续申请的序列号09/336,307、以及1999年6月18日提交的、题目为“在海量存储器中插入一个或者多个文件的系统和方法”的共同未决的美国专利申请的序列号09/336,281中描述了用于这种传送的系统和过程的其它实施例,每一个申请都转让给本发明的受让人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可以通过操作系统查找,以确定是否有已经加载和已经安装在系统上的应用程序。如果有,一旦通信链路建立,ISUA 86能自动为应用程序提供快捷方式和/或书签来发送进一个预定的服务器。这个通信链路可以通过套接字以一个网络协议堆栈(比如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日提交的、题目为“在引导或关闭过程中显示图象”、转让给Phoenix Technologies,Ltd的共同未决的美国专利申请的序列号09/336,003中所描述的,其内容在此作为参考。将引导Windows显示文件取名为LOGO.SYS,通常位于Windows目录中。首先将WindowsTMLOGO.SYS文件从Windows目录传送到其他目录。然后,将内容图形文件重命名为LOGO.SYS并传送到Windows目录下。当操作系统初次被运行时,操作系统将恢复这个文件,因此,内容在显示器上显示。WindowsTM期望LOGO.SYS文件是图形分辨率为320×400和256色的一个位图文件,尽管WindowsTM后来为了显示的目的将图象分辨率扩展到640×400。因此,内容图形文件要成为同样的图形格式(在重命名为LOGO.SYS之前通常以“.BMP”为扩展名进行命名)。
操作系统然后被加载、执行和初始化。标准操作系统驱动程序和应用程序也被加载。轮廓文件管理器被执行。当已经建立与预定网站的链接时,附加的内容会被下载和随后被显示。这样的附加内容既可以任意地被提供,也可以根据从用户或用户系统的调查中获得的信息被提供。在一个实施例中,一旦引导过程完成,显示屏的一部分将被用来提供用于访问关于以前显示过的消息或广告的详细信息的图标和快捷方式。在更进一步的实施例中,消息或广告在关闭过程期间可以再次被显示,例如,用其他的选择内容来替换屏幕显示的“Windows正在关机”或“现在可以安全关闭你的计算机”等消息。
图5是显示ISUA 86与ISUA 86正常工作所需软件的其他部分的组合的一个实施例的方框图。如图5所示,ISUA 86是在rundll32.exe应用程序500的存储器空间中执行的。Rundll32.exe应用程序500依次在操作系统506之上工作,在这个实施例中,操作系统506是微软Windows98TM操作系统。作为由操作系统506提供的功能的一部分,wininet.dll 502和winsock.dll 504包含在操作系统506中。wininet.dll 502和winsock.dll 504一起提供了ISUA 86所需的网络功能。
图6是依据本发明的原理执行的一个例示性操作过程的流程图。
在方框600中,ISUA 86是用CPL格式创建的。这样,ISUA 86就可以使用任意的编译程序进行编译以生成CPL格式的可执行文件。当然,ISUA 86也可以以预编译CPL格式的可执行文件提供给系统。
在方框602中,ISUA 86存储在BIOS 82中。在一个实施例中,ISUA 86的一个图象包含在一个大图象中,该大图象然后通过闪存过程存储在BIOS 82中。在另一个实施例中,ISUA 86的图象是独立于BIOS的其他内容存储的。
在方框604中,将ISUA 86包从BIOS 82拷贝到海量存储设备152上。在一个实施例中,ISUA 86包最初被压缩,在传送到海量存储设备152上时被解压缩。在另一个可选实施例中,ISUA 86被直接传送,并可选地在以后被解压缩。ISUA 86包也可以进行加密,这样会需要一个解密ISUA 86包的解密机。在将ISUA 86包传送到海量存储设备152之后,操作继续进行到方框606。
在方框606中,将ISUA 86设定成启动应用程序。这样,在用户系统40中包含的操作系统完成引导之后,就会调用ISUA 86。根据操作系统的实际版本,可以采用不同的方法来设置ISUA 86,使其在操作系统引导完成之后自动启动。在Windows95TM或Windows98TM下,CPL程序必须放置在“开始菜单”文件夹之外。这包括“开始菜单”文件夹下的所有目录。如果将CPL文件放在启动文件夹下,它们就会被忽略并变得无效。为了Windows95TM或Windows98TM操作系统能够自动启动ISUA 86,可以创建程序的快捷方式并放在启动文件夹下。或者,可以修改“Windows”目录(或在其下面安装系统的目录)下的win.ini文件,使其包括CPL程序的“run=”条目。当操作系统引导时,将自动启动启动文件夹下的每个程序和快捷方式以及在win.ini文件中指定的程序。在Windows NTTM下,可以将CPL程序直接放在WindowsTM的启动文件夹里。操作系统会根据系统注册表识别文件,并在Windows出现时自动起动该程序,而不需要创建操作系统的快捷方式。操作然后继续进行到方框608。
在方框608中,控制返回到操作系统来按正常情况继续引导和初始化计算机。
在方框610中,操作系统将ISUA 86当作启动应用程序来加载或运行,这就允许ISUA 86具有下面要介绍的功能。
图7是在操作系统和ISUA 86加载之后ISUA 86的一个实施例的流程图。
在方框700中,ISUA 86的网络连接检测器502执行轮询以检测因特网连接或必要的网络连接是否存在。网络连接检测器502通过查询操作系统或向包含初始内容包62的主服务器发出声脉冲看看主服务器是否可用,来判定必要的网络连接是否存在。在另一个实施例中,网络连接检测器502可以尝试与一组服务器进行联系,直到一个服务器进行了响应。如果网络连接存在,就会继续方框702的操作,否则会继续方框704的操作。
在方框702中,如果网络连接检测器502没有检测到网络连接,就会等待一段延迟时间,然后返回到方框700。在一个实施例中,延迟时间为10秒。
在方框700中,如果网络连接检测器502检测到了必要的网络连接的存在,则网络连接检测器502会在方框704中检查用户正在使用多少带宽。这是为了确定ISUA 86是否有足够的可用带宽来传送信息,而不会显著影响用户对带宽的使用。最好用户不会觉察到ISUA 86在使用带宽。在一个实施例中,网络连接检测器502可以在对正在使用的带宽和使用时间的分析中使用试探法来判定是否适于ISUA86使用该连接。例如,网络连接检测器502可以在ISUA 86开始使用连接之前进行等待,直到用户只使用小于50%的带宽五分钟为止。在另一实施例中,可以使用预定阈值来判定是否有带宽可供ISUA 86使用。这样,如果由其他过程占用的连接带宽量只是全部带宽的10%,就可以认为具有足够的带宽供ISUA 86使用。由ISUA 86使用的带宽量可以基于在用户使用的带宽或ISUA 86要使用的带宽之间的简单的比例或某些数学关系。如果带宽可用,则继续方框706的操作,否则继续方框710的操作。
在方框706中,ISUA 86的下载模块504会在一次传输中下载WDL 62a的一个数据块,而不是对WDL 62a的数据的各部分进行单独下载。
在方框708中,下载模块504确定WDL 62a是否已经下载完毕。如果WDL 62a已经下载完毕,则继续方框716的操作。否则,返回到方框700的操作。
在方框716中,一旦下载模块504确定WDL 62a已经下载完毕,下载模块504就会验证WDL 62a的完成和完整性。例如,下载模块504可以对下载的WDL 62a执行校验和运算来判定在下载中是否遇到差错。如果WDL 62a被验证,则继续方框712的操作。否则,继续方框718的操作。
在方框712中,一旦WDL 62a被验证,则URL/快捷方式模块506就向任何应用程序、例如因特网服务提供者的安装/注册程序或对网络站点的链接安装快捷方式。在一个实施例中,WDL 62a也被立即执行以便开始执行它的任务。另外,一旦WDL 62a被验证,则WDL 62a将由操作系统作为启动应用程序来执行。在URL/快捷方式模块506改动了快捷方式后,操作结束。
在方框718中,如果WDL 62a在方框716中未被验证,下载模块304就会从海量存储设备152中去除WDL 62a。然后继续方框700的操作,其中网络连接检测器502再次轮询以检测必要的网络连接是否存在。
在一个实施例中,一旦ISUA 86完成了其因特网连接之前的作业(包括下载、安装和起动WDL 62a),ISUA 86也就完成了所要做的全部事情。WDL 62a会从这一点开始接替ISUA 86。一旦WDL 62a开始工作,WDL 62a的初始任务之一就是卸载ISUA 86。
WDL 62a的主要功能就是控制计算机系统100和服务器22之间的数据传输。用这种方式,就可以将WDL 62a看成向所有其他部件提供数据交换和传输服务。
在一个实施例中,WDL 62a执行的数据交换任务是以图7中介绍的ISUA 86在传输WDL 62a方面提供的同样的功能为基础的。因此,WDL 62a提供检测是否存在可用连接(因为它自身并不起动因特网连接),而且如果连接存在的话,就只将数据传输限制在任何可用的带宽内,以防止冲击其他应用程序对带宽的使用。WDL 62a与ISUA 86相比,除了类似功能外,为了适应更丰富的特性、高需求的环境,WDL 62a的功能被增强和增加了。
在一个实施例中,WDL 62a增加的功能就是从计算机系统100向服务器22上载的功能。已经安装在客户机上的所有部件、如轮廓文件管理器应用程序都需要向网络服务器传递信息,如用户轮廓文件和用户/广告量度等。
WDL 62a的下载和上载功能如下:
1.它具有“因特网连接分时”的特点,即只使用空闲时间段来下载和上载数据。
2.它能够从部分下载中构造出有效数据模块,并重新发送未成功的上载。也就是说,如果在一个Windows对话中WDL 62a没有足够的空闲连接时间来交换一个数据模块或一组数据模块,则WDL 62a在空闲连接时间再次可用时从停止的地方开始。
WDL 62a只处理数据交换和传播。与处理提供基本OS内容(如快捷方式)的ISUA 86不同,WDL 62a不处理实际内容的提供或改变用户接口。WDL 62a只是用作为数据通信协调程序。
初始化
WDL 62a一旦安装并在OS中运行后,WDL 62a就:
1.卸载ISUA 86;
2.下载各种的应用程序部件,包括:
-用户查询应用程序
-内容管理程序
-轮廓文件管理程序
-ROM擦写程序(flasher)
3.等待因特网连接
在一个实施例中,下载的第一个部件为用户查询应用程序。此部件会立即起动,即使其余部件仍在继续下载。
每个Windows对话
在一个“常规对话”中,当因特网连接不存在时,WDL 62a的责任就是等待(嗅探)因特网连接。这是无限期地进行的,直到连接成功为止。一旦作出因特网连接,它就会检测正常连接时间之间的空闲时段,并用这些时间片断来进行校验和传送:
1.终端用户和广告量度;
2.终端用户轮廓文件;
3.用户内容和用户内容指令;
4.广告内容和广告内容指令;
5.更新OS部件,其中包括内容管理程序、轮廓文件管理程序和ROM擦写程序;
6.更新ROM部件,其中包括ISUA 86和ROM客户加载程序(这些将被提供给ROM擦写程序);
7.增加的其他常规应用程序。
WDL 62a的数据交换功能能够从部分下载和上载中构造出有效数据模块,一个下载批量不是在一次连接中、一次Windows对话中甚至不是在一天中完成的。WDL 62a判定每条数据完成并准备好另一个部件在其上面工作的时间。
可能的再生
尽管WDL 62a会永远存在下去,但是也有可能最终用户会删除WDL 62a。由ROM客户机加载程序(RCL)来负责核查ISUA 86或WDL 62a是否还装在Windows下。如果发现二者都不存在了,RCL就会重新配备ISUA 86,使ISUA 86能够再次从头执行一遍其工作,其中我们所关心的就是再次下载、安装并起动WDL 62a。在一个实施例中,如果用户先以前对询问用户是否需要安装所有部件的用户查询应用程序的回答为“否”,就会设定CMOS位,而且RCL也不会再重新配备ISUA 86了。这也存着在例外情况,我们将在下面介绍。
因特网连接检测器(嗅探连接)
如上所述,在一个“常规对话”中,不存在因特网连接时,WDL 62a会等待(或嗅探)一个因特网连接。WDL 62a会无限期地进行,直到连接成功为止。一旦有因特网连接成功,就会检测正常连接时间之间的空闲时段,并用这些时间片断来校验和下载服务器22想要给客户机的部件。因特网连接检测器模块(未显示)在后台运行,并在指定的时间间隔等待连接。一旦连接建立,则调用传输(上载/下载)功能。
数据交换(下载/上载)智能
一旦因特网连接检测器模块已经确定存在因特网连接,则WDL 62a开始检测正常连接时间之间的空闲时段,并用这些时间片断来下载部件/数据和上载数据。
关于要下载的内容的信息来自服务器22。WDL 62a仅仅查询服务器22,然后服务器22在所知道的客户机(如计算机系统100)、用户轮廓文件、排队的终端用户内容、排队的广告商的内容等基础上,开始向客户机发送数据。在需要上载时可以由安装并运行中的部件来向WDL 62a发出上载请求。WDL 62a也可以从其他服务器下载数据,如这里描述的。
从部分下载中重新构造数据
在常规因特网连接对话的空闲时刻中会有大量的数据跨越线路输送,数据批极有可能不能在一次连接中、一次Windows对话中甚至不是在一天中完成。
如果WDL 62a检测出存在任何原因下的连接丢失,都会返回到等待连接(嗅探)模式。一旦重新连接上,就会设法从停止的地方继续下载。这意味着WDL 62a的下载功能能够从部分下载中构造出有效数据模块来。它是通过跟踪上一次成功传送的数据包、并向服务器22索求系列中的下一个数据包来实现此功能的。
一旦WDL 62a判定一块数据已经完成并为下一个部件在其上面操作做好了准备,它就会通知合适的部件。
事件的下载序列
一旦检测出常规因特网连接对话中的空闲时间,就会发生以下事件:
1.从存储在WDL 62a数据区域(未显示)里的信息中获得要联系的服务器(如服务器22)的IP地址,其中存储区域是海量存储设备152的一部分;
2.用这个IP地址与要联系的服务器建立连接;
3.WDL 62a通知已安装的部件,它已经具有一个连接;
4.已安装的部件要求WDL 62a代表它们上载数据(例如,内容管理程序可以要求上载终端用户和广告量度,轮廓文件管理程序可以要求上载其终端用户轮廓文件);
5.WDL 62a发出校验下载内容更新的请求,网络服务器用数据做出回应,而且一旦经过WDL 62a下载,WDL 62a就会向各部件通知它们的到来(例如,内容管理程序可以接收用户内容和用户内容指令以及广告内容和广告内容指令);
6.WDL 62a发出校验下载部件更新的请求,网络服务器用新的更新做出回应,而且一旦经过WDL 62a成功地下载,WDL 62a就会安装更新部件(更新可以包括OS部件,例如内容管理程序、轮廓文件管理程序、ROM擦写程序、OEM应用程序和WDL 62a自身;ROM部件的更新可以包括:ISUA 86和ROM客户机装载程序——将这些更新展示给系统BIOS的ROM擦写程序);以及
7.WDL 62a将控制返回到初始因特网连接器(一般为网络浏览器)。
与其他部件的交互作用
WDL 62a的服务之一是通知部件数据的可用性。在内容(如数据和指令)下载之后,WDL 62a需要了解要向哪个已安装的部件通知新数据的到来。这是一个设计实现问题,但是在一个实施例中,每个已安装的部件都在WDL 62a上作了注册。注册也意味着部件已经向WDL 62a提供了自身操作时所需了解的全部东西。这包括:
1.增加包含在该WDL 62a的数据区域里的WDL 62a的部件和数据列表,这样WDL 62a就能够核查网络服务器的更新了;
2.识别部件数据的方法;
3.起动或通知部件其数据可用的方法;以及
4.从部件向网络服务器传送数据的方法。
安装和起动下载的部件
在更新及从服务器下载新部件之后,WDL 62a就会安装它们。在一个实施例中,这些部件都是可执行的Windows应用程序,所有部件都具有标准的安装方法。此标准可以只是需要一个自解压、自安装的可执行文件。
注册
由于最终用户可能删除WDL 62a,所以WDL 62a需要给出一些自身存在的提示,这样ROM客户机装载程序(RCL)就能够在每次引导时核查它是否仍然存在。然后RCL可以重新配备ISUA 86,它会依次最终再次下载、安装并起动WDL62a。在一个实施例中,这种提示是通过核查Windows注册表中WDL 62a的实际位置来实现的。
用户查询应用程序
在ISUA 86完成其工作以后,WDL 62a就会代替它。WDL 62a从服务器22上下载的第一个部件是用户查询应用程序。这是第一次询问用户是否想要接收系统的权益。如果用户拒绝了,WDL 62a就会执行以下任务:
1.停止下载附加部件(它们可能正在后台进行);
2.删除那些已下载的部件,不管是部分下载还是全部下载的;
3.通知(系统ROM中的)ROM客户机加载程序,一旦删除了WDL 62a,就应该重新安装ISUA 86,ISUA 86随后再次下载、安装并起动WDL 62a。此通知可以通过设定CMOS位或通过其他方法来完成;以及
4.WDL 62a自卸载。
在终端用户回答“否”后,ROM客户机加载程序(RCL)可以用一些潜在的方法将ISUA 86(它最终会初始化所有其他部件的安装)重新配置到Windows中。存在着以下几种可能性:
1.在重新安装Windows新拷贝时;
2.在重新安装Windows新拷贝时;
3.在重新安装新硬盘时;或
4.经历一个预定的时间段(如6个月的时间)之后。
只要上述事件有一种发生,RCL就会向ISUA 86提供情报,并传递给WDL62a。情报内容为:在过去有一次,用户查询应用程序发出询问,而且用户拒绝安装系统的部件。一旦WDL 62a下载了用户查询应用程序,用户查询应用程序就能够从WDL 62a得到这种情报并询问另一个较少令人烦恼的而具有更大刺激性的问题。
在一个实施例中,用户查询应用程序的对话应该向用户说明在恢复部件时所能提供的全部特点,如系统部件的自动更新等。
由于用户查询应用程序具有用户接口,所以可以提供多语言的功能。可以检验Windows的语言实现,以便用户查询应用程序能够自动显示正确的语言。最可能需要的是EFIGS(英语、法语、意大利语、德语和西班牙语)。也可以提供日语和中国标准语。
尽管借助本发明的一种优选实施例描述了本发明,但本领域普通技术人员可以看出其他实施例也在本发明的范围之内。相应地,本发明的范围只用下面的权利要求书限定。

Claims (19)

1.一种利用减小了大小的应用程序的方法,包括:
按照Windows控制面板语言格式创建可执行程序;
将所述可执行程序存储在第一非易失性存储器中;
从所述第一非易失性存储器向第二非易失性存储器传送所述可执行程序;以及
配置操作系统,使操作系统在完成引导后就运行所述可执行程序。
2.根据权利要求1所述的方法,其特征在于,所述可执行程序的文件大小比可在WindowsTM操作系统中得到的最小可执行文件大小还要小。
3.根据权利要求1所述的方法,其特征在于,将所述可执行程序存储在所述第一非易失性存储器中包括将所述可执行程序存储在基本输入输出系统设备中。
4.根据权利要求3所述的方法,其特征在于,所述基本输入输出系统设备是以下设备中的一个或多个:电可擦除只读存储器设备、只读存储器设备和闪存设备。
5.根据权利要求3所述的方法,其特征在于,传送所述可执行程序包括从所述基本输入输出系统设备向海量存储设备传送所述可执行程序。
6.根据权利要求1所述的方法,其特征在于,配置所述操作系统以使所述操作系统在完成引导后就运行所述可执行程序包括创建所述可执行程序的快捷方式,并将所述快捷方式存储在启动文件夹中。
7.根据权利要求1所述的方法,其特征在于,配置所述操作系统以使所述操作系统在完成引导后就运行所述可执行程序包括修改初始化文件来包含对所述可执行程序的引用。
8.根据权利要求7所述的方法,其特征在于,配置所述操作系统以使操作系统在完成引导后就启动所述可执行程序包括修改win.ini文件来包含对所述可执行程序的引用。
9.根据权利要求1所述的方法,其特征在于,配置所述操作系统以使所述操作系统在完成引导后就运行所述可执行程序包括将所述可执行程序放入所述启动菜单里。
10.根据权利要求1所述的方法,其特征在于所述的可执行程序包括:
确定是否存在因特网连接;
当存在所述因特网连接时,确定所述因特网连接的预定带宽量是否可用;
当至少所述预定带宽量可用时,在后台向远程服务器发送一个下载一个或多个文件的请求;以及
接收来自所述远程服务器的所述一个或多个文件。
11.根据权利要求10所述的方法,其特征在于,所述可执行程序还包括将所述一个或多个文件存储在海量存储器上。
12.根据权利要求10所述的方法,其特征在于,所述一个或多个文件包括以下中的一个或多个:可执行程序、应用程序、有效载荷和驱动程序。
13.一种利用减小了大小的应用程序的设备,包括:
一个包括一条或多条指令的存储器;以及
一个与所述存储器相连的处理器,所述处理器响应于所述一条或多条指令:
从一个非易失性存储器向第二存储器传输按照Windows控制面板语言格式创建的可执行程序,以及
配置操作系统以使所述操作系统完成引导后就启动所述可执行程序。
14.根据权利要求13所述的设备,其特征在于,所述可执行程序的文件大小比在WindowsTM操作系统中可得到的最小的可执行文件大小还要小。
15.根据权利要求13所述的设备,其特征在于,所述非易失性存储器包括一个基本输入输出系统设备。
16.根据权利要求13所述的设备,其特征在于,所述非易失性存储器包括以下设备中的一个或两个:只读存储器和闪存设备。
17.根据权利要求13所述的设备,其特征在于,所述存储器包括所述非易失性存储器。
18.根据权利要求13所述的设备,其特征在于所述第二存储器包括海量存储设备。
19.根据权利要求13所述的设备,其特征在于所述处理器通过执行以下操作之一来配置所述操作系统以使所述操作系统在完成引导后就启动所述可执行程序:
将所述可执行程序的快捷方式存储到启动文件夹里;
修改win.ini文件来包含对所述可执行程序的引用;以及
将所述可执行程序放入启动菜单里。
CNB001262963A 1999-06-18 2000-06-18 创建并展开较小微软视窗应用程序的方法和设备 Expired - Fee Related CN1302381C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/336108 1999-06-18
US09/336,108 US6405309B1 (en) 1999-06-18 1999-06-18 Method and apparatus for creating and deploying smaller Microsoft Windows applications for automatic configuration of a computing device

Publications (2)

Publication Number Publication Date
CN1283817A CN1283817A (zh) 2001-02-14
CN1302381C true CN1302381C (zh) 2007-02-28

Family

ID=23314609

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB001262963A Expired - Fee Related CN1302381C (zh) 1999-06-18 2000-06-18 创建并展开较小微软视窗应用程序的方法和设备

Country Status (4)

Country Link
US (1) US6405309B1 (zh)
JP (1) JP2001051833A (zh)
CN (1) CN1302381C (zh)
TW (1) TW494355B (zh)

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6560702B1 (en) * 1997-12-10 2003-05-06 Phoenix Technologies Ltd. Method and apparatus for execution of an application during computer pre-boot operation
US6486883B1 (en) * 1999-06-18 2002-11-26 Phoenix Technologies, Ltd. Apparatus and method for updating images stored in non-volatile memory
US6578142B1 (en) * 1999-06-18 2003-06-10 Phoenix Technologies, Ltd. Method and apparatus for automatically installing and configuring software on a computer
US6775828B2 (en) * 1999-07-19 2004-08-10 Microsoft Corporation Delayed uploading of user registration data
JP2001092643A (ja) * 1999-09-22 2001-04-06 Seiko Epson Corp 設定情報書換装置、システム及び設定情報書換プログラムを記憶した記憶媒体
US7158993B1 (en) 1999-11-12 2007-01-02 Sun Microsystems, Inc. API representation enabling submerged hierarchy
US6986132B1 (en) 2000-04-28 2006-01-10 Sun Microsytems, Inc. Remote incremental program binary compatibility verification using API definitions
US6651186B1 (en) * 2000-04-28 2003-11-18 Sun Microsystems, Inc. Remote incremental program verification using API definitions
US6883163B1 (en) * 2000-04-28 2005-04-19 Sun Microsystems, Inc. Populating resource-constrained devices with content verified using API definitions
JP2001331326A (ja) * 2000-05-19 2001-11-30 Sony Corp ソフトウェア供給システム、ソフトウェア供給方法及び記録媒体
EP1997001A4 (en) 2000-07-24 2008-12-03 Infineon Technologies Ag ARCHITECTURE OF PROCESSORS OF DISTRIBUTED MICROINSTRUCTING ASSEMBLIES FOR HIGH-PERFORMANCE SIGNAL PROCESSING
US6918106B1 (en) 2000-07-31 2005-07-12 Sun Microsystems, Inc. Method and apparatus for collocating dynamically loaded program files
US6981245B1 (en) * 2000-09-14 2005-12-27 Sun Microsystems, Inc. Populating binary compatible resource-constrained devices with content verified using API definitions
US6944653B2 (en) * 2001-08-30 2005-09-13 Hewlett-Packard Development Company, L.P. Zero-click deployment of data processing systems
US7085828B2 (en) * 2001-10-26 2006-08-01 Hewlett-Packard Development Company, L.P. Method for viewing, managing and controlling system specific hardware using industry standard tables uploaded to locally installed remote management devices
US20030093536A1 (en) * 2001-11-09 2003-05-15 't Hooft Maarten W. Support interface module
US7143313B2 (en) * 2001-11-09 2006-11-28 Sun Microsystems, Inc. Support interface module bug submitter
US7266731B2 (en) * 2001-11-13 2007-09-04 Sun Microsystems, Inc. Method and apparatus for managing remote software code update
US6947772B2 (en) 2002-01-31 2005-09-20 Qualcomm Incorporated System and method for providing messages on a wireless device connecting to an application server
US7017004B1 (en) * 2002-03-29 2006-03-21 Microsoft Corporation System and method for updating contents of a flash ROM
US7558958B2 (en) * 2002-06-13 2009-07-07 Microsoft Corporation System and method for securely booting from a network
WO2004008310A2 (en) * 2002-07-11 2004-01-22 International Business Machines Corporation A method and system for extending the file system api
US7039398B2 (en) * 2002-08-30 2006-05-02 Qualcomm Incorporated Server processing of interactive screens for a wireless device
US6996394B2 (en) 2002-08-30 2006-02-07 Qualcomm Incorporated Server processing in providing messages for a wireless device connecting to a server
US20040064348A1 (en) * 2002-09-30 2004-04-01 Humenansky Brian S. Selective deployment of software extensions within an enterprise modeling environment
US8316361B2 (en) * 2003-01-09 2012-11-20 Hewlett-Packard Development Company, L.P. Method of enabling a user to update one or more low-level resources of a computer system in a user-friendly manner
WO2004092897A2 (en) * 2003-04-11 2004-10-28 Mirra, Inc. Service platform application distribution manager
US7822962B2 (en) * 2003-05-05 2010-10-26 Peter Ar-Fu Lam Application software configured to work with two operating systems
US7243245B2 (en) * 2003-06-20 2007-07-10 International Business Machines Corporation Method and system for performing automatic startup application launch elimination
US7895529B1 (en) * 2003-09-10 2011-02-22 Microsoft Corporation System and method for processing featured content
CN100362468C (zh) * 2004-01-06 2008-01-16 英业达股份有限公司 免安装应用程序的方法
US7761794B1 (en) 2004-01-22 2010-07-20 Cisco Technology, Inc. Integrated audit and configuration techniques
JP2005338940A (ja) * 2004-05-24 2005-12-08 Canon Inc インストール方法、情報処理装置、及びデバイスドライバ
US7853826B2 (en) * 2004-09-24 2010-12-14 Phoenix Technologies, Ltd. Operating system transfer and launch without performing post
DE602005010967D1 (de) * 2005-02-09 2008-12-24 Sony Uk Ltd Verfahren zum Anzeigen von Anzeigeinformationen
US8769120B2 (en) * 2006-11-28 2014-07-01 Sap Ag Method and system to monitor parameters of a data flow path in a communication system
US8561058B2 (en) * 2007-06-20 2013-10-15 Red Hat, Inc. Methods and systems for dynamically generating installation configuration files for software
US8464247B2 (en) * 2007-06-21 2013-06-11 Red Hat, Inc. Methods and systems for dynamically generating installation configuration files for software
US8417926B2 (en) * 2009-03-31 2013-04-09 Red Hat, Inc. Systems and methods for providing configuration management services from a provisioning server
US20110099547A1 (en) * 2009-10-28 2011-04-28 Gaurav Banga Approaches for installing software using bios
TW201133259A (en) * 2010-03-18 2011-10-01 Hon Hai Prec Ind Co Ltd System and method for synthesizing signals
US8578368B2 (en) 2010-05-05 2013-11-05 Insyde Software Corporation Injecting a file from the bios into an operating system
EP2577451A4 (en) * 2010-06-01 2014-06-18 Hewlett Packard Development Co METHODS, APPARATUS, AND ARTICLES OF MANUFACTURE FOR DEPLOYING SOFTWARE APPLICATIONS
KR20130024667A (ko) * 2011-08-31 2013-03-08 삼성전자주식회사 소프트웨어를 자동으로 설치하는 방법 및 장치
US9766873B2 (en) 2012-08-17 2017-09-19 Tripwire, Inc. Operating system patching and software update reconciliation
US8925066B2 (en) * 2012-11-15 2014-12-30 Red Hat Israel, Ltd. Provisioning proxy for provisioning data on hardware resources
US9342699B2 (en) * 2013-11-06 2016-05-17 Blackberry Limited Method and apparatus for controlling access to encrypted data
US10970063B2 (en) * 2017-04-12 2021-04-06 Sumitomo Electric Industries, Ltd. Relay apparatus, transfer method, and computer program
CN108415763B (zh) * 2018-02-11 2020-12-11 中南大学 一种边缘计算系统的分配方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
CN1017838B (zh) * 1989-08-25 1992-08-12 国际商业机器公司 个人计算机系统原始基本输入输出系统的装入

Family Cites Families (52)

* Cited by examiner, † Cited by third party
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
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
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
CA2091074A1 (en) 1992-03-06 1993-09-07 Eric Straub 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
JPH0887460A (ja) 1994-09-19 1996-04-02 Seiko Epson Corp インストールシステム
US5694583A (en) 1994-09-27 1997-12-02 International Business Machines Corporation BIOS emulation parameter preservation across computer bootstrapping
US5802363A (en) 1994-09-27 1998-09-01 International Business Machines Corporation Bios dynamic emulation of multiple diskettes from a single media
US5652868A (en) 1994-09-27 1997-07-29 International Business Machines Corporation Data processor having BIOS decryption of emulated media images
US5586327A (en) 1994-09-27 1996-12-17 International Business Machines Corporation Extended initialization for personal data processing systems
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
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
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 日本電気通信システム株式会社 コンピュータネットワークシステム及びそのオペレーティングシステムの版数管理方法
US5913040A (en) * 1995-08-22 1999-06-15 Backweb Ltd. Method and apparatus for transmitting and displaying information between a remote network and a local computer
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
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
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
US5796984A (en) 1996-01-26 1998-08-18 Dell Usa, L.P. Operating system independent apparatus and method for eliminating peripheral device functions
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
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
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1017838B (zh) * 1989-08-25 1992-08-12 国际商业机器公司 个人计算机系统原始基本输入输出系统的装入
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

Also Published As

Publication number Publication date
US6405309B1 (en) 2002-06-11
CN1283817A (zh) 2001-02-14
JP2001051833A (ja) 2001-02-23
TW494355B (en) 2002-07-11

Similar Documents

Publication Publication Date Title
CN1302381C (zh) 创建并展开较小微软视窗应用程序的方法和设备
CN1211734C (zh) 计算机上自动安装和配置软件的方法和设备
CN1157654C (zh) 在应用程序模块不工作时自动卸载的方法和装置
CN100385386C (zh) 在引导和关机期间显示图象的方法
EP1584007B1 (en) System to automatically process components on a device
US9606791B2 (en) Controlled method and apparatus to securely install and update software
US7937697B2 (en) Method, system and computer program for distributing software patches
CN102090044B (zh) 调节从服务器到客户端设备的数据文件的下载的系统和方法
US20040098427A1 (en) Device memory management during electronic file updating
US7363482B2 (en) Method and apparatus to support remote configuration code
CN104375849A (zh) 加载内核的方法及装置
WO2006023274A2 (en) System and method for configuring computer for operation
CN106775876B (zh) 安卓系统快速启动应用的方法
US20100083244A1 (en) Methods, apparatuses, and computer program products for repurposing computing devices
CN1269044C (zh) 一种更新存储在非易失性存储器中的图象的设备和方法
CN104077168A (zh) 一种为终端更新操作系统的方法及设备
CN104090805A (zh) 一种更新终端操作系统的方法、设备及系统
CN1252582C (zh) 在基本输入和输出系统启动期间产生媒体输出
CN116069467A (zh) 基于electron启动关闭多个本地应用程序的实现方法及系统
CN113722011A (zh) 应用界面启动方法、装置、设备和存储介质
CN115421752A (zh) 软件更新方法、装置、存储介质及电子设备
CN113032094A (zh) 一种cad容器化方法、装置及电子设备
KR20070071758A (ko) 업그레이드 가능한 이동통신 단말기 및 그 동작방법
JPH11143694A (ja) ソフトウエアのバージョンアップ方法

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: 20070228

Termination date: 20100618