CN110109761A - 一种用户态管理操作系统内核内存方法及系统 - Google Patents

一种用户态管理操作系统内核内存方法及系统 Download PDF

Info

Publication number
CN110109761A
CN110109761A CN201910391224.2A CN201910391224A CN110109761A CN 110109761 A CN110109761 A CN 110109761A CN 201910391224 A CN201910391224 A CN 201910391224A CN 110109761 A CN110109761 A CN 110109761A
Authority
CN
China
Prior art keywords
kernel
memory
user space
virtual address
true
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201910391224.2A
Other languages
English (en)
Other versions
CN110109761B (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.)
Guangdong University of Business Studies
Original Assignee
肖银皓
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 肖银皓 filed Critical 肖银皓
Priority to CN201910391224.2A priority Critical patent/CN110109761B/zh
Publication of CN110109761A publication Critical patent/CN110109761A/zh
Application granted granted Critical
Publication of CN110109761B publication Critical patent/CN110109761B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种用户态管理操作系统内核内存方法及系统,计算出该内核对象的真实起始内核虚拟地址和真实终止内核虚拟地址,并将这两个地址传递给内核内存登记表模块,在用户指定的绝对起始地址的内存范围内创建用户态程序的线程内核对象,可以大大增加在用户态管理内核内存的灵活性的同时,减小实现这项功能所需的内存和系统负担。本发明的内核内存管理力度可以是用户定义的任何细小粒度,大大减小了不正确实现的可能性,使得应用程序无需获知真实的内核虚拟地址,减少了隐蔽存储通道存在的可能,适用于微内核操作系统。

Description

一种用户态管理操作系统内核内存方法及系统
技术领域
本公开涉及物联网、嵌入式系统领域和操作系统技术领域,具体涉及一种用户态管理操作系统内核内存方法及系统,尤其适用于微内核操作系统的在用户态管理内核内存领域。
背景技术
现代微内核的一个重要特点是,其内核内存是由用户态管理的。这使得原本在内核中的内核内存现在能够在用户态被持有相应授权的服务器进行管理,而且其具体的管理政策可以在用户态被完成,增加了系统的灵活性。
现有的内核内存管理技术有两类。一类是在内核态管理,一类是在用户态管理。现有的流行操作系统如Linux等完全在内核态管理内核内存,其内核内存的管理策略完全位于内核态中,用户完全没有插手内核内存管理的能力,这使得内核内存管理非常不灵活。现有的一些微内核如seL4等采取了在用户态管理内核内存的技术,它允许用户将一个页重定义成用户用内存页或内核用内存页,而只有内核页能够创建内核对象,安全地实现了用户态的内核内存管理。但是,这种接口的内核内存分配粒度是以页为单位的,非常不灵活,而且在小型嵌入式系统上记录重定义数据本身就会造成很大负担。
现有的操作系统的内核内存管理方法不够灵活:
(1)基于POSIX API的Linux等操作系统完全不允许用户在用户态管理内核内存;
(2) 现有的seL4等允许重定义页为内核内存页和用户内存页的机制只能在页的水准上管理内核内存,粒度过粗;
(3) 根据现有的seL4的内核内存管理机制,其内核内存如果要创建内核对象,那么同一个页上的内核对象必须是同一种,这对用户态使用内核对象施加了很多限制。而且,这限制了使用大页存放内核对象的能力:如果使用大页,则一个大页上的内核对象必须是同一种,如果用不完这些内核对象,那么这些内核对象的空间就浪费了;
(4) 根据现有的seL4的内核内存管理机制,任何一个页都可能被定义为内核内存页或者用户内存页,因此要保留大量的数据结构和引用计数以存储这些定义信息,这对小型嵌入式系统造成了巨大的存储压力。很多系统可能并不需要同一块内存既可以用作用户内存也可以用作内核内存的功能(也即不需要重定义功能),而仅仅要求内核对象在系统启动时预先静态分配好的内核内存上的创建是用户态可以控制的。
发明内容
为了解决上述问题,本公开提供一种用户态管理操作系统内核内存方法及系统,计算出该内核对象的真实起始内核虚拟地址和真实终止内核虚拟地址,并将这两个地址传递给内核内存登记表模块, 在用户指定的绝对起始地址的内存范围内创建用户态程序的线程内核对象,适用于微内核操作系统。
为了实现上述目的,根据本公开的一方面,提供一种用户态管理操作系统内核内存方法,所述方法包括以下步骤:
步骤1,当用户态程序发起在内核内存中创建内核对象的请求时,用户态管理操作系统的权限鉴别模块先完成权限检查和参数检查;
步骤2,计算真实的内核内存虚拟地址;
步骤3,内核内存登记模块根据真实的内核内存虚拟地址,检查内核内存登记表中相对应的位是否为空,如果不为空则报错,如果为空则在内核内存登记表中登记相对应的位,表示该段内核内存现被该用户态程序占用;
步骤4,内核内存模块在用户指定的真实的内核内存虚拟地址创建用户态程序请求的内核对象。
进一步地,在步骤1中,所述用户态管理操作系统内核内存系统包括:权限鉴别模块,内核内存模块和内核内存登记表模块;
其中,权限鉴别模块负责在用户态程序提起在某段内核虚拟内存上创建内核对象请求时,检查该用户态程序有没有在该内核内存范围创建内核对象的权限,以及参数是否正确。用户态程序(指定)给出的内核内存的起始地址范围是一个相对值,是相对于某个内核内存起始地址的,该起始地址可以根据用户态程序给出的对某段内核内存的访问凭证确定。权限鉴别模块在检查完参数和权限后,将根据用户态程序给出的内核相对虚拟地址和访问凭证上带有的内核内存真实虚拟地址,将二者相加,计算出该内核对象的真实起始内核虚拟地址和真实终止内核虚拟地址,并将这两个地址传递给内核内存登记表模块。
其中,内核内存模块用于在接收到内核内存登记表的调用时,在该段内核内存上创建用户欲创建的内核对象,并将该内核对象的某种引用方式返回给用户态。
其中,内核内存登记表模块内部含有登记逻辑、反登记逻辑和一个用来记录某一小段内核虚拟内存上是否有内核对象被创建的线性表。在操作系统初始化时,系统指定一段内核虚拟内存作为内核内存,并且将该段内核内存按照一定的粒度分割为一个个小段。该粒度可以远小于一个页,比如可以设置为64字节等等,从而避免了按页为单位进行分配造成的浪费。内核内存登记表是一个连续的线性位图,其中每个位对应于一小段(如64字节)内核内存,如果对应的位置为1(或不为空),那么表示该段内核内存上已经有内核对象创建,因此不能再次创建内核对象。当内核内存登记表模块得到起始内核虚拟地址和终止内核虚拟地址后,检查这段内存在内核内存登记表中对应的这些位,如果均没有置1则将其均置1标志在这段内核内存上要创建内核对象,并调用内核内存模块。
进一步地,在步骤1中,所述权限检查和参数检查为,权限检查包括但不限于检查该用户态程序有没有在该内核内存范围创建内核对象的权限、在创建线程和进程时应满足的权限,参数检查包括但不限于检查用户预设的程序入口点位置、栈位置等,判断参数是否正确。
进一步地,在步骤2中,计算真实的内核内存虚拟地址的方法为,用户态程序给出的内核内存范围是一个相对值,是相对于某个内核内存起始地址的,该起始地址可以根据用户态程序给出的对某段内核内存的访问凭证确定。权限鉴别模块在检查完参数和权限后,将根据用户态程序给出的内核相对虚拟地址和访问凭证上带有的内核内存真实虚拟地址,将二者相加,计算出该内核对象的真实起始内核虚拟地址和真实终止内核虚拟地址,内核对象的真实起始内核虚拟地址和真实终止内核虚拟地址即为真实的内核内存虚拟地址。
进一步地,在步骤3中,所述内核内存登记表为一个或多个用于记录某一小段内核虚拟内存上是否有内核对象被创建的连续的线性表(线性位图),其中每个位对应于一小段内核内存,如果对应的位置不为空,那么表示该段位置的内核内存上已经有内核对象创建,因此不能再次创建内核对象,则报错。
进一步地,在步骤4中,在用户指定的真实的内核内存虚拟地址创建用户态程序请求的内核对象的方法为,这个用户态程序的内核绝对起始地址从在用户指定的绝对起始地址开始,在用户指定的绝对起始地址的内存范围内创建用户态程序的线程内核对象,其中,用户指定的绝对起始地址加上相对地址就得到内核对象所在的真实地址,在用户态管理内核内存,用户态是不能访问这些内存的,而且这些内存不会映射到用户态页表,减少了隐蔽存储通道存在的可能。
本发明还提供了一种用户态管理操作系统内核内存系统,所述系统包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序运行在用户态管理操作系统内核内存系统的权限鉴别模块,内核内存模块和内核内存登记表模块的各自单元中:
其中,权限鉴别模块,包括以下单元:
权限参数检查单元,用于在用户态程序发起在内核内存中创建内核对象的请求时,用户态管理操作系统的权限鉴别模块先完成权限检查和参数检查;
虚拟地址计算单元,用于计算真实的内核内存虚拟地址;
其中,内核内存模块,包括以下单元:
内核内存登记单元,用于内核内存登记模块根据真实的内核内存虚拟地址,检查内核内存登记表中相对应的位是否为空,如果不为空则报错,如果为空则在内核内存登记表中登记相对应的位,表示该段内核内存现被该用户态程序占用;
其中,内核内存登记表模块,包括以下单元:
内核对象创建单元,用于内核内存模块在用户指定的真实的内核内存虚拟地址创建用户态程序请求的内核对象。
本公开的有益效果为:本发明提供一种用户态管理操作系统内核内存方法及系统,可以大大增加在用户态管理内核内存的灵活性的同时,减小实现这项功能所需的内存和系统负担。本发明的内核内存管理力度可以是用户定义的任何细小粒度,比如64字节等等,远小于seL4等系统的一整个页。本发明的用户态内核内存管理逻辑要远简单于seL4等系统,大大减小了不正确实现的可能性。并且,本发明很容易使用原子操作实现其并行版本,在多核上容易取得较好的性能。另外,应用程序在创建内核对象时给出的并非真实的内核虚拟地址,而是相对于访问凭证规定的真实起始内核虚拟地址的相对内核虚拟地址,这使得应用程序无需获知真实的内核虚拟地址,减少了隐蔽存储通道存在的可能。
附图说明
通过对结合附图所示出的实施方式进行详细说明,本公开的上述以及其他特征将更加明显,本公开附图中相同的参考标号表示相同或相似的元素,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,在附图中:
图1所示为一种用户态管理操作系统内核内存方法的流程图;
图2所示为一种用户态管理操作系统内核内存系统图。
具体实施方式
以下将结合实施例和附图对本公开的构思、具体结构及产生的技术效果进行清楚、完整的描述,以充分地理解本公开的目的、方案和效果。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
如图1所示为根据本公开的一种用户态管理操作系统内核内存方法的流程图,下面结合图1来阐述根据本公开的实施方式的一种用户态管理操作系统内核内存方法。
本公开提出一种用户态管理操作系统内核内存方法,具体包括以下步骤:
步骤1,当用户态程序发起在内核内存中创建内核对象的请求时,用户态管理操作系统的权限鉴别模块先完成权限检查和参数检查;
步骤2,计算真实的内核内存虚拟地址;
步骤3,内核内存登记模块根据真实的内核内存虚拟地址,检查内核内存登记表中相对应的位是否为空,如果不为空则报错,如果为空则在内核内存登记表中登记相对应的位,表示该段内核内存现被该用户态程序占用;
步骤4,内核内存模块在用户指定的真实的内核内存虚拟地址创建用户态程序请求的内核对象。
进一步地,在步骤1中,所述用户态管理操作系统内核内存系统包括:权限鉴别模块,内核内存模块和内核内存登记表模块;
其中,权限鉴别模块负责在用户态程序提起在某段内核虚拟内存上创建内核对象请求时,检查该用户态程序有没有在该内核内存范围创建内核对象的权限,以及参数是否正确。用户态程序(指定)给出的内核内存的起始地址范围是一个相对值,是相对于某个内核内存起始地址的,该起始地址可以根据用户态程序给出的对某段内核内存的访问凭证确定。权限鉴别模块在检查完参数和权限后,将根据用户态程序给出的内核相对虚拟地址和访问凭证上带有的内核内存真实虚拟地址,将二者相加,计算出该内核对象的真实起始内核虚拟地址和真实终止内核虚拟地址,并将这两个地址传递给内核内存登记表模块。
其中,内核内存模块用于在接收到内核内存登记表的调用时,在该段内核内存上创建用户欲创建的内核对象,并将该内核对象的某种引用方式返回给用户态。
其中,内核内存登记表模块内部含有登记逻辑、反登记逻辑和一个用来记录某一小段内核虚拟内存上是否有内核对象被创建的线性表。在操作系统初始化时,系统指定一段内核虚拟内存作为内核内存,并且将该段内核内存按照一定的粒度分割为一个个小段。该粒度可以远小于一个页,比如可以设置为64字节等等,从而避免了按页为单位进行分配造成的浪费。内核内存登记表是一个连续的线性位图,其中每个位对应于一小段(如64字节)内核内存,如果对应的位置为1(或不为空),那么表示该段内核内存上已经有内核对象创建,因此不能再次创建内核对象。当内核内存登记表模块得到起始内核虚拟地址和终止内核虚拟地址后,检查这段内存在内核内存登记表中对应的这些位,如果均没有置1则将其均置1标志在这段内核内存上要创建内核对象,并调用内核内存模块。
进一步地,在步骤1中,所述权限检查和参数检查为,权限检查包括但不限于检查该用户态程序有没有在该内核内存范围创建内核对象的权限、在创建线程和进程时应满足的权限,参数检查包括但不限于检查用户预设的程序入口点位置、栈位置等,判断参数是否正确。
进一步地,在步骤2中,计算真实的内核内存虚拟地址的方法为,用户态程序给出的内核内存范围是一个相对值,是相对于某个内核内存起始地址的,该起始地址可以根据用户态程序给出的对某段内核内存的访问凭证确定。权限鉴别模块在检查完参数和权限后,将根据用户态程序给出的内核相对虚拟地址和访问凭证上带有的内核内存真实虚拟地址,将二者相加,计算出该内核对象的真实起始内核虚拟地址和真实终止内核虚拟地址,内核对象的真实起始内核虚拟地址和真实终止内核虚拟地址即为真实的内核内存虚拟地址。
进一步地,在步骤3中,所述内核内存登记表为一个或多个用于记录某一小段内核虚拟内存上是否有内核对象被创建的连续的线性表(线性位图),其中每个位对应于一小段内核内存,如果对应的位置不为空,那么表示该段位置的内核内存上已经有内核对象创建,因此不能再次创建内核对象,则报错。
进一步地,在步骤4中,在用户指定的真实的内核内存虚拟地址创建用户态程序请求的内核对象的方法为,这个用户态程序的内核绝对起始地址从在用户指定的绝对起始地址开始,在用户指定的绝对起始地址的内存范围内创建用户态程序的线程内核对象,其中,用户指定的绝对起始地址加上相对地址就得到内核对象所在的真实地址,在用户态管理内核内存,用户态是不能访问这些内存的,而且这些内存不会映射到用户态页表,减少了隐蔽存储通道存在的可能。
本发明的一种实施,给出一个非常简要的具体实施例,阐述该方法如何在用户态管理内核内存。某软件系统包括一个应用程序模块,一个权限鉴别模块,一个内核内存模块和一个内核内存登记表模块。
本实施给出一个非常简要的具体实施例,阐述该方法如何在用户态管理内核内存。某软件系统包括一个应用程序模块,一个权限鉴别模块,一个内核内存模块和一个内核内存登记表模块。
应用程序希望在相对内核内存范围0x00000000-0x00000080内创建一个线程内核对象,该内核对象的大小为128字节。基于此,该应用程序发起系统调用,并且将该相对内核内存地址范围、在0x80000000为起始虚拟地址和0x90000000为结束虚拟地址上创建内核对象的权限凭证和创建内核对象的类型(线程)传递给权限鉴别模块。
权限鉴别模块检查应用程序的权限,确认应用程序有权限在该段内核内存上创建线程内核对象。权限鉴别模块计算出该内核对象的真实的内核内存虚拟地址范围为0x80000000-0x80000080,并将该地址范围传递给内核内存登记表模块。
内核内存登记表模块得到这些信息后,寻找该段内核内存对应的内核内存登记表位,并将其原子性置为1。由于在本实施例中,内核内存的分配粒度为64个字节,因此有两个连续的位需要置1,标志着该段内核内存已经被占用。
最后,内核内存模块在该指定的内存范围内创建所需的线程内核对象。
本公开的实施例提供的一种用户态管理操作系统内核内存系统,如图2所示为本公开的一种用户态管理操作系统内核内存系统图,该实施例的一种用户态管理操作系统内核内存系统包括:处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序运行在用户态管理操作系统内核内存系统的权限鉴别模块,内核内存模块和内核内存登记表模块的各自单元中:
其中,权限鉴别模块,包括以下单元:
权限参数检查单元,用于在用户态程序发起在内核内存中创建内核对象的请求时,用户态管理操作系统的权限鉴别模块先完成权限检查和参数检查;
虚拟地址计算单元,用于计算真实的内核内存虚拟地址;
其中,内核内存模块,包括以下单元:
内核内存登记单元,用于内核内存登记模块根据真实的内核内存虚拟地址,检查内核内存登记表中相对应的位是否为空,如果不为空则报错,如果为空则在内核内存登记表中登记相对应的位,表示该段内核内存现被该用户态程序占用;
其中,内核内存登记表模块,包括以下单元:
内核对象创建单元,用于内核内存模块在用户指定的真实的内核内存虚拟地址创建用户态程序请求的内核对象。
所述一种用户态管理操作系统内核内存系统可以运行于桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备中。所述一种用户态管理操作系统内核内存系统,可运行的系统可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,所述例子仅仅是一种用户态管理操作系统内核内存系统的示例,并不构成对一种用户态管理操作系统内核内存系统的限定,可以包括比例子更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述一种用户态管理操作系统内核内存系统还可以包括输入输出设备、网络接入设备、总线等。
所称处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器 (Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列 (Field-Programmable Gate Array,FPGA) 或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述一种用户态管理操作系统内核内存系统运行系统的控制中心,利用各种接口和线路连接整个一种用户态管理操作系统内核内存系统可运行系统的各个部分。
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述一种用户态管理操作系统内核内存系统的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card, SMC),安全数字(Secure Digital, SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
尽管本公开的描述已经相当详尽且特别对几个所述实施例进行了描述,但其并非旨在局限于任何这些细节或实施例或任何特殊实施例,而是应当将其视作是通过参考所附权利要求考虑到现有技术为这些权利要求提供广义的可能性解释,从而有效地涵盖本公开的预定范围。此外,上文以发明人可预见的实施例对本公开进行描述,其目的是为了提供有用的描述,而那些目前尚未预见的对本公开的非实质性改动仍可代表本公开的等效改动。

Claims (7)

1.一种用户态管理操作系统内核内存方法,其特征在于,所述方法包括以下步骤:
步骤1,当用户态程序发起在内核内存中创建内核对象的请求时,用户态管理操作系统的权限鉴别模块先完成权限检查和参数检查;
步骤2,计算真实的内核内存虚拟地址;
步骤3,内核内存登记模块根据真实的内核内存虚拟地址,检查内核内存登记表中相对应的位是否为空,如果不为空则报错,如果为空则在内核内存登记表中登记相对应的位,表示该段内核内存现被该用户态程序占用;
步骤4,内核内存模块在用户指定的真实的内核内存虚拟地址创建用户态程序请求的内核对象。
2.根据权利要求1所述的一种用户态管理操作系统内核内存方法,其特征在于,在步骤1中,所述用户态管理操作系统内核内存系统包括:权限鉴别模块,内核内存模块和内核内存登记表模块。
3.根据权利要求1所述的一种用户态管理操作系统内核内存方法,其特征在于,在步骤1中,所述权限检查和参数检查为,权限检查包括但不限于检查该用户态程序有没有在该内核内存范围创建内核对象的权限、在创建线程和进程时应满足的权限,参数检查包括但不限于检查用户预设的程序入口点位置、栈位置的参数是否正确。
4.根据权利要求1所述的一种用户态管理操作系统内核内存方法,其特征在于,在步骤2中,计算真实的内核内存虚拟地址的方法为,用户态程序给出的内核内存范围是一个相对值,是相对于某个内核内存起始地址的,该起始地址可以根据用户态程序给出的对某段内核内存的访问凭证确定;权限鉴别模块在检查完参数和权限后,将根据用户态程序给出的内核相对虚拟地址和访问凭证上带有的内核内存真实虚拟地址,将二者相加,计算出该内核对象的真实起始内核虚拟地址和真实终止内核虚拟地址,内核对象的真实起始内核虚拟地址和真实终止内核虚拟地址即为真实的内核内存虚拟地址。
5.根据权利要求4所述的一种用户态管理操作系统内核内存方法,其特征在于,在步骤3中,所述内核内存登记表为一个或多个用于记录某一小段内核虚拟内存上是否有内核对象被创建的连续的线性表,其中每个位对应于一小段内核内存,如果对应的位置不为空,那么表示该段位置的内核内存上已经有内核对象创建,因此不能再次创建内核对象,则报错。
6.根据权利要求5所述的一种用户态管理操作系统内核内存方法,其特征在于,在步骤4中,在用户指定的真实的内核内存虚拟地址创建用户态程序请求的内核对象的方法为,这个用户态程序的内核绝对起始地址从在用户指定的绝对起始地址开始,在用户指定的绝对起始地址的内存范围内创建用户态程序的线程内核对象。
7.一种用户态管理操作系统内核内存系统,其特征在于,所述系统包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序运行在用户态管理操作系统内核内存系统的权限鉴别模块,内核内存模块和内核内存登记表模块的各自单元中:
其中,权限鉴别模块,包括以下单元:
权限参数检查单元,用于在用户态程序发起在内核内存中创建内核对象的请求时,用户态管理操作系统的权限鉴别模块先完成权限检查和参数检查;
虚拟地址计算单元,用于计算真实的内核内存虚拟地址;
其中,内核内存模块,包括以下单元:
内核内存登记单元,用于内核内存登记模块根据真实的内核内存虚拟地址,检查内核内存登记表中相对应的位是否为空,如果不为空则报错,如果为空则在内核内存登记表中登记相对应的位,表示该段内核内存现被该用户态程序占用;
其中,内核内存登记表模块,包括以下单元:
内核对象创建单元,用于内核内存模块在用户指定的真实的内核内存虚拟地址创建用户态程序请求的内核对象。
CN201910391224.2A 2019-05-11 2019-05-11 一种用户态管理操作系统内核内存方法及系统 Active CN110109761B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910391224.2A CN110109761B (zh) 2019-05-11 2019-05-11 一种用户态管理操作系统内核内存方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910391224.2A CN110109761B (zh) 2019-05-11 2019-05-11 一种用户态管理操作系统内核内存方法及系统

Publications (2)

Publication Number Publication Date
CN110109761A true CN110109761A (zh) 2019-08-09
CN110109761B CN110109761B (zh) 2021-06-04

Family

ID=67489482

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910391224.2A Active CN110109761B (zh) 2019-05-11 2019-05-11 一种用户态管理操作系统内核内存方法及系统

Country Status (1)

Country Link
CN (1) CN110109761B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112463662A (zh) * 2020-12-16 2021-03-09 福州创实讯联信息技术有限公司 一种用户态控制i2c设备的方法与终端
CN112711546A (zh) * 2019-10-24 2021-04-27 华为技术有限公司 内存配置方法、装置及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000322276A (ja) * 1999-05-07 2000-11-24 Nec Corp メッセージ管理装置
CN1779652A (zh) * 2004-11-24 2006-05-31 中兴通讯股份有限公司 一种调试操作系统内核态程序的方法及装置
CN102819497A (zh) * 2012-05-31 2012-12-12 华为技术有限公司 一种内存分配方法、装置及系统
CN103176855A (zh) * 2013-03-15 2013-06-26 中兴通讯股份有限公司 消息交互处理方法及装置
CN103729300A (zh) * 2013-12-25 2014-04-16 华为技术有限公司 非易失内存的管理方法和相关装置
CN103984599A (zh) * 2014-04-14 2014-08-13 北京大学 一种提高操作系统大页使用率的方法
CN107179949A (zh) * 2016-12-16 2017-09-19 重庆大学 一种用于移动设备中操作系统内存分配流畅度的量化方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000322276A (ja) * 1999-05-07 2000-11-24 Nec Corp メッセージ管理装置
CN1779652A (zh) * 2004-11-24 2006-05-31 中兴通讯股份有限公司 一种调试操作系统内核态程序的方法及装置
CN102819497A (zh) * 2012-05-31 2012-12-12 华为技术有限公司 一种内存分配方法、装置及系统
CN103176855A (zh) * 2013-03-15 2013-06-26 中兴通讯股份有限公司 消息交互处理方法及装置
CN103729300A (zh) * 2013-12-25 2014-04-16 华为技术有限公司 非易失内存的管理方法和相关装置
CN103984599A (zh) * 2014-04-14 2014-08-13 北京大学 一种提高操作系统大页使用率的方法
CN107179949A (zh) * 2016-12-16 2017-09-19 重庆大学 一种用于移动设备中操作系统内存分配流畅度的量化方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112711546A (zh) * 2019-10-24 2021-04-27 华为技术有限公司 内存配置方法、装置及存储介质
WO2021077917A1 (zh) * 2019-10-24 2021-04-29 华为技术有限公司 内存配置方法、装置及存储介质
CN112463662A (zh) * 2020-12-16 2021-03-09 福州创实讯联信息技术有限公司 一种用户态控制i2c设备的方法与终端
CN112463662B (zh) * 2020-12-16 2024-04-05 福州创实讯联信息技术有限公司 一种用户态控制i2c设备的方法与终端

Also Published As

Publication number Publication date
CN110109761B (zh) 2021-06-04

Similar Documents

Publication Publication Date Title
US10802985B2 (en) GPU virtualisation
US11842217B1 (en) Isolating tenants executing in multi-tenant software containers
US8966464B1 (en) Isolating tenants executing in multi-tenant software containers
US9122575B2 (en) Processing system having memory partitioning
US9471353B1 (en) Isolating tenants executing in multi-tenant software containers
US8464069B2 (en) Secure data access methods and apparatus
US8904400B2 (en) Processing system having a partitioning component for resource partitioning
US9952788B2 (en) Method and apparatus for providing a shared nonvolatile memory system using a distributed FTL scheme
CN108763099A (zh) 系统的启动方法、装置、电子设备和存储介质
DE102020127800A1 (de) Ein-chip-system und verfahren zu dessen betrieb
CN112612623B (zh) 一种共享内存管理的方法和设备
CN110162328B (zh) 一种智能卡操作系统升级方法及装置
CN110109761A (zh) 一种用户态管理操作系统内核内存方法及系统
CN112698793A (zh) 一种数据存储方法、装置、机器可读介质及设备
CN113010265A (zh) Pod的调度方法、调度器、存储插件及系统
CN108989288A (zh) 一种基于区块链的移动数字版权保护方法及装置
CN114041119A (zh) 跨越信任边界的存储器解除分配
US20140289739A1 (en) Allocating and sharing a data object among program instances
CN107102889A (zh) 一种虚拟机资源调整方法及装置
CN108171041A (zh) 用于对访问存储器的应用程序进行身份验证的方法和装置
CN103617039A (zh) 一种访问用户空间文件系统的方法及装置
CN107577962A (zh) 一种密码卡多算法并列执行的方法、系统及相关装置
CN110535724B (zh) 应用程序网络读写限制方法、装置、电子设备及存储介质
Castro et al. Password-capabilities and the Walnut kernel
EP1222537A2 (en) Resource access control system

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
TA01 Transfer of patent application right

Effective date of registration: 20210127

Address after: No.21, Luntou Road, Guangzhou, Guangdong 510000

Applicant after: GUANGDONG University OF FINANCE & ECONOMICS

Address before: Room 2703, block 3, xingxinghuayuan, 17 Yingyin Road, Chancheng District, Foshan City, Guangdong Province, 528000

Applicant before: Xiao Yinhao

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant