CN116302176A - 应用程序的启动方法、装置及电子设备 - Google Patents
应用程序的启动方法、装置及电子设备 Download PDFInfo
- Publication number
- CN116302176A CN116302176A CN202310140657.7A CN202310140657A CN116302176A CN 116302176 A CN116302176 A CN 116302176A CN 202310140657 A CN202310140657 A CN 202310140657A CN 116302176 A CN116302176 A CN 116302176A
- Authority
- CN
- China
- Prior art keywords
- program
- application program
- target application
- target
- operating system
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 151
- 230000008569 process Effects 0.000 claims abstract description 45
- 238000003860 storage Methods 0.000 claims description 62
- 238000004590 computer program Methods 0.000 claims description 6
- 230000008878 coupling Effects 0.000 abstract description 14
- 238000010168 coupling process Methods 0.000 abstract description 14
- 238000005859 coupling reaction Methods 0.000 abstract description 14
- 238000002955 isolation Methods 0.000 description 19
- 238000001514 detection method Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 238000012795 verification Methods 0.000 description 6
- 230000006978 adaptation Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000012827 research and development Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 244000035744 Hura crepitans Species 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 239000002674 ointment Substances 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
- G06F9/4484—Executing subprograms
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种应用程序的启动方法、装置及电子设备。其中,该方法包括:在操作系统中创建目标应用程序对应的子进程;将子进程的属性更新为目标属性,其中,目标属性的子进程与目标应用程序之间互相隔离;从第一文件目录中复制目标应用程序的程序数据,并将复制得到的程序数据存储至第二文件目录中,其中,第一文件目录用于存储程序数据,第一文件目录与第二文件目录之间互相隔离;依据子进程从第二文件目录中读取程序数据,并根据程序数据启动目标应用程序,其中,目标应用程序在启动过程中所产生的相关数据全部存储于第二文件目录中。本申请解决了现有技术中应用程序的程序数据和操作系统的系统数据之间存在耦合度高的技术问题。
Description
技术领域
本申请涉及软件技术领域,具体而言,涉及一种应用程序的启动方法、装置及电子设备。
背景技术
在现有技术中,应用程序需要在操作系统中进行启动运行,其中,应用程序在启动过程中会产生各种各样的数据、关联相关的操作系统库文件、程序文件,例如,启动配置参数、程序依赖包、操作系统补丁程序、日志数据等等。
在现有技术中,不仅应用程序的程序数据、系统库文件与操作系统运行环境耦合在一起,而且应用程序在启动过程中所产生的相关数据也是和操作系统的系统数据耦合在一起的,从而随着应用程序的使用,应用程序和操作系统之间的耦合性会越来越高,一旦操作系统的版本升级、补丁程序更新,操作系统环境发生变化则对原有应用程序的稳定运行将带来影响;同时某一应用程序出现异常(如程序逻辑错误、被恶意程序攻击等),甚至会出现操作系统也无法正常使用的情况。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种应用程序的启动方法、装置及电子设备,以至少解决现有技术中应用程序的程序数据和操作系统的系统数据之间存在耦合度高的技术问题。
根据本申请实施例的一个方面,提供了一种应用程序的启动方法,包括:在操作系统中创建目标应用程序对应的子进程,其中,子进程用于依据目标应用程序的程序数据在操作系统中启动目标应用程序;将子进程的属性更新为目标属性,其中,目标属性的子进程与目标应用程序之间互相隔离;从第一文件目录中复制目标应用程序的程序数据,并将复制得到的程序数据存储至第二文件目录中,其中,第一文件目录用于存储所述程序数据,第一文件目录与第二文件目录之间互相隔离,程序数据至少包括目标应用程序在运行时所依赖关联的操作系统库文件和程序文件;依据子进程从第二文件目录中读取程序数据,并根据程序数据启动目标应用程序,其中,目标应用程序在启动过程中所产生的相关数据全部存储于第二文件目录中。
进一步地,应用程序的启动方法还包括:在操作系统中创建目标应用程序对应的子进程之前,获取程序启动指令,其中,程序启动指令中至少包括目标应用程序的唯一标识;根据程序启动指令检测操作系统中是否部署有目标应用程序对应的基础配置文件,其中,基础配置文件为目标应用程序与操作系统之间的兼容性配置文件。
进一步地,应用程序的启动方法还包括:在根据程序启动指令检测操作系统中是否部署有目标应用程序对应的基础配置文件之后,在操作系统中部署有基础配置文件的情况下,在操作系统中创建目标应用程序对应的子进程;在操作系统中未部署有基础配置文件的情况下,禁止在操作系统创建目标应用程序对应的子进程,并生成提示信息,其中,提示信息用于提示目标对象对操作系统和目标应用程序进行检测。
进一步地,应用程序的启动方法还包括:识别操作系统中的目标存储区域,其中,目标存储区域与操作系统中的其他存储区域之间相互隔离,其他存储区域为操作系统中除目标存储区域之外的任意一个存储区域;在目标存储区域中创建子进程。
进一步地,应用程序的启动方法还包括:在从第一文件目录中复制目标应用程序的程序数据,并将复制得到的程序数据存储至第二文件目录中之前,在目标存储区域中创建第二文件目录;确定第二文件目录为子进程对应的根目录,其中,子进程在运行时默认从子进程对应的根目录中读取数据。
进一步地,应用程序的启动方法还包括:在第一文件目录中创建第一子目录;将第一文件目录中的程序数据复制至第一子目录中;将第一子目录中的所有数据和基础配置文件复制至第二文件目录中。
进一步地,应用程序的启动方法还包括:检测程序启动指令中是否包含有目标权限信息,其中,目标权限信息为能够从第二文件目录中读取数据的权限信息;在程序启动指令中包含有目标权限信息时,依据子进程从第二文件目录中读取程序数据和基础配置文件,并根据程序数据和基础配置文件启动目标应用程序;在程序启动指令中未包含目标权限信息时,禁止依据子进程从第二文件目录中读取程序数据和基础配置文件,并根据程序数据和基础配置文件启动目标应用程序。
进一步地,应用程序的启动方法还包括:在根据程序数据启动目标应用程序之后,检测目标应用程序是否启动成功;在目标应用程序启动成功时,删除第一子目录和第二文件目录;在目标应用程序启动失败时,生成目标提示信息,其中,目标提示信息中至少包含有目标应用程序启动失败的原因。
根据本申请实施例的另一方面,还提供了一种应用程序的启动装置,包括:创建模块,用于在操作系统中创建目标应用程序对应的子进程,其中,子进程用于依据目标应用程序的程序数据在操作系统中启动目标应用程序;更新模块,用于将子进程的属性更新为目标属性,其中,目标属性的子进程与目标应用程序之间互相隔离;复制模块,用于从第一文件目录中复制目标应用程序的程序数据,并将复制得到的程序数据存储至第二文件目录中,其中,第一文件目录用于存储程序数据,第一文件目录与第二文件目录之间互相隔离;启动模块,用于依据子进程从第二文件目录中读取程序数据,并根据程序数据启动目标应用程序,其中,目标应用程序在启动过程中所产生的相关数据全部存储于第二文件目录中。
根据本申请实施例的另一方面,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,计算机程序被设置为运行时执行上述的应用程序的启动方法。
根据本申请实施例的另一方面,还提供了一种电子设备,该电子设备包括一个或多个处理器和存储器,存储器用于存储一个或多个程序,其中,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现上述的应用程序的启动方法。
在本申请中,采用将目标应用程序在启动过程中所产生的相关数据全部存储于第二文件目录中的方式,首先在操作系统中创建目标应用程序对应的子进程,然后将子进程的属性更新为目标属性,进而从第一文件目录中复制目标应用程序的程序数据,并将复制得到的程序数据存储至第二文件目录中,最后依据子进程从第二文件目录中读取程序数据,并根据程序数据启动目标应用程序。其中,子进程用于依据目标应用程序的程序数据在操作系统中启动目标应用程序;目标属性的子进程与目标应用程序之间互相隔离;第一文件目录用于存储程序数据,第一文件目录与第二文件目录之间互相隔离;目标应用程序在启动过程中所产生的相关数据全部存储于第二文件目录中。
由上述内容可知,本申请通过在操作系统中创建用于启动目标应用程序的子进程,并将子进程和应用程序之间互相隔离,从而从进程层次上实现了应用程序与操作系统之间的隔离。此外,本申请还会将目标应用程序的程序数据以及目标应用程序在启动过程中产生的相关数据全部存储在第二文件目录中,从而无论目标应用程序的启动过程是怎样的一个过程,其相关数据全部被单独隔离在第二文件目录中,既可以保证目标应用程序原有的程序数据不受破坏,还能避免目标应用程序在启动过程中产生的相关数据会与操作系统的系统数据进一步的耦合。
由此可见,本申请的技术方案达到了降低目标应用程序与操作系统的耦合度的目的,从而实现了提升操作系统的稳定性的技术效果,进而解决了现有技术中应用程序的程序数据和操作系统的系统数据之间存在耦合度高的技术问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的一种可选的应用程序的启动方法的流程图;
图2是根据本申请实施例的一种可选的操作系统的结构示意图;
图3是根据本申请实施例的另一种可选的应用程序的启动方法的流程图;
图4是根据本申请实施例的应用程序的启动装置的示意图;
图5是根据本申请实施例的一种可选的电子设备的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
根据本申请实施例,提供了一种应用程序的启动方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本申请实施例的一种可选的应用程序的启动方法的流程图,如图1所示,该方法包括如下步骤:
步骤S101,在操作系统中创建目标应用程序对应的子进程。
在步骤S101中,子进程用于依据目标应用程序的程序数据在操作系统中启动目标应用程序。其中,操作系统可以应用在各种类型终端设备上的操作系统,例如,应用至服务器上的操作系统、应用至个人计算机上的操作系统、应用至智能手机上的操作系统。另外,目标应用程序也可以是各种类型的应用程序,例如,用于处理金融业务的金融类应用程序,用于处理办公业务的办公类应用程序,或者游戏类应用程序等等。此外,目标应用程序可以理解为是一个主进程,子进程为目标应用程序这一主进程所对应的子进程。
在一种可选的实施例中,一种应用程序启动组件可作为本申请中的应用程度的启动方法的执行主体。其中,应用程序启动组件为一种预先部署在操作系统中的脚本或者软件程序。
步骤S102,将子进程的属性更新为目标属性。
在步骤S102中,目标属性的子进程与目标应用程序之间互相隔离。
可选的,应用程序启动组件可以将子进程的属性更新为目标属性“sa l ve”,其中,当子进程的属性为目标属性“sa l ve”时,子进程的挂载点传播到主进程的能力便会被解除,换言之,子进程与主进程之间为互相隔离的关系。
步骤S103,从第一文件目录中复制目标应用程序的程序数据,并将复制得到的程序数据存储至第二文件目录中。
在步骤S103中,第一文件目录为目标应用程序对应的根目录,第一文件目录用于存储程序数据,第一文件目录与第二文件目录之间互相隔离,程序数据至少包括所述目标应用程序在运行时所依赖关联的操作系统库文件和程序文件,例如,启动配置参数、程序依赖包、操作系统补丁程序、日志数据等等。
可选的,为了方便理解本申请的技术方案,第一文件目录可记为操作系统中的/tmp文件目录,其中,操作系统中安装的所有应用程序的程序数据全部存储于在/tmp文件目录下。在现有技术中,/tmp文件目录为应用程序对应的根目录,即应用程序在操作系统中启动时会默认从/tmp文件目录中读取程序数据等与启动操作相关的数据。但是,在本申请中,应用程序启动组件会预先在操作系统中创建一个第二文件目录,然后应用程序启动组件会将第一文件目录中存储的目标应用程序的程序数据复制到第二文件目录中,其中,第二文件目录可标记为/tmp/newroot文件目录。
需要注意到的是,/tmp/newroot文件目录与/tmp文件目录之间是互相隔离的关系,即两个文件目录之间的数据不会发生任何交互。在此基础上,应用程序启动组件会将/tmp/newroot文件目录确定为子进程对应的根目录,即子进程会默认从/tmp/newroot文件目录中读取目标应用程序的程序数据。
步骤S104,依据子进程从第二文件目录中读取程序数据,并根据程序数据启动目标应用程序。
在步骤S104中,目标应用程序在启动过程中所产生的相关数据全部存储于第二文件目录中。
可选的,应用程序启动组件会控制子进程从/tmp/newroot文件目录中读取目标应用程序的程序数据,随后子进程根据目标应用程序的程序数据即可启动目标应用程序,需要说明的是,目标应用程序在启动过程中所产生的所有相关数据也会存储于第二文件目录,例如,目标应用程序启动失败的报错数据、目标应用程序启动过程中产生的日志数据,或者目标应用程序修改后的程序数据等等。由于第二文件目录与第一文件目录之间是互相隔离的关系,因此第二文件目录中的数据不会与第一文件目录中的数据进行耦合,换言之,无论第二文件目录中的数据如何改变,都不会影响到第一文件目录中所存储的原始的程序数据。另外,由于第二文件目录中只是存储了从第一文件目录中复制过来的目标应用程序的程序数据,第二文件目录中并没有存储操作系统的系统数据,因此,第二文件目录中的数据也不会和操作系统的系统数据进行耦合,进而实现了第二文件目录中的数据与操作系统的系统数据相互隔离的目的,避免了目标应用程序在启动过程中产生的相关数据会与操作系统的系统数据进一步的耦合的问题。
基于上述步骤S101至步骤S104的内容可知,在本申请中,采用将目标应用程序在启动过程中所产生的相关数据全部存储于第二文件目录中的方式,首先在操作系统中创建目标应用程序对应的子进程,然后将子进程的属性更新为目标属性,进而从第一文件目录中复制目标应用程序的程序数据,并将复制得到的程序数据存储至第二文件目录中,最后依据子进程从第二文件目录中读取程序数据,并根据程序数据启动目标应用程序。其中,子进程用于依据目标应用程序的程序数据在操作系统中启动目标应用程序;目标属性的子进程与目标应用程序之间互相隔离;第一文件目录用于存储程序数据,第一文件目录与第二文件目录之间互相隔离;目标应用程序在启动过程中所产生的相关数据全部存储于第二文件目录中。
由上述内容可知,本申请通过在操作系统中创建用于启动目标应用程序的子进程,并将子进程和应用程序之间互相隔离,从而从进程层次上实现了应用程序与操作系统之间的隔离。此外,本申请还会将目标应用程序的程序数据以及目标应用程序在启动过程中产生的相关数据全部存储在第二文件目录中,从而无论目标应用程序的启动过程是怎样的一个过程,其相关数据全部被单独隔离在第二文件目录中,既可以保证目标应用程序原有的程序数据不受破坏,还能避免目标应用程序在启动过程中产生的相关数据会与操作系统的系统数据进一步的耦合。
由此可见,本申请的技术方案达到了降低目标应用程序与操作系统的耦合度的目的,从而实现了提升操作系统的稳定性的技术效果,进而解决了现有技术中应用程序的程序数据和操作系统的系统数据之间存在耦合度高的技术问题。
在一种可选的实施例中,在操作系统中创建目标应用程序对应的子进程之前,应用程序启动组件还会获取程序启动指令,其中,程序启动指令中至少包括目标应用程序的唯一标识。然后应用程序启动组件根据程序启动指令检测操作系统中是否部署有目标应用程序对应的基础配置文件,其中,基础配置文件为目标应用程序与操作系统之间的兼容性配置文件。
可选的,程序启动指令包括但不限于命令行指令或者操作系统桌面上的控件操作指令。例如,用户想要在操作系统中启动应用程序A,则一种方式是可以在操作系统桌面上双击应用程序A的图标控件,另一种方式则是可以通过输入命令行的方式启动应用程序A。
另外,操作系统中的任何一个应用程序想要在操作系统中正常启动以及运行,都需要在操作系统中事先部署该应用程序对应的基础配置文件,其中,基础配置文件为该应用程序与操作系统之间的兼容性配置文件,例如,应用程序A需要在操作系统1上运行,由于操作系统1规定了该操作系统上运行的所有应用程序都需要安装有满足预设规则的插件F,因此,插件F即为应用程序A与操作系统1之间的兼容性配置文件。
在一种可选的实施例中,在操作系统中部署有基础配置文件的情况下,应用程序启动组件会在操作系统中创建目标应用程序对应的子进程;在操作系统中未部署有基础配置文件的情况下,应用程序启动组件禁止在操作系统创建目标应用程序对应的子进程,并生成提示信息,其中,提示信息用于提示目标对象对操作系统和目标应用程序进行检测。
可选的,当操作系统中部署有基础配置文件,说明操作系统已经具备启动目标应用程序的条件,在此基础上,应用程序启动组件即可在操作系统中创建目标应用程序对应的子进程。但是,如果应用程序启动组件检测到操作系统中未部署有基础配置文件,则应用程序启动组件将禁止在操作系统中创建目标应用程序对应的子进程,从而避免对计算机计算资源的浪费。此外,在禁止创建子进程的同时,应用程序启动组件还会生成提示信息,其中,提示信息用于提示目标对象对操作系统和目标应用程序进行检测,目标对象为目标应用程序的管理人员,例如,提示信息用于提示目标应用程序的管理人员安装基础配置文件。
在一种可选的实施例中,随着国产桌面操作系统的市场占有率越来越高,操作系统的版本迭代次数也越来越多。其中,在操作系统中,第三方应用程序的兼容管理、启动运行一直都面临着挑战。
传统的应用程序在操作系统中启动运行时大致需要使用到“应用程序、“运行时”、“内核”三层结构。其中,应用程序这一结构需要通过依赖底层的“运行时”结构和“内核”结构才能正常运行,然而操作系统是运行时和内核的提供者,因此操作系统的迭代更新意味着“运行时”和“内核”这两个结构也会同步更新。但是,迭代后的操作环境很大可能性会不适合原有的第三方应用程序运行,从而造成应用程序的兼容运行问题。
由上述内容可知,操作系统版本的更新,会导致“内核”与“运行时”两个结构也发生迭代变化,从而会导致部分第三方应用程序无法再正常安装运行。
在此基础上,为了解决上述问题,现有技术是通过第三方应用程序的厂商依据操作系统的更新数据进行适配验证。其中,适配验证也就是研发和测试人员在新版本的操作系统上重新进行第三方应用程序的研发与测试验证,只有完成操作系统的新版本测试验证工作,才能保证在生产环境下操作系统能够正常运行第三方应用软件。但是,容易注意到的是,完成适配验证流程需要多方参与,包括:第三方应用程序的研发人员与测试人员、操作系统的技术支持人员,有时甚至需要应用程序的使用方参与完成业务上的优化,整个适配验证的过程十分复杂耗时。
为了解决上述问题,在本申请中的操作系统中的目标存储区域中,还会部署多个基础配置文件,其中,每个基础配置文件适用于目标应用程序与一个版本的操作系统。举例而言,假设操作系统1共有3个版本,分别为操作系统1-1、操作系统1-2以及操作系统1-3,容易理解的是,三个版本的操作系统1实际上大部分功能设计是相同的,只有较少的功能设计存在差异,为了避免由于操作系统的迭代导致目标应用程序无法在操作系统上继续运行,在操作系统的目标存储区域中会同时存储三个基础配置文件,并且三个基础配置文件之间是互相隔离的。例如,三个基础配置文件分别为基础配置文件1、基础配置文件2以及基础配置文件3,其中,基础配置文件1为操作系统1-1与目标应用程序之间的兼容性配置文件,基础配置文件2为操作系统1-2与目标应用程序之间的兼容性配置文件,基础配置文件3为操作系统1-3与目标应用程序之间的兼容性配置文件。
通过部署多个基础配置文件,目标应用程序在启动运行时,可以使用适宜的基础配置文件完成启动,从而实现在不同版本的操作系统上运行目标应用程序的目的,进而解决了由于操作系统更新迭代导致应用程序无法兼容运行的问题。
在一种可选的实施例中,为了在隔离环境下创建子进程,应用程序启动组件首先识别操作系统中的目标存储区域,其中,目标存储区域与操作系统中的其他存储区域之间相互隔离,其他存储区域为操作系统中除目标存储区域之外的任意一个存储区域。然后,应用程序启动组件在目标存储区域中创建子进程。
可选的,图2示出了根据本申请实施例的一种可选的操作系统的结构示意图,如图2所示,本申请中的操作系统至少包括:外部控制层、后台服务层、核心控制层、兼容环境层以及内核层。需要注意到的是,本申请中的操作系统是一种基于APPRE应用运行环境开发的操作系统,其中,APPRE应用运行环境是一种基于沙箱隔离技术打造的应用兼容运行环境。
具体的,如图2所示,外部控制层主要是为了将APPRE应用运行环境的功能以接口的形式暴露出去,提供给其他的上层应用,为用户提供能够实现APPRE应用运行环境的功能所对应的GU I操作。例如,通过安装器/软件商店可以直接将应用程序安装到兼容环境层中,通过系统监视器可以监视到兼容环境层的内部进程。
后台服务层则至少包含一个APPRE-daemon服务,该服务主要用于和兼容环境层内部的APPRE-i n it组件进行通信,并动态监控兼容环境层内部的应用信息和状态,同时APPRE-daemon服务也负责一些APPRE命令准备工作时需要提权的操作。
核心控制层位于兼容环境层的上层,其中,核心控制层主要包括一个核心控制器,该核心控制器可作为兼容环境层与外界的交互入口,主要负责执行兼容环境层本身的运行和在兼容环境层内部进行应用程序安装、应用程序卸载以及运行兼容环境层内部的应用程序的功能。另外,核心控制层是一个命令行工具,通过命令行参数控制兼容环境层内应用程序的程序状态。
兼容环境层中至少包含有三个子系统,分别为“运行时数据子系统”、“APPRE-wrap子系统”、“APPRE-init子系统”。其中,“运行时数据子系统”是一个发行版的最小系统,操作系统中的每个应用程序都对应着该“运行时数据子系统”进行运行,从而保障应用程序的基础运行环境可用。
“APPRE-wrap子系统”是兼容环境层的构建工具,主要用于提供挂载点隔离和用户隔离功能。为子进程提供兼容环境层所对应的rootfs(根文件系统),用于拉起APPRE-i nit进程。另外,“APPRE-wrap子系统”还用于在内核层中构建Namespace(命名空间)基础环境和用户权限环境。其中,Namespace(命名空间)基础环境即为操作系统中的目标存储区域,子进程即被创建在,Namespace(命名空间)基础环境中,,Namespace(命名空间)基础环境是一块单独隔离出来的存储区域,与操作系统的其他区域之间实现文件隔离、网络隔离。
“APPRE-i n it子系统”是兼容环境层中运行的第一个进程,负责接收外部控制发送的信号,控制子进程的运行状态以及子进程的全生命周期,应用程序在兼容环境层内的安装、卸载均通过“APPRE-i n it子系统”完成。
最后,如图2所示,本申请中的操作系统还包括内核层,其中,内核层主要包括由“APPRE-wrap子系统”构建的Namespace(命名空间)基础环境。具体的,Namespace(命名空间)基础环境即为操作系统中的目标存储区域,其中,目标存储区域中的数据与操作系统中其他存储区域中的数据之间彼此隔离,主要包括挂载点隔离(即数据隔离)、用户隔离、PID隔离、网络隔离和主机名隔离。
在一种可选的实施例中,在从第一文件目录中复制目标应用程序的程序数据,并将复制得到的程序数据存储至第二文件目录中之前,应用程序启动组件还会在目标存储区域中创建第二文件目录,并确定第二文件目录为子进程对应的根目录,其中,子进程在运行时默认从子进程对应的根目录中读取数据。
可选的,为了实现第一文件目录与第二文件目录之间的隔离,应用程序组件在创建第二文件目录时,会将第二文件目录创建在目标存储区域内,而第一文件目录位于目标存储区域之外,因此,第一文件目录和第二文件目录之间完成了互相隔离。
在一种可选的实施例中,为了将第一文件目录中的程序数据复制到第二文件目录中,应用程序启动组件还会在第一文件目录中创建第一子目录,并将第一文件目录中的程序数据复制至第一子目录中,最后应用程序启动组件将第一子目录中的所有数据和基础配置文件复制至第二文件目录中。
可选的,第一文件目录为操作系统中的/tmp文件目录,第一子目录可记为/tmp文件目录下的o l droot目录,在创建完成o l droot目录之后,应用程序启动组件将/tmp文件目录下中的程序数据复制到o l droot目录中。需要注意到的是,o l droot目录实际上是第一文件目录和第二文件目录之间的数据过渡目录,通过设置数据过渡目录,可以避免第一文件目录和第二文件目录之间直接发生数据复制等交互操作,进一步地实现了第一文件目录和第二文件目录之间的数据隔离。
另外,在第一文件目录中的程序数据复制至o l droot目录之后,应用程序启动组件会将o l droot目录中所有数据复制至第二文件目录(即/tmp/newroot文件目录)中。需要注意到的是,除了将o l droot目录中所有数据复制至第二文件目录之外,应用程序启动组件还会将目标应用程序和操作系统之间的基础配置文件一并复制至第二文件目录中。
在一种可选的实施例中,在依据子进程从第二文件目录中读取程序数据,并根据程序数据启动目标应用程序时,还需要对程序启动指令进行权限校验。具体的,应用程序启动组件会检测程序启动指令中是否包含有目标权限信息,其中,目标权限信息为能够从第二文件目录中读取数据的权限信息。在程序启动指令中包含有目标权限信息时,应用程序启动组件依据子进程从第二文件目录中读取程序数据和基础配置文件,并根据程序数据和基础配置文件启动目标应用程序;在程序启动指令中未包含目标权限信息时,应用程序启动组件禁止依据子进程从第二文件目录中读取程序数据和基础配置文件,并根据程序数据和基础配置文件启动目标应用程序。
可选的,为了方便理解,程序启动指令可以记为APPRE run指令,其中,针对程序启动指令,应用程序启动组件会检测程序启动指令中是否包含有目标权限信息,如果程序启动指令中包含有目标权限信息,则应用程序启动组件能够基于程序启动指令进入到目标存储区域内读取数据,例如,通过访问目标存储区域中的第二文件目录,从而获取第二文件目录中存储的目标应用程序的程序数据和基础配置文件。
需要注意到的是,如果程序启动指令中不包含目标权限信息,则应用程序启动组件将无法根据程序启动指令进入到目标存储区域,进而更不可能从第二文件目录中读取任何数据,通过验证程序启动指令是否包含有目标权限信息,可以提高操作系统的信息安全性。
在一种可选的实施例中,在根据程序数据启动目标应用程序之后,应用程序启动组件还会检测目标应用程序是否启动成功,并在目标应用程序启动成功时,删除第一子目录和第二文件目录,在目标应用程序启动失败时,应用程序启动组件生成目标提示信息,其中,目标提示信息中至少包含有目标应用程序启动失败的原因。
容易注意到的是,在目标应用程序启动成功之后,应用程序启动组件将第一子目录和第二文件目录删除,从而也一并删除了第一子目录中的数据和第二文件目录中的数据,进而避免了大量数据存储在操作系统中的问题,实现了提高操作系统的存储资源利用率的技术效果。另外,当目标应用程序启动失败时,为了方便目标应用程序的管理人员及时排查启动失败的原因,应用程序启动组件还会生成目标提示信息,其中,目标提示信息至少包含有目标应用程序启动失败的原因,例如,目标提示信息提示目标应用程序是由于程序启动指令中未包含有目标权限信息导致启动失败。
在一种可选的实施例中,图3示出了根据本申请实施例的另一种可选的应用程序的启动方法的流程图,如图3所示,包括如下步骤:
步骤301:在操作系统中通过程序启动指令启动应用程序,且应用程序部署在在APPRE兼容环境层中。
步骤302:检测操作系统的兼容环境层中是否存在应用程序对应的基础配置文件,如果存在将进行步骤303,如果不存在将退出运行流程。
步骤303:在操作系统的目标存储区域中创建子进程,其中,子进程将会准备后续的基础运行时数据并拉起APPRE-i n it管理内部应用程序。
步骤304:子进程中使用APPRE-wrap隔离技术进入到操作系统的沙箱隔离环境(NameSpace基础环境)中,充分保证后续子进程的运行都是在NameSpace基础环境中。
步骤305:更新子进程的属性为目标属性sa l ve,从而解除了子进程的挂载点传播到主进程的能力。
步骤306:重新将操作系统中的tmp文件目录载到根下,后续会通过操作/tmp文件目录下的数据实现子进程的换根操作。
步骤307:在/tmp文件目录下创建o l droot文件目录。
步骤308:将原有的根目录“/”的数据挂载到步骤307的o l droot文件目标下,以便在步骤309、310中还可以正常使用到原有根下的数据。
步骤309:在/tmp文件目录下创建newroot文件目录。
步骤310:将基础配置文件、位于o l droot文件目录中的程序数据以及其他系统可使用路径(例如:家目录)通过操作系统的mount指令和over l ayfs指令全部挂载到/tmp/newroot文件目录下。
步骤311:调用pr iv_root指令切换子进程的根目录到/tmp/newroot。
步骤312:解析程序启动指令,拉起APPRE-i n it服务。如果程序启动指令中包含有目标权限信息,则由APPRE主控制服务开启隔离环境(即NameSpace基础环境)的权限,例如:驱动、外设等等节点文件的访问权限。
步骤313:使用APPRE-i n it服务拉起所对应的应用程序。
步骤314:APPRE-i n it服务会通过本地的sock组件将应用程序在运行期间产生的一些信息转发给外部服务,例如,应用程序成功后同步将成功的信号发送给操作系统。从而保证操作系统与应用程序之间双方信息同步。
基于上述内容可知,由上述内容可知,本申请通过在操作系统中创建用于启动目标应用程序的子进程,并将子进程和应用程序之间互相隔离,从而从进程层次上实现了应用程序与操作系统之间的隔离。此外,本申请还会将目标应用程序的程序数据以及目标应用程序在启动过程中产生的相关数据全部存储在第二文件目录中,从而无论目标应用程序的启动过程是怎样的一个过程,其相关数据全部被单独隔离在第二文件目录中,既可以保证目标应用程序原有的程序数据不受破坏,还能避免目标应用程序在启动过程中产生的相关数据会与操作系统的系统数据进一步的耦合。
由此可见,本申请的技术方案达到了降低目标应用程序与操作系统的耦合度的目的,从而实现了提升操作系统的稳定性的技术效果,进而解决了现有技术中应用程序的程序数据和操作系统的系统数据之间存在耦合度高的技术问题。
实施例2
本申请实施例还提供了一种应用程序的启动装置,需要说明的是,本申请实施例的应用程序的启动装置可以用于执行本申请实施例1所提供的应用程序的启动方法。以下对本申请实施例提供的应用程序的启动装置进行介绍。
图4是根据本申请实施例的应用程序的启动装置的示意图。如图4所示,该装置包括:
创建模块401,用于在操作系统中创建目标应用程序对应的子进程,其中,子进程用于依据目标应用程序的程序数据在操作系统中启动目标应用程序;更新模块402,用于将子进程的属性更新为目标属性,其中,目标属性的子进程与目标应用程序之间互相隔离;复制模块403,用于从第一文件目录中复制目标应用程序的程序数据,并将复制得到的程序数据存储至第二文件目录中,其中,第一文件目录用于存储程序数据,第一文件目录与第二文件目录之间互相隔离,程序数据至少包括目标应用程序在运行时所依赖关联的操作系统库文件和程序文件;启动模块404,用于依据子进程从第二文件目录中读取程序数据,并根据程序数据启动目标应用程序,其中,目标应用程序在启动过程中所产生的相关数据全部存储于第二文件目录中。
可选的,应用程序的启动装置还包括:第一获取模块和第一检测模块。其中,第一获取模块,用于获取程序启动指令,其中,程序启动指令中至少包括目标应用程序的唯一标识;第一检测模块,用于根据程序启动指令检测操作系统中是否部署有目标应用程序对应的基础配置文件,其中,基础配置文件为目标应用程序与操作系统之间的兼容性配置文件。
可选的,应用程序的启动装置还包括:第一创建模块和禁止创建模块。其中,第一创建模块,用于在操作系统中部署有基础配置文件的情况下,在操作系统中创建目标应用程序对应的子进程;禁止创建模块,用于在操作系统中未部署有基础配置文件的情况下,禁止在操作系统创建目标应用程序对应的子进程,并生成提示信息,其中,提示信息用于提示目标对象对操作系统和目标应用程序进行检测。
可选的,创建模块还包括:识别单元和创建单元。其中,识别单元,用于识别操作系统中的目标存储区域,其中,目标存储区域与操作系统中的其他存储区域之间相互隔离,其他存储区域为操作系统中除目标存储区域之外的任意一个存储区域;创建单元,用于在目标存储区域中创建子进程。
可选的,应用程序的启动装置还包括:第二创建模块和第一确定模块。其中,第二创建模块,用于在目标存储区域中创建第二文件目录;第一确定模块,用于确定第二文件目录为子进程对应的根目录,其中,子进程在运行时默认从子进程对应的根目录中读取数据。
可选的,复制模块还包括:第一创建单元、数据复制单元以及复制单元。其中,第一创建单元,用于在第一文件目录中创建第一子目录;数据复制单元,用于将第一文件目录中的程序数据复制至第一子目录中;复制单元,用于将第一子目录中的所有数据和基础配置文件复制至第二文件目录中。
可选的,启动模块还包括:检测单元、启动单元以及禁止启动单元。其中,检测单元,用于检测程序启动指令中是否包含有目标权限信息,其中,目标权限信息为能够从第二文件目录中读取数据的权限信息;启动单元,用于在程序启动指令中包含有目标权限信息时,依据子进程从第二文件目录中读取程序数据和基础配置文件,并根据程序数据和基础配置文件启动目标应用程序;禁止启动单元,用于在程序启动指令中未包含目标权限信息时,禁止依据子进程从第二文件目录中读取程序数据和基础配置文件,并根据程序数据和基础配置文件启动目标应用程序。
可选的,应用程序的启动装置还包括:第二检测模块、删除模块以及提示信息生成模块。其中,第二检测模块,用于检测目标应用程序是否启动成功;删除模块,用于在目标应用程序启动成功时,删除第一子目录和第二文件目录;提示信息生成模块,用于在目标应用程序启动失败时,生成目标提示信息,其中,目标提示信息中至少包含有目标应用程序启动失败的原因。
实施例3
根据本申请实施例的另一方面,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,计算机程序被设置为运行时执行上述实施例1中的应用程序的启动方法。
实施例4
根据本申请实施例的另一方面,还提供了一种电子设备,该电子设备包括一个或多个处理器和存储器,存储器用于存储一个或多个程序,其中,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现上述实施例1中的应用程序的启动方法。
如图5所示,本申请实施例提供了一种电子设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现以下步骤:
在操作系统中创建目标应用程序对应的子进程,其中,子进程用于依据目标应用程序的程序数据在操作系统中启动目标应用程序;将子进程的属性更新为目标属性,其中,目标属性的子进程与目标应用程序之间互相隔离;从第一文件目录中复制目标应用程序的程序数据,并将复制得到的程序数据存储至第二文件目录中,其中,第一文件目录用于存储程序数据,第一文件目录与第二文件目录之间互相隔离,程序数据至少包括目标应用程序在运行时所依赖关联的操作系统库文件和程序文件;依据子进程从第二文件目录中读取程序数据,并根据程序数据启动目标应用程序,其中,目标应用程序在启动过程中所产生的相关数据全部存储于第二文件目录中。
可选的,处理器执行程序时还实现以下步骤:在操作系统中创建目标应用程序对应的子进程之前,获取程序启动指令,其中,程序启动指令中至少包括目标应用程序的唯一标识;根据程序启动指令检测操作系统中是否部署有目标应用程序对应的基础配置文件,其中,基础配置文件为目标应用程序与操作系统之间的兼容性配置文件。
可选的,处理器执行程序时还实现以下步骤:在根据程序启动指令检测操作系统中是否部署有目标应用程序对应的基础配置文件之后,在操作系统中部署有基础配置文件的情况下,在操作系统中创建目标应用程序对应的子进程;在操作系统中未部署有基础配置文件的情况下,禁止在操作系统创建目标应用程序对应的子进程,并生成提示信息,其中,提示信息用于提示目标对象对操作系统和目标应用程序进行检测。
可选的,处理器执行程序时还实现以下步骤:识别操作系统中的目标存储区域,其中,目标存储区域与操作系统中的其他存储区域之间相互隔离,其他存储区域为操作系统中除目标存储区域之外的任意一个存储区域;在目标存储区域中创建子进程。
可选的,处理器执行程序时还实现以下步骤:在从第一文件目录中复制目标应用程序的程序数据,并将复制得到的程序数据存储至第二文件目录中之前,在目标存储区域中创建第二文件目录;确定第二文件目录为子进程对应的根目录,其中,子进程在运行时默认从子进程对应的根目录中读取数据。
可选的,处理器执行程序时还实现以下步骤:在第一文件目录中创建第一子目录;将第一文件目录中的程序数据复制至第一子目录中;将第一子目录中的所有数据和基础配置文件复制至第二文件目录中。
可选的,处理器执行程序时还实现以下步骤:检测程序启动指令中是否包含有目标权限信息,其中,目标权限信息为能够从第二文件目录中读取数据的权限信息;在程序启动指令中包含有目标权限信息时,依据子进程从第二文件目录中读取程序数据和基础配置文件,并根据程序数据和基础配置文件启动目标应用程序;在程序启动指令中未包含目标权限信息时,禁止依据子进程从第二文件目录中读取程序数据和基础配置文件,并根据程序数据和基础配置文件启动目标应用程序。
可选的,处理器执行程序时还实现以下步骤:在根据程序数据启动目标应用程序之后,检测目标应用程序是否启动成功;在目标应用程序启动成功时,删除第一子目录和第二文件目录;在目标应用程序启动失败时,生成目标提示信息,其中,目标提示信息中至少包含有目标应用程序启动失败的原因。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-On l yMemory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (11)
1.一种应用程序的启动方法,其特征在于,包括:
在操作系统中创建目标应用程序对应的子进程,其中,所述子进程用于依据所述目标应用程序的程序数据在所述操作系统中启动所述目标应用程序;
将所述子进程的属性更新为目标属性,其中,所述目标属性的子进程与所述目标应用程序之间互相隔离;
从第一文件目录中复制所述目标应用程序的程序数据,并将复制得到的程序数据存储至第二文件目录中,其中,所述第一文件目录用于存储所述程序数据,所述第一文件目录与所述第二文件目录之间互相隔离,所述程序数据至少包括所述目标应用程序在运行时所依赖关联的操作系统库文件和程序文件;
依据所述子进程从所述第二文件目录中读取所述程序数据,并根据所述程序数据启动所述目标应用程序,其中,所述目标应用程序在启动过程中所产生的相关数据全部存储于所述第二文件目录中。
2.根据权利要求1所述的方法,其特征在于,在操作系统中创建目标应用程序对应的子进程之前,所述方法还包括:
获取程序启动指令,其中,所述程序启动指令中至少包括所述目标应用程序的唯一标识;
根据所述程序启动指令检测所述操作系统中是否部署有所述目标应用程序对应的基础配置文件,其中,所述基础配置文件为所述目标应用程序与所述操作系统之间的兼容性配置文件。
3.根据权利要求2所述的方法,其特征在于,在根据所述程序启动指令检测所述操作系统中是否部署有所述目标应用程序对应的基础配置文件之后,所述方法还包括:
在所述操作系统中部署有所述基础配置文件的情况下,在所述操作系统中创建所述目标应用程序对应的子进程;
在所述操作系统中未部署有所述基础配置文件的情况下,禁止在所述操作系统创建所述目标应用程序对应的子进程,并生成提示信息,其中,所述提示信息用于提示目标对象对所述操作系统和所述目标应用程序进行检测。
4.根据权利要求2所述的方法,其特征在于,在操作系统中创建目标应用程序对应的子进程,包括:
识别所述操作系统中的目标存储区域,其中,所述目标存储区域与所述操作系统中的其他存储区域之间相互隔离,所述其他存储区域为所述操作系统中除所述目标存储区域之外的任意一个存储区域;
在所述目标存储区域中创建所述子进程。
5.根据权利要求4所述的方法,其特征在于,在从第一文件目录中复制所述目标应用程序的程序数据,并将复制得到的程序数据存储至第二文件目录中之前,所述方法还包括:
在所述目标存储区域中创建所述第二文件目录;
确定所述第二文件目录为所述子进程对应的根目录,其中,所述子进程在运行时默认从所述子进程对应的根目录中读取数据。
6.根据权利要求2所述的方法,其特征在于,从第一文件目录中复制所述目标应用程序的程序数据,并将复制得到的程序数据存储至第二文件目录中,包括:
在所述第一文件目录中创建第一子目录;
将所述第一文件目录中的程序数据复制至所述第一子目录中;
将所述第一子目录中的所有数据和所述基础配置文件复制至所述第二文件目录中。
7.根据权利要求2所述的方法,其特征在于,依据所述子进程从所述第二文件目录中读取所述程序数据,并根据所述程序数据启动所述目标应用程序,包括:
检测所述程序启动指令中是否包含有目标权限信息,其中,所述目标权限信息为能够从所述第二文件目录中读取数据的权限信息;
在所述程序启动指令中包含有所述目标权限信息时,依据所述子进程从所述第二文件目录中读取所述程序数据和所述基础配置文件,并根据所述程序数据和所述基础配置文件启动所述目标应用程序;
在所述程序启动指令中未包含所述目标权限信息时,禁止依据所述子进程从所述第二文件目录中读取所述程序数据和所述基础配置文件,并根据所述程序数据和所述基础配置文件启动所述目标应用程序。
8.根据权利要求6所述的方法,其特征在于,在根据所述程序数据启动所述目标应用程序之后,所述方法还包括:
检测所述目标应用程序是否启动成功;
在所述目标应用程序启动成功时,删除所述第一子目录和所述第二文件目录;
在所述目标应用程序启动失败时,生成目标提示信息,其中,所述目标提示信息中至少包含有所述目标应用程序启动失败的原因。
9.一种应用程序的启动装置,其特征在于,包括:
创建模块,用于在操作系统中创建目标应用程序对应的子进程,其中,所述子进程用于依据所述目标应用程序的程序数据在所述操作系统中启动所述目标应用程序;
更新模块,用于将所述子进程的属性更新为目标属性,其中,所述目标属性的子进程与所述目标应用程序之间互相隔离;
复制模块,用于从第一文件目录中复制所述目标应用程序的程序数据,并将复制得到的程序数据存储至第二文件目录中,其中,所述第一文件目录用于存储所述程序数据,所述第一文件目录与所述第二文件目录之间互相隔离,所述程序数据至少包括所述目标应用程序在运行时所依赖关联的操作系统库文件和程序文件;
启动模块,用于依据所述子进程从所述第二文件目录中读取所述程序数据,并根据所述程序数据启动所述目标应用程序,其中,所述目标应用程序在启动过程中所产生的相关数据全部存储于所述第二文件目录中。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述权利要求1至8任一项中所述的应用程序的启动方法。
11.一种电子设备,其特征在于,包括一个或多个处理器和存储器,所述存储器用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现权利要求1至8中任意一项所述的应用程序的启动方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310140657.7A CN116302176A (zh) | 2023-02-13 | 2023-02-13 | 应用程序的启动方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310140657.7A CN116302176A (zh) | 2023-02-13 | 2023-02-13 | 应用程序的启动方法、装置及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116302176A true CN116302176A (zh) | 2023-06-23 |
Family
ID=86786079
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310140657.7A Pending CN116302176A (zh) | 2023-02-13 | 2023-02-13 | 应用程序的启动方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116302176A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117076005A (zh) * | 2023-10-16 | 2023-11-17 | 龙芯中科技术股份有限公司 | 一种应用运行方法、装置、电子设备及存储介质 |
-
2023
- 2023-02-13 CN CN202310140657.7A patent/CN116302176A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117076005A (zh) * | 2023-10-16 | 2023-11-17 | 龙芯中科技术股份有限公司 | 一种应用运行方法、装置、电子设备及存储介质 |
CN117076005B (zh) * | 2023-10-16 | 2024-03-01 | 龙芯中科技术股份有限公司 | 一种应用运行方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8365164B1 (en) | Portable software applications | |
US6434744B1 (en) | System and method for patching an installed application program | |
US7165260B2 (en) | Layered computing systems and methods for insecure environments | |
JP5781736B2 (ja) | 仮想化サブレイヤを統合する方法、システムおよびコンピュータ可読記憶媒体 | |
US9317270B2 (en) | Model-based virtual system provisioning | |
RU2429529C2 (ru) | Динамическое конфигурирование, выделение и развертывание вычислительных систем | |
US9588752B2 (en) | Performing unattended software installation | |
KR102047216B1 (ko) | 서비스의 2차 위치에서의 작업의 재생 기법 | |
US6353928B1 (en) | First run installer | |
US7117495B2 (en) | Systems and methods for the creation of software packages using layered systems | |
US7698391B2 (en) | Performing a provisioning operation associated with a software application on a subset of the nodes on which the software application is to operate | |
US20050262501A1 (en) | Software distribution method and system supporting configuration management | |
US8112745B2 (en) | Apparatus and method for capabilities verification and restriction of managed applications in an execution environment | |
US6535977B1 (en) | Replacing a unique identifier in a cloned computer system using program module that runs only once during the next boot sequence | |
CN111198695A (zh) | 微服务治理管理平台的自动化部署方法和电子设备 | |
US20160378458A1 (en) | Method and device for system application installation package, and terminal | |
CN106325951A (zh) | 一种支持多数据库、多中间件类型的应用系统自动化部署方法 | |
US20070100903A1 (en) | Systems and methods for compiling applications on a test server | |
JP2004533054A (ja) | オペレーティングシステム抽象化/保護レイヤ | |
EP4033349A1 (en) | Method and apparatus for generating mirror image file, and computer-readable storage medium | |
WO2019154202A1 (zh) | 一种安全防护方法及装置 | |
US20120036496A1 (en) | Plug-in based high availability application management framework (amf) | |
CN111651304B (zh) | 基于双芯智能电表的软件恢复方法、装置和计算机设备 | |
CN116302176A (zh) | 应用程序的启动方法、装置及电子设备 | |
EP1160666A2 (en) | Switching versions of software in a system background |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |