一种高安全的内核对象内存分配方法

文档序号:9453014阅读:194来源:国知局
一种高安全的内核对象内存分配方法
【技术领域】
[0001]本发明涉及计算机微内核技术领域,特别涉及一种高安全的内核对象内存分配方法。
【背景技术】
[0002]内核对象是操作系统为一些系统级的对象(像进程,线程,信号量)维护的一些数据结构。这些数据构保存了与系统级对象相关的系统级信息。
[0003]例如:所有内核对象都会保存该对象的引用计数,进程对象会保存进程ID,文件对象会保存当前字节偏移量,共享模式,打开模式等。
[0004]操作系统中所有内核对象对是保存在一块内存空间中,系统上所有的进程都共享这一块内存空间。
[0005]这些内核对象不能被应用程序直接访问,应用程序只能通过操作系统提供的API对他们进行操作。而对操作系统API的访问过程中,操作系统会对访问的安全性进行保证。这样避免应用程序对内核对象进行操作而导致系统出现错误。
[0006]另外,多个进程可以共享访问同一个内核对象。
[0007]当应用程序创建或打开一个新的内核对象时,系统API会返回给应用程序一个句柄,该句柄是进程级别的,之后便可以在应用程序中使用该句柄来指定对该内核对象进行操作。
[0008]由于系统API返回给应用程序的句柄是进程级别的,因此同一个内核对象在两个不同进程中的句柄不会一样。一个进程如果使用内核对象在其他进程中的句柄来访问内核对象时会出错。
[0009]每个内核对象都会有一个引用计数的概念,内核对象被创建的时候,该值是I。之后每一个新的进程获得对该内核对象访问,则引用计数加I。当每一个获得访问的进程释放访问权利后(进程关闭内核对象的句柄),引用计数会被减I。当引用计数减少至O后,操作系统将会把该内核对象销毁掉。
[0010]页高速缓存的优点在于:1)访问磁盘的速度远远低于访问内存的速度,因此从内存访问数据要比从磁盘访问速度快。2)数据一旦被访问,就很有可能在短期内被再次访问至|J。这种在短期内集中访问同一片数据的原理被称作临时局部原理temporal locality。临时局部原理保证:如果在第一次访问数据时缓存它,那就极有可能在短期内再次被高速缓存命中。
[0011]微内核(Micro kernel)是提供操作系统核心功能的内核的精简版本,它设计成在很小的内存空间内增加移植性,提供模块化设计,以使用户安装不同的接口。因此,也可以说微内核是操作系统(OS)的最小核心。IBM、Microsoft、开放软件基金会(OSF)和UNIX系统实验室(USL)等新操作系统都采用了这一研究成果的优点。
[0012]它呈现的是今天通常被认为的操作系统的一个很小的子集。微内核的定义由利特克给出:一个概念仅在以下条件下是可以容忍放在微内核的,那就是当将它移到内核外时,例如,允许竞争的实现,将防止系统所需功能的实现。
[0013]因此,微内核不提供硬件上的高层次的抽象(文件,进程,套接字等),如大多数现代操作系统Linux或Windows所做的那样。相反,它提供了最少的机制用于控制物理地址空间访问,中断和处理器时间。使用这些机制的任何更高级别的结构是建立在微内核之上。这样的更高级别的服务必然封装策略。策略自由是一个精心设计的微内核的一个重要特征。
[0014]微内核是一种能够提供必要服务的操作系统内核,其中这些必要的服务包括任务,线程,交互进程通信(IPC,Inter-Process Communicat1n)以及内存管理等等。所有服务(包括设备驱动)在用户模式下运行,而处理这些服务同处理其他的任何一个程序一样。因为每个服务只是在自己的地址空间运行。所以这些服务之间彼此之间都受到了保护。
[0015]微内核具有非常明显的优势。首先,微内核能够使得不同的API,文件系统,甚至不同的操作系统的特性在一个系统中共存。
[0016]其次,微内核系统非常灵活。当运行一个应用程序时,只需把选定的系统服务加载到系统中即可。而修改了服务以后可以通过联机进行测试;并不需要重新构建或者启动一个新的内核,他们并不影响系统的运行。
[0017]第三,微内核的系统服务或者设备驱动故障和与它们有关的运行任务是隔绝的。
[0018]第四,依存关系的服务器系统可以加以限制,使为安全重要至关信赖的计算基数的应用可被削减。
[0019]第五,由微内核所决定的结构(IPC,多线程)能够应用在所有的应用程序和服务上。一个精炼的微内核接口能够有演绎成更多模块的系统结构。

【发明内容】

[0020]本发明为了弥补现有技术的缺陷,提供了一种应用范围广泛,安全稳定,使用方便的高安全的内核对象内存分配方法。
[0021]本发明是通过如下技术方案实现的:
一种高安全的内核对象内存分配方法,其特征在于:应用程序创建新的内核对象时,首先判断是否有足够的内存空间,若有足够的内存空间,则微内核不动态的为内核对象分配内存,成功创建内核对象,精确地控制应用程序可用物理内存的大小,隔离应用程序之间的物理内存访问;若没有足够的内存空间,则认为内存不足,创建新的内核对象失败。
[0022]所述内核对象必须明确被应用程序控制的内存区域通过无类型内存控制功能创建。
[0023]为了创建新的内核对象,应用程序必须通过无类型的内存控制功能明确指向所述内核对象的内存位置,所有内核对象消耗的资源量必须一次创建完毕。
[0024]本发明的有益效果是:该高安全的内核对象内存分配方法,可以用来精确地控制应用程序可用物理内存的大小,以及能够隔离应用程序之间的物理内存访问。
【附图说明】
[0025]附图1为本发明高安全的内核对象内存分配方法示意图。
【具体实施方式】
[0026]附图为本发明的一种具体实施例,下面结合附图对本发明进行详细说明。
[0027]该高安全的内核对象内存分配方法,应用程序创建新的内核对象时,首先判断是否有足够的内存空间,若有足够的内存空间,则微内核不动态的为内核对象分配内存,成功创建内核对象,精确地控制应用程序可用物理内存的大小,隔离应用程序之间的物理内存访问;若没有足够的内存空间,则认为内存不足,创建新的内核对象失败。
[0028]所述内核对象必须明确被应用程序控制的内存区域通过无类型内存控制功能创建。
[0029]为了创建新的内核对象,应用程序必须通过无类型的内存控制功能明确指向所述内核对象的内存位置,所有内核对象消耗的资源量必须一次创建完毕。
【主权项】
1.一种高安全的内核对象内存分配方法,其特征在于:应用程序创建新的内核对象时,首先判断是否有足够的内存空间,若有足够的内存空间,则微内核不动态的为内核对象分配内存,成功创建内核对象,精确地控制应用程序可用物理内存的大小,隔离应用程序之间的物理内存访问;若没有足够的内存空间,则认为内存不足,创建新的内核对象失败。2.根据权利要求1所述的高安全的内核对象内存分配方法,其特征在于:所述内核对象必须明确被应用程序控制的内存区域通过无类型内存控制功能创建。3.根据权利要求1所述的高安全的内核对象内存分配方法,其特征在于:为了创建新的内核对象,应用程序必须通过无类型的内存控制功能明确指向所述内核对象的内存位置,所有内核对象消耗的资源量必须一次创建完毕。
【专利摘要】本发明特别涉及一种高安全的内核对象内存分配方法。该高安全的内核对象内存分配方法,在设备驱动程序的HAL层代码中加入驱动认证与检测机制,对要加载的驱动模块进行认证与检测,当所述驱动模块通过认证与检测时,正常加载驱动程序;当所述驱动模块没能通过认证与检测时,不加载驱动程序。该高安全的内核对象内存分配方法,实现了Android运行环境中,对HAL驱动模块的认证和监控,避免了驱动模块做一些不在本职范围内的事情,尤其是违法行为,维护了系统安全,避免了用户的损失。
【IPC分类】G06F21/51, G06F12/08
【公开号】CN105205013
【申请号】CN201510586611
【发明人】仇伟民, 刘秋杉, 戴鸿君, 于治楼
【申请人】浪潮集团有限公司
【公开日】2015年12月30日
【申请日】2015年9月15日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1