CN108959297B - 文件系统返回指定标识的方法、装置及电子设备 - Google Patents

文件系统返回指定标识的方法、装置及电子设备 Download PDF

Info

Publication number
CN108959297B
CN108959297B CN201710359354.9A CN201710359354A CN108959297B CN 108959297 B CN108959297 B CN 108959297B CN 201710359354 A CN201710359354 A CN 201710359354A CN 108959297 B CN108959297 B CN 108959297B
Authority
CN
China
Prior art keywords
file
identifier
executable
executable file
command
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.)
Active
Application number
CN201710359354.9A
Other languages
English (en)
Other versions
CN108959297A (zh
Inventor
王小品
田乐
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.)
Anhui Haima Cloud Technology Co ltd
Original Assignee
Haima Cloud Tianjin Information Technology Co 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 Haima Cloud Tianjin Information Technology Co Ltd filed Critical Haima Cloud Tianjin Information Technology Co Ltd
Priority to CN201710359354.9A priority Critical patent/CN108959297B/zh
Publication of CN108959297A publication Critical patent/CN108959297A/zh
Application granted granted Critical
Publication of CN108959297B publication Critical patent/CN108959297B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供的文件系统返回指定标识的方法、装置及电子设备,文件系统识别可执行文件调用资源文件命令中的可执行文件标识,将文件系统返回进程的标识替换为所述的可执行文件调用资源文件命令中的可执行文件标识,能够实现可执行文件调用资源文件时文件系统向可执行文件对应的进程返回与可执行文件标识相一致的标识,确保可执行文件通过检查正常调用资源文件,同时实际存储的资源文件的标识不会被修改,有效避免了修改资源文件标识可能导致的问题。

Description

文件系统返回指定标识的方法、装置及电子设备
技术领域
本发明涉及文件系统返回指定标识的方法、装置及电子设备。
背景技术
具有操作系统的电子设备,例如个人计算机、移动终端等,在日常生活中发挥着越来越重要的作用。电子设备的重要功能是运行各种应用,应用指能够在某种操作系统中运行的软件或程序。目前电子设备的用户需要的应用越来越多,而电子设备的存储空间是有限的,导致很多用户需要的应用没有足够的存储空间安装。
目前的主流操作系统,例如Windows、Mac、IOS、Linux以及在Linux基础上衍生的操作系统如Android等,应用都是通过安装包进行安装的。安装包运行后会产生大量的文件,这些文件位于一个或多个顶层父目录下,形成一定的目录层次关系,顶层父目录的位置及顶层父目录下的子目录结构由操作系统和安装包共同决定。安装包运行后产生的文件,一类是可执行文件(有时也称可执行程序),可执行文件可以在操作系统中运行,运行时在操作系统中生成与可执行文件对应的进程;另一类文件自身无法在操作系统中运行,其作用是供可执行文件在运行过程中调用,这一类文件统称为资源文件。安装包运行后形成的目录层次关系,能够确定任何一个资源文件的具体路径,为可执行文件调用资源文件提供了方便。应用正常运行,可执行文件和资源文件都是不可或缺的。
分析可执行文件和资源文件的大小会发现,目前的主流操作系统中应用的可执行文件都较小,一般最大几十MB;而应用的资源文件可能很大,一些应用的资源文件累计达到数百GB。基于此产生了一些技术方案,将可执行文件和资源文件存储到不同的电子设备,用户使用的电子设备只存储可执行文件,而资源文件存储在存储服务器等专用设备上,可执行文件远程调用资源文件,这样可以有效节约用户使用的电子设备的存储空间,极大提高用户能够使用的应用的数量。
很多操作系统通过标识标记可执行文件和资源文件的关系,可执行文件和其对应的资源文件具有相同的标识。特定的数字、字符等都可以作为标识。一些操作系统还设置了严格的检查机制,如果可执行文件和资源文件的标识不一致,则不允许可执行文件调用资源文件。对于可执行文件和资源文件分别存储在不同的电子设备上等情况,可执行文件和资源文件标识很可能不一致。通常,将资源文件的标识修改为和可执行文件一致即可。但对于一些操作系统中的文件系统,修改标识会导致文件复制或者其他操作,轻则消耗大量时间影响用户体验,重则导致操作系统错误甚至崩溃。如何解决上述问题,尚未见报道。
在说明书“背景技术”部分公开的内容,有助于本领域技术人员理解本发明的技术方案,但不应据此认为这些内容一定属于现有技术或公知常识。
发明内容
为了克服“背景技术”部分反映的缺陷,本发明提供文件系统返回指定标识的方法、装置及电子设备。
文件系统返回指定标识的方法,包括:
文件系统识别可执行文件调用资源文件命令中的可执行文件标识,将文件系统返回进程的标识替换为所述的可执行文件调用资源文件命令中的可执行文件标识。
进一步的,所述的方法还包括:将可执行文件标识作为可执行文件调用资源文件的命令的一部分。
进一步的,所述的将文件系统返回进程的标识替换为所述的可执行文件调用资源文件命令中的可执行文件标识,包括根据设定规则将文件系统返回进程的部分标识替换为所述的可执行文件调用资源文件命令中的可执行文件标识。
进一步的,所述的将文件系统返回进程的标识替换为所述的可执行文件调用资源文件命令中的可执行文件标识,实现方式包括修改文件系统的路径查找回调函数。
更进一步的,所述的文件系统为层次文件系统,所述的路径查找回调函数为ovl_do_lookup函数。
进一步的,所述的文件系统为层次文件系统,所述的文件系统识别可执行文件调用资源文件命令中的可执行文件标识,实现方式包括在struct ovl_config结构体增加字段,ovl_parse_opt函数识别可执行文件调用资源文件命令中的可执行文件标识,将所述的可执行文件标识存储在所述的struct ovl_config结构体的增加字段。
更进一步的,所述的存储在struct ovl_config结构体的增加字段的可执行文件标识能够在输出设备显示,实现方式包括修改ovl_show_options函数。
文件系统返回指定标识的装置,包括替换模块,所述的替换模块用于实现文件系统识别可执行文件调用资源文件命令中的可执行文件标识,将文件系统返回进程的标识替换为所述的可执行文件调用资源文件命令中的可执行文件标识。
电子设备,包括所述的文件系统返回指定标识的装置。
由于文件系统返回指定标识的装置能够用于实施文件系统返回指定标识的方法,文件系统返回指定标识的装置的一些描述进行了省略。本领域技术人员通过对照,能够对文件系统返回指定标识的装置有清晰、完整的认识。
本发明技术方案中,“包括”、“用于”等词语应按照开放式表达方式理解。本领域技术人员通过阅读本说明书并结合现有技术或公知常识能够获知的内容,本说明书中不再赘述。
本发明提供的文件系统返回指定标识的方法、装置及电子设备,能够实现可执行文件调用资源文件时文件系统向可执行文件对应的进程返回与可执行文件标识相一致的标识,确保可执行文件通过检查正常调用资源文件;同时实际存储的资源文件的标识不会被修改,有效避免了修改资源文件标识可能导致的问题。
附图说明
图1为具体实施方式中比较完整的文件系统返回指定标识的方法的流程图。
具体实施方式
下面对本发明的实施方式进行进一步的具体说明。但应注意,本发明的范围并不局限于所描述的具体技术方案。任何对所描述的具体技术方案中的技术要素进行相同或等同替换获得的技术方案或本领域技术人员在所描述的具体技术方案的基础上不经过创造性劳动就可以获得的技术方案,都应当视为落入本发明的保护范围。
操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。文件系统是操作系统用于明确存储设备或分区上的文件的方法和数据结构。各个进程对文件的查询、调用等操作由文件系统管理。如“背景技术”中所述,操作系统中的文件可以分为可执行文件和资源文件两大类。为了保证可执行文件正确调用资源文件,一些操作系统设置了非常严格的检查机制。例如安卓(Android)系统,将UID(User Identification,安卓系统中UID是应用的标识)和GID(Group Identification)作为标识,资源文件的UID、GID必须和可执行文件的UID、GID一致,否则可执行文件无法调用资源文件。
层次文件系统(OverlayFS)2014年起进入Linux系统的内核,Linux系统以及在Linux系统基础上衍生的操作系统例如Android、Ubuntu等,都支持OverlayFS。OverlayFS包括上层(upper)目录和下层(lower)目录。如果用户使用的电子设备的操作系统是Android系统,则资源文件常位于“/data/data/${应用包名}”目录下;资源文件存储在存储服务器,若存储服务器的操作系统是Linux系统,则常利用OverlayFS以“/data/data/lower/${应用包名}”作为下层目录,以“/data/data/upper/${应用包名}”作为上层目录,最终将“/data/data/${应用包名}”作为合并后的工作目录使用。当资源文件和可执行文件不是存储在同一电子设备时,资源文件和可执行文件的UID、GID往往不一致。
常规的做法,利用Linux系统的chown命令修改资源文件的UID和GID。但直接使用chown命令会触发OverlayFS复制文件,将下层目录的文件复制到上层目录,然后在上层目录中修改文件的UID和GID。如果“/data/data/${应用包名}”目录下文件较多,复制会占用很长时间,影响用户体验。大量复制文件还可能导致其他问题,干扰操作系统的正常运行。
为了解决上述问题,本发明提供文件系统返回指定标识的方法。一个比较完整的文件系统返回指定标识的方法的流程如图1所示。文件系统返回指定标识的方法的核心步骤为:
S102:文件系统识别可执行文件调用资源文件命令中的可执行文件标识,将文件系统返回进程的标识替换为所述的可执行文件调用资源文件命令中的可执行文件标识。
文件系统收到可执行文件调用资源文件的命令后,解析命令中的内容,识别命令中包含的可执行文件标识,将可执行文件标识存储下来。通常文件系统会向可执行文件对应的进程返回要求调用的资源文件的标识(即存储在硬盘等存储器上的资源文件的实际标识),本发明技术方案通过对标准文件系统的代码或者接口进行修改,将文件系统返回的标识替换为可执行文件调用资源文件命令中的可执行文件标识,并不实际修改存储在硬盘等存储器上的资源文件的标识。
对于不同的文件系统,本步骤可以有不同的实现方式。将文件系统返回进程的标识替换为所述的可执行文件调用资源文件命令中的可执行文件标识,较为通用的实现方式包括修改文件系统的路径查找回调函数。路径查找指通过文件名等参数获取文件的具体路径。路径查找对文件系统而言是比较复杂的功能,会设置大量的函数,路径查找回调函数(可以理解为与路径查找相关的回调函数)是其中的一类函数,可能涉及到向进程返回标识。
以OverlayFS为例,具体说明本步骤的实现方式。文件系统识别可执行文件调用资源文件命令中的可执行文件标识,实现方式可以修改OverlayFS的super.c文件,在structovl_config结构体中增加字段(可执行文件调用资源文件的命令中有几个可执行文件标识就增加几个字段),ovl_parse_opt函数解析可执行文件调用资源文件的命令,识别命令中的可执行文件标识,将命令中的可执行文件标识存储在struct ovl_config结构体增加的字段中,每个字段存储一个可执行文件标识。例如,Android系统的可执行文件有UID、GID两个标识,则在struct ovl_config结构体中增加两个字段kuid_t uid、kgid_t gid,分别存储UID和GID。
将文件系统返回进程的标识替换为所述的可执行文件调用资源文件命令中的可执行文件标识,在OverlayFS中需要修改的路径查找回调函数为ovl_do_lookup函数,具体的修改方法为在ovl_do_lookup函数的最后部分增加一个函数,利用该函数替换文件系统返回进程的标识。对于Android系统的可执行文件的UID、GID两个标识,增加的函数的名称可以定义为ovl_replace_uid_gid。
修改ovl_do_lookup函数的示意性代码段如下:
Figure BDA0001299947740000041
Figure BDA0001299947740000051
相应的ovl_replace_uid_gid函数的示意性代码段如下:
Figure BDA0001299947740000052
Figure BDA0001299947740000061
为了保证操作的正确性,要求struct ovl_config结构体增加的字段中存储的可执行文件标识能够在电子设备的输出设备上显示。上述要求可以通过修改ovl_show_options函数在该函数中增加相应的代码实现。
在很多情况下,将文件系统返回进程的标识替换为可执行文件调用资源文件命令中的可执行文件标识,并不一定需要将所有文件系统返回进程的标识都进行替换,只进行部分替换即可。可以事先设定规则,根据设定的规则进行部分替换。例如,Android系统中“/data/data”目录下的资源文件中的lib文件(实质上是静态链接库)的UID和GID都是1012,而Android系统规定作为标识的UID数值不小于10000。可以在ovl_replace_uid_gid函数中设定规则,如果资源文件的UID、GID小于10000,则不需要替换。
为了完整实现文件系统返回指定标识的方法,一般还需要前置步骤,前置步骤包括:
S101:将可执行文件标识作为可执行文件调用资源文件的命令的一部分。
如果可执行文件调用资源文件的命令中没有包含可执行文件标识,则需要将可执行文件标识加入,作为命令的一部分,具体的加入方法根据不同操作系统的规则确定。如果资源文件和可执行文件不是存储在同一个电子设备上,则可执行文件调用资源文件的命令包括挂载远程文件的命令。所述的挂载,指在操作系统中通过相应的命令,将非本地文件虚拟化为本地文件,从可执行文件(或进程)的角度看挂载后的非本地文件被视为本地文件。目前的主流操作系统都支持挂载功能。
例如,一款名为《阴阳师》的游戏,该游戏能够在Android系统上运行。事先查询Android系统的相关文件已经获知《阴阳师》的可执行文件的UID和GID都是10024,则挂载远程资源文件命令的示例如下:busybox mount-t overlayfs overlayfs-o lowerdir=/data/data/lower/com.netease.onmyoji.baidu,upperdir=/data/data/upper/com.netease.onmyoji.baidu/data/,uid=10024,gid=10024/data/com.netease.onmyoji.baidu。
后续解析这条命令时,根据其中“uid=10024,gid=10024”的格式可以判断作为可执行文件标识的UID和GID都是10024。
在电子设备的操作系统中编写相应的程序,可以实施以上所述的文件系统返回指定标识的方法,包括上述程序的软件可以视为文件系统返回指定标识的装置。文件系统返回指定标识的装置的实质为计算机软件,其实现方式是按照文件系统返回指定标识的方法各个步骤的描述建立与各个步骤相对应的程序模块,形成基于计算机程序的程序模块构架。文件系统返回指定标识的装置不是主要通过硬件方式实现的实体装置。文件系统返回指定标识的装置的核心模块是替换模块,替换模块用于实现文件系统识别可执行文件调用资源文件命令中的可执行文件标识,将文件系统返回进程的标识替换为所述的可执行文件调用资源文件命令中的可执行文件标识。不同的文件系统,替换模块的具体实现方式存在差异。针对OverlayFS的替换模块的实现方式已经在文件系统返回指定标识的方法部分进行了详细描述。
电子设备,包括以上所述的文件系统返回指定标识的装置。所述的电子设备是具有操作系统的电子设备。
利用本发明技术方案,能够实现可执行文件调用资源文件时文件系统向可执行文件对应的进程返回与可执行文件标识相一致的标识,确保可执行文件通过检查正常调用资源文件;同时实际存储在硬盘等存储器的资源文件的标识不会被修改,有效避免了修改资源文件标识可能导致的问题。
本领域技术人员在以上所描述的具体技术方案的基础上,完全可以构造出其他方案。在此不一一列举。

Claims (9)

1.文件系统返回指定标识的方法,其特征在于,所述的方法包括:
文件系统识别可执行文件调用资源文件命令中的可执行文件标识,将文件系统返回进程的标识替换为所述的可执行文件调用资源文件命令中的可执行文件标识。
2.根据权利要求1所述的方法,其特征在于,所述的方法还包括:将可执行文件标识作为可执行文件调用资源文件的命令的一部分。
3.根据权利要求1所述的方法,其特征在于,所述的将文件系统返回进程的标识替换为所述的可执行文件调用资源文件命令中的可执行文件标识,包括根据设定规则将文件系统返回进程的部分标识替换为所述的可执行文件调用资源文件命令中的可执行文件标识。
4.根据权利要求1所述的方法,其特征在于,所述的将文件系统返回进程的标识替换为所述的可执行文件调用资源文件命令中的可执行文件标识,实现方式包括修改文件系统的路径查找回调函数。
5.根据权利要求4所述的方法,其特征在于,所述的文件系统为层次文件系统,所述的路径查找回调函数为ovl_do_lookup函数。
6.根据权利要求1所述的方法,其特征在于,所述的文件系统为层次文件系统,所述的文件系统识别可执行文件调用资源文件命令中的可执行文件标识,实现方式包括在structovl_config结构体增加字段,ovl_parse_opt函数识别可执行文件调用资源文件命令中的可执行文件标识,将所述的可执行文件标识存储在所述的struct ovl_config结构体的增加字段。
7.根据权利要求6所述的方法,其特征在于,所述的存储在struct ovl_config结构体的增加字段的可执行文件标识能够在输出设备显示,实现方式包括修改ovl_show_options函数。
8.文件系统返回指定标识的装置,其特征在于,所述的装置包括替换模块,所述的替换模块用于实现文件系统识别可执行文件调用资源文件命令中的可执行文件标识,将文件系统返回进程的标识替换为所述的可执行文件调用资源文件命令中的可执行文件标识。
9.电子设备,其特征在于,所述的电子设备包括权利要求8所述的文件系统返回指定标识的装置。
CN201710359354.9A 2017-05-19 2017-05-19 文件系统返回指定标识的方法、装置及电子设备 Active CN108959297B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710359354.9A CN108959297B (zh) 2017-05-19 2017-05-19 文件系统返回指定标识的方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710359354.9A CN108959297B (zh) 2017-05-19 2017-05-19 文件系统返回指定标识的方法、装置及电子设备

Publications (2)

Publication Number Publication Date
CN108959297A CN108959297A (zh) 2018-12-07
CN108959297B true CN108959297B (zh) 2021-09-28

Family

ID=64461663

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710359354.9A Active CN108959297B (zh) 2017-05-19 2017-05-19 文件系统返回指定标识的方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN108959297B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1973288A (zh) * 2004-06-24 2007-05-30 西姆毕恩软件有限公司 计算装置中的文件管理
CN101371307A (zh) * 2006-01-31 2009-02-18 株式会社东芝 使用信息存储介质的信息再现系统
CN104376255A (zh) * 2014-11-28 2015-02-25 北京奇虎科技有限公司 应用程序运行控制方法与装置
CN106101113A (zh) * 2016-06-24 2016-11-09 中国科学院计算技术研究所 一种云计算数据安全标记管理方法及系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5701463A (en) * 1994-09-09 1997-12-23 Cheyenne Advanced Technology Limited Method of replacing the identity of a file with another as part of a file open request in a computer system
US20020147735A1 (en) * 2000-11-22 2002-10-10 Intra Inc. Method and system for optimizing file loading in a data communication network
US9326145B2 (en) * 2012-12-16 2016-04-26 Aruba Networks, Inc. System and method for application usage controls through policy enforcement

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1973288A (zh) * 2004-06-24 2007-05-30 西姆毕恩软件有限公司 计算装置中的文件管理
CN101371307A (zh) * 2006-01-31 2009-02-18 株式会社东芝 使用信息存储介质的信息再现系统
CN104376255A (zh) * 2014-11-28 2015-02-25 北京奇虎科技有限公司 应用程序运行控制方法与装置
CN106101113A (zh) * 2016-06-24 2016-11-09 中国科学院计算技术研究所 一种云计算数据安全标记管理方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"手机软件开发中的程序加载方法研究及应用";谷长龙;《中国优秀硕士学位论文全文数据库 信息科技辑》;20090115;全文 *

Also Published As

Publication number Publication date
CN108959297A (zh) 2018-12-07

Similar Documents

Publication Publication Date Title
CN111708749A (zh) 操作日志记录方法、装置、计算机设备及存储介质
CN111414391A (zh) 一种访问多数据源的方法及系统
CN111124288B (zh) 一种vpd存储管理方法、装置、设备及可读存储介质
CN112099800A (zh) 代码数据的处理方法、装置和服务器
CN109684573B (zh) 目标图片显示方法及装置、存储介质、电子设备
US20230259358A1 (en) Documentation enforcement during compilation
CN110716845A (zh) 一种Android系统的日志信息读取的方法
CN113296891B (zh) 基于平台的多场景知识图谱处理方法及装置
CN108959297B (zh) 文件系统返回指定标识的方法、装置及电子设备
US8819494B2 (en) Automatically changing parts in response to tests
WO2023016485A1 (zh) 用于获取函数调用信息的方法、装置、电子设备和介质
CN115080114B (zh) 应用程序的移植处理方法、装置和介质
CN109144948B (zh) 应用文件定位的方法、装置、电子设备和存储器
CN116450165A (zh) 一种快速搭建环境及部署程序的方法、系统、终端及存储介质
CN112486517B (zh) 应用程序的安装方法、系统、电子设备及存储介质
CN115617797A (zh) 一种业务元数据字段动态拓展方法、电子设备及存储介质
CN113110846A (zh) 一种环境变量的获取方法及装置
CN113687935A (zh) 一种基于超融合设计的云原生存储调度方式
US10802715B2 (en) Mounting a drive to multiple computing systems
CN114675995A (zh) 数据备份方法、装置和电子设备
CN112650713A (zh) 文件系统的运行方法、装置、设备和存储介质
CN115421785B (zh) 应用程序的移植处理方法、装置和介质
CN115080390A (zh) 一种用于软件补丁包回归测试的方法、装置及设备
CN108762821B (zh) 电子设备运行应用的装置及方法、电子设备
CN112379968B (zh) 应用多开的方法、装置、设备及存储介质

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
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20231129

Address after: 230031 Room 672, 6/F, Building A3A4, Zhong'an Chuanggu Science Park, No. 900, Wangjiang West Road, High-tech Zone, Hefei, Anhui

Patentee after: Anhui Haima Cloud Technology Co.,Ltd.

Address before: 301700 room 2d25, Building 29, No.89 Heyuan Road, Jingjin science and Technology Valley Industrial Park, Wuqing District, Tianjin

Patentee before: HAIMAYUN (TIANJIN) INFORMATION TECHNOLOGY CO.,LTD.