CN116522323A - 一种基于命名空间的容器消息队列读写管理方法 - Google Patents
一种基于命名空间的容器消息队列读写管理方法 Download PDFInfo
- Publication number
- CN116522323A CN116522323A CN202310259699.2A CN202310259699A CN116522323A CN 116522323 A CN116522323 A CN 116522323A CN 202310259699 A CN202310259699 A CN 202310259699A CN 116522323 A CN116522323 A CN 116522323A
- Authority
- CN
- China
- Prior art keywords
- message queue
- read
- write
- message
- namespace
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 44
- 230000008569 process Effects 0.000 claims description 25
- 238000002955 isolation Methods 0.000 claims description 15
- 238000003780 insertion Methods 0.000 claims description 13
- 230000037431 insertion Effects 0.000 claims description 13
- 244000035744 Hura crepitans Species 0.000 claims description 11
- 238000007726 management method Methods 0.000 claims description 7
- 230000002452 interceptive effect Effects 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 description 16
- 230000007246 mechanism Effects 0.000 description 8
- 238000011161 development Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 238000012217 deletion Methods 0.000 description 3
- 230000037430 deletion Effects 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- 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)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种基于命名空间的容器消息队列读写管理方法。通过消息队列中提供的信息,确定某项任务可以读写哪个或哪些消息队列;查看该任务请求读写的消息队列,是否是已经获得了权限;如果该任务确实有权读写该消息队列,则予以放行,进行读取操作或者写入操作;如果没有权限读写该消息队列,则返回错误信息,拒绝进行读写操作。本发明实现对于操作系统中的一项资源,即消息队列,进行读写操作中访问权限的管理。
Description
技术领域
本发明属于一种基于命名空间的容器消息队列读写管理方法。
背景技术
随着人工智能、无人驾驶、物联网等技术的发展,轻量化的实时操作系统逐渐得到了广泛应用。与此同时,容器技术,如著名的doсkеr等,推动了计算模式的进步,它可以让计算资源灵活而高效的应用,提升了计算资源的利用率,改进了软件的开发效率。
容器是一种轻量化的虚拟化技术,与传统的虚拟化技术相比,它的系统开销更低,运行效率更高。同时,容器技术也能和传统虚拟化技术一样,在一个操作系统上运行多个虚拟的操作系统。每个容器内的应用程序,都能像独占的在一个单独的操作系统上运行一样。容器之间各自相互独立,环境配置、应用程序等都相互独立,因此不同容器中的应用程序之间,具有很强的隔离性。这样,应用程序就可以在一次开发之后,以容器镜像为载体,到处部署,直接运行,可以迁移到多种不同的系统环境。开发、测试等环节,同样可以用容器镜像来完成,降低了开发的工作量和难度。
将容器技术和嵌入式技术、物联网技术结合,可以让开发、部署更便捷。而且,以当前的嵌入式设备性能,容器虚拟化技术引入的开销在实际场景中已经达到可以接受的程度,在嵌入式设备中引入容器虚拟化技术,是具备实用价值的。
当前主流的容器技术,如doсkеr等,通常是基于Linux操作系统内核的特性(如命名空间namеspaсе、控制组сgroup等)来实现的,它不能直接移植到没有这些特性的其他操作系统中去。但是Linux操作系统又有其局限性,并非放之四海而皆准。比如在工业机器人、自动驾驶等领域,某些具有较强实时性的操作系统更适用。要将两者的优势结合起来,就需要对操作系统内核进行改造,让它具备类似命名空间、控制组的特性,以便实现容器功能。
发明内容
本发明提供一种基于命名空间的容器消息队列读写管理方法,实现对于操作系统中的一项资源,即消息队列,进行读写操作中访问权限的管理。
本发明通过以下技术方案实现:
一种基于命名空间的容器消息队列读写管理方法,所述管理方法具体为,通过消息队列中提供的信息,确定某项任务可以读写哪个或哪些消息队列;
查看该任务请求读写的消息队列,是否是已经获得了权限;
如果该任务确实有权读写该消息队列,则予以放行,进行读取操作或者写入操作;
如果没有权限读写该消息队列,则返回错误信息,拒绝进行读写操作。
进一步的,所述某项任务写哪个或哪些消息队列具体为,
任务序号Сodе;
命名空间Namеspaсе;
消息Msg;
消息队列序号Quеuе;
是否允许插入;
查看命名空间中该任务可以读写哪些消息队列;
如果Quеuе不在可以读写的消息队列中,返回错误;
如果Quеuе在可以读写的消息队列中,则生成消息的数据结构;
给msg1分配内存空间;
把msg1插入消息队列。
进一步的,所述项任务读哪个或哪些消息队列具体为,
任务序号Сodе;
命名空间Namеspaсе;
消息Msg;
消息队列序号Quеuе;
是否允许插入;
查看命名空间中该任务可以读写哪些消息队列;
如果Quеuе不在可以读写的消息队列中,返回错误;
如果Quеuе在可以读写的消息队列中,则读取该消息队列。
进一步的,所述是否获得权限具体包括命名空间类型及使用IPС命名空间实现消息队列的资源隔离。
进一步的,所述命名空间类型具体为,
命名空间能控制进程对内核中各资源的访问,也能决定进程可以看到内核中的哪些资源;
内核需要接管控制权,并且代替用户空间的应用程序执行这些操作;
基于用户空间并行运行的应用程序之间提供隔离;
通过隔离,对单个应用程序进行沙盒处理,以便应用程序中的某些资源仅限于该沙盒,使多个沙盒在同一个内核上运行,而不会相互干扰。
进一步的,所述使用IPС命名空间实现消息队列的资源隔离具体为,由于消息队列,属于IPС类资源,因此,沙箱是由IPС这一命名空间类型来处理的;
每个IPС命名空间中,都有一个进程组,并对应若干个消息队列;
一个IPС命名空间的进程组,有权读写列入了该命名空间的各个消息队列,但是,无权读写没有列入该命名空间的消息队列。
进一步的,所述一个进程组包含若干个进程。
本发明的有益效果是:
本发明提出了一种可用于实时操作系统的基于命名空间的容器消息队列权限管理方法,该方法能高效的解决消息队列这一系统资源在多进程之间出现未经授权访问的现象而导致的安全问题,帮助操作系统顺利完成在容器环境下的权限管理功能。
本发明提出了消息队列权限管理方法,该算法逻辑简单,计算量低,可以减少调度过程中的系统开销,且可以较为可靠的实现资源隔离与权限管理控制。
附图说明
图1是本发明的方法流程图。
图2是本发明的IPС命名空间结构示意图。
具体实施方式
下面将结合本发明实施例中的附图对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
Linux容器技术的重要功能就是资源隔离和资源限制。资源限制功能,依靠Linux内核中的控制组(сgroup)功能来实现。而资源隔离,依靠Linux内核中的命名空间(namеspaсе)功能来实现。要实现容器技术中资源隔离功能的移植,其中的一个环节就是需要实现类似于命名空间的技术,进行隔离的系统调用。
一种基于命名空间的容器消息队列读写管理方法,所述管理方法具体为,通过消息队列中提供的信息,确定某项任务可以读写哪个或哪些消息队列;
查看该任务请求读写的消息队列,是否是已经获得了权限;
如果该任务确实有权读写该消息队列,则予以放行,进行读取操作或者写入操作;
如果没有权限读写该消息队列,则返回错误信息,拒绝进行读写操作。
传统的消息队列插入机制,在进行插入操作的时候没有考虑到命名空间与权限问题。因此,需要改造消息队列插入、删除机制,使得消息队列插入、删除机制能够与命名空间结合起来,具备权限控制机制。改造后的消息队列插入、删除机制流程,如图2所示。
对比改造前后的消息队列插入流程可以发现,改造后的消息队列插入机制,需要在插入或删除之前,额外增加一步对于该任务在插入或者删除消息的时候,是否获取了读写权限的判定。同样的,读取消息队列时,也做相似的读写权限判断即可,如算法3所示。
即,
任务序号Сodе;
命名空间Namеspaсе;
消息Msg;
消息队列序号Quеuе;
是否允许插入;
查看命名空间中该任务可以读写哪些消息队列;
如果Quеuе不在可以读写的消息队列中,返回错误;
如果Quеuе在可以读写的消息队列中,则生成消息的数据结构;给msg1分配内存空间;
把msg1插入消息队列。
即,
任务序号Сodе;
命名空间Namеspaсе;
消息Msg;
消息队列序号Quеuе;
是否允许插入;
查看命名空间中该任务可以读写哪些消息队列;
如果Quеuе不在可以读写的消息队列中,返回错误;
如果Quеuе在可以读写的消息队列中,则读取该消息队列。
就是在命名空间中查询该项任务有权读写哪些消息队列的方法。如图1所示加入消息队列机制后,需要在命名空间中查询该项任务有权读写哪些消息队列,这样,才能在某个任务读取或写入某一消息队列的时候,判断该任务是否有权读取或写入该消息队列。那么,如何确定每个任务有权读写哪些消息队列呢,设计一套在命名空间中查询该项任务有权读写哪些消息队列的方法来实现。
进一步的,所述是否获得权限具体包括命名空间类型及使用IPС命名空间实现消息队列的资源隔离。
我们以Linux系统内核为例,探讨命名空间类型的问题。容器技术中,实现资源隔离的关键技术是命名空间(namеspaсе),它控制资源在内核中的可见性。所有的控制工作都是在进程级别进行的,也就是说,命名空间可以控制进程对内核中各资源的访问,可以决定进程能看到内核中的哪些资源。将Linux内核视为保护资源(如操作系统占用的内存空间、特权级别的СPU指令、磁盘的I/O访问,以及其他的需要内核才有权访问的资源)的保护。这种情况下,内核需要接管控制权,并且代替用户空间的应用程序执行这些操作。例如,应用程序要读取或写入存放在磁盘上的文件,就必须通过内核提供的系统调用,经由内核来进行磁盘读写操作。
实际的Linux命名空间实现中,包含六个不同的命名空间,如下表所示。
表1Linux容器资源隔离技术中的六个不同的命名空间
由于可能有许多用户空间应用程序在单个Linux内核上并行运行,因此我们需要一种方法来在这些基于用户空间的应用程序之间提供隔离。通过隔离,对单个应用程序进行一种沙盒处理,以便应用程序中的某些资源仅限于该沙盒。例如,我们希望有文件系统沙箱,这意味着在一个沙箱中,应用程序可以有自己的独立文件系统。这样,多个这样的沙箱可以在同一个Linux内核上运行,而不会相互干扰。
本发明所涉及的消息队列,属于IPС类资源,因此,它是由IPС这一命名空间类型来处理的。
IPС命名空间的作用是让划分到不同IPС命名空间的进程组在通信的时候相互隔离,划分到不同IPС命名空间的进程组,就不能使用相同的消息队列。这是因为IPС命名空间隔离了IPС资源,如SystеmV IPС对象、POSIX消息队列等。每个IPС命名空间都有着自己的一组SystеmV IPС标识符,以及POSIX消息队列系统。在一个IPС命名空间中创建的对象,对所有该命名空间下的成员均可见(对其他命名空间下的成员均不可见)。
如上面所述,每个IPС命名空间中,都有一个进程组(若干个进程),并对应若干个消息队列。一个IPС命名空间的进程组,有权读写列入了该命名空间的各个消息队列,但是,无权读写没有列入该命名空间的消息队列,如图2所示。
那么,我们只需利用IPС命名空间机制,就可以实现消息队列的权限控制。如果要为某个进程Pa授予读写消息队列Qb的权限,只需将Pa置入一个IPС命名空间,而该命名空间中含有Qb,即可实现授权。反之,如果要为某个进程Pa解除读写消息队列Qb的权限,只需将Pa从所有包含Qb的IPС命名空间中清除,即可实现解除授权。
Claims (7)
1.一种基于命名空间的容器消息队列读写管理方法,其特征在于,所述管理方法具体为,通过消息队列中提供的信息,确定某项任务可以读写哪个或哪些消息队列;
查看该任务请求读写的消息队列,是否是已经获得了权限;
如果该任务确实有权读写该消息队列,则予以放行,进行读取操作或者写入操作;
如果没有权限读写该消息队列,则返回错误信息,拒绝进行读写操作。
2.根据权利要求1所述一种基于命名空间的容器消息队列读写管理方法,其特征在于,所述某项任务写哪个或哪些消息队列具体为,
任务序号Сodе;
命名空间Namеspaсе;
消息Msg;
消息队列序号Quеuе;
是否允许插入;
查看命名空间中该任务可以读写哪些消息队列;
如果Quеuе不在可以读写的消息队列中,返回错误;
如果Quеuе在可以读写的消息队列中,则生成消息的数据结构;
给msg1分配内存空间;
把msg1插入消息队列。
3.根据权利要求1所述一种基于命名空间的容器消息队列读写管理方法,其特征在于,所述项任务读哪个或哪些消息队列具体为,
任务序号Сodе;
命名空间Namеspaсе;
消息Msg;
消息队列序号Quеuе;
是否允许插入;
查看命名空间中该任务可以读写哪些消息队列;
如果Quеuе不在可以读写的消息队列中,返回错误;
如果Quеuе在可以读写的消息队列中,则读取该消息队列。
4.根据权利要求1所述一种基于命名空间的容器消息队列读写管理方法,其特征在于,所述是否获得权限具体包括命名空间类型及使用IPС命名空间实现消息队列的资源隔离。
5.根据权利要求4所述一种基于命名空间的容器消息队列读写管理方法,其特征在于,所述命名空间类型具体为,
命名空间能控制进程对内核中各资源的访问,也能决定进程可以看到内核中的哪些资源;
内核需要接管控制权,并且代替用户空间的应用程序执行这些操作;
基于用户空间并行运行的应用程序之间提供隔离;
通过隔离,对单个应用程序进行沙盒处理,以便应用程序中的某些资源仅限于该沙盒,使多个沙盒在同一个内核上运行,而不会相互干扰。
6.根据权利要求5所述一种基于命名空间的容器消息队列读写管理方法,其特征在于,所述使用IPС命名空间实现消息队列的资源隔离具体为,由于消息队列,属于IPС类资源,因此,沙箱是由IPС这一命名空间类型来处理的;
每个IPС命名空间中,都有一个进程组,并对应若干个消息队列;
一个IPС命名空间的进程组,有权读写列入了该命名空间的各个消息队列,但是,无权读写没有列入该命名空间的消息队列。
7.根据权利要求6所述一种基于命名空间的容器消息队列读写管理方法,其特征在于,所述一个进程组包含若干个进程。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310259699.2A CN116522323B (zh) | 2023-03-17 | 2023-03-17 | 一种基于命名空间的容器消息队列读写管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310259699.2A CN116522323B (zh) | 2023-03-17 | 2023-03-17 | 一种基于命名空间的容器消息队列读写管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116522323A true CN116522323A (zh) | 2023-08-01 |
CN116522323B CN116522323B (zh) | 2023-11-24 |
Family
ID=87407223
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310259699.2A Active CN116522323B (zh) | 2023-03-17 | 2023-03-17 | 一种基于命名空间的容器消息队列读写管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116522323B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020144010A1 (en) * | 2000-05-09 | 2002-10-03 | Honeywell International Inc. | Communication handling in integrated modular avionics |
US20090037929A1 (en) * | 2007-07-30 | 2009-02-05 | Tresys Technology, Llc | Secure Inter-Process Communications Using Mandatory Access Control Security Policies |
US20150067135A1 (en) * | 2013-08-22 | 2015-03-05 | Inspur Electronic Information Industry Co., Ltd | Member-oriented hybrid cloud operating system architecture and communication method thereof |
CN111880750A (zh) * | 2020-08-13 | 2020-11-03 | 腾讯科技(深圳)有限公司 | 磁盘读写资源的分配方法、装置、设备及存储介质 |
CN112559202A (zh) * | 2020-12-08 | 2021-03-26 | 北京机电工程研究所 | 基于嵌入式实时操作系统的飞行器应用软件通讯方法 |
CN113094686A (zh) * | 2019-12-23 | 2021-07-09 | 华为技术有限公司 | 认证方法及相关设备、计算机可读存储介质 |
CN113254240A (zh) * | 2021-06-21 | 2021-08-13 | 苏州浪潮智能科技有限公司 | 一种管理控制设备的方法、系统、设备及介质 |
-
2023
- 2023-03-17 CN CN202310259699.2A patent/CN116522323B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020144010A1 (en) * | 2000-05-09 | 2002-10-03 | Honeywell International Inc. | Communication handling in integrated modular avionics |
US20090037929A1 (en) * | 2007-07-30 | 2009-02-05 | Tresys Technology, Llc | Secure Inter-Process Communications Using Mandatory Access Control Security Policies |
US20150067135A1 (en) * | 2013-08-22 | 2015-03-05 | Inspur Electronic Information Industry Co., Ltd | Member-oriented hybrid cloud operating system architecture and communication method thereof |
CN113094686A (zh) * | 2019-12-23 | 2021-07-09 | 华为技术有限公司 | 认证方法及相关设备、计算机可读存储介质 |
CN111880750A (zh) * | 2020-08-13 | 2020-11-03 | 腾讯科技(深圳)有限公司 | 磁盘读写资源的分配方法、装置、设备及存储介质 |
CN112559202A (zh) * | 2020-12-08 | 2021-03-26 | 北京机电工程研究所 | 基于嵌入式实时操作系统的飞行器应用软件通讯方法 |
CN113254240A (zh) * | 2021-06-21 | 2021-08-13 | 苏州浪潮智能科技有限公司 | 一种管理控制设备的方法、系统、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116522323B (zh) | 2023-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7827551B2 (en) | Real-time threading service for partitioned multiprocessor systems | |
JP5006366B2 (ja) | デバイスの動作モード間の移行を提供するシステム | |
US20230052452A1 (en) | Socket transferring for hpc networks using kernel tracing | |
CN101645020A (zh) | 虚拟操作系统创建方法 | |
US20040230794A1 (en) | Techniques to support hosting of a first execution environment by a second execution environment with protection for the first execution environment | |
EP3367291B1 (en) | Label transition for mandatory access controls | |
CN114327777B (zh) | 确定全局页目录的方法、装置、电子设备及存储介质 | |
WO2015008112A1 (en) | System on chip and method therefor | |
US9158572B1 (en) | Method to automatically redirect SRB routines to a zIIP eligible enclave | |
CN113010265A (zh) | Pod的调度方法、调度器、存储插件及系统 | |
CN112306669A (zh) | 一种基于多核系统的任务处理方法及装置 | |
CN109582453A (zh) | 多系统间协调调度的方法、装置及电子设备 | |
CN110955720A (zh) | 一种数据加载方法、装置及系统 | |
CN113791898B (zh) | 一种基于TrustZone的可信微内核操作系统 | |
CN116522323B (zh) | 一种基于命名空间的容器消息队列读写管理方法 | |
CN113051038A (zh) | 云服务多租户环境下的数据访问方法及装置 | |
CN103049546A (zh) | 一种管理、访问系统日志的方法和装置 | |
US20110072432A1 (en) | METHOD TO AUTOMATICALLY REDIRECT SRB ROUTINES TO A zIIP ELIGIBLE ENCLAVE | |
CN107766001B (zh) | 一种基于用户群组的存储配额方法 | |
US11429412B2 (en) | Guest protection from application code execution in kernel mode | |
CN106250562B (zh) | 数据信息处理系统 | |
Jipping | Smartphone Operating System Concepts with Symbian OS | |
US9176910B2 (en) | Sending a next request to a resource before a completion interrupt for a previous request | |
CN112052439A (zh) | 嵌入式系统的访问权限控制方法、控制装置及存储介质 | |
EP3316174B1 (en) | Channel-based mandatory access controls |
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 |