CN110399174B - 一种设备管理系统及方法 - Google Patents
一种设备管理系统及方法 Download PDFInfo
- Publication number
- CN110399174B CN110399174B CN201910686592.XA CN201910686592A CN110399174B CN 110399174 B CN110399174 B CN 110399174B CN 201910686592 A CN201910686592 A CN 201910686592A CN 110399174 B CN110399174 B CN 110399174B
- Authority
- CN
- China
- Prior art keywords
- hardware
- device management
- management system
- driver
- virtual bus
- 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
Links
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/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
-
- 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)
- Stored Programmes (AREA)
Abstract
本发明公开了一种设备管理系统及方法,属于计算机操作系统技术领域,系统包括:驱动模块,设备管理模块,检测单元,创建单元,分配单元,处理单元;方法包括:步骤S1,探测微内核操作系统连接的所有硬件设备,并创建对应的设备树;步骤S2,为每个所述硬件设备创建虚拟总线;步骤S3,将虚拟总线分配给对应的驱动程序;上述技术方案有益效果是:实现了设备驱动程序对硬件设备访问的统一管理,引入硬件设备管理策略,解决了不可信设备驱动程序对硬件设备的恶意访问,同时保证设备驱动程序在用户空间的独立运行,实现设备驱动程序与微内核的强隔离,避免因驱动程序自身缺陷引起操作系统的整个崩溃。
Description
技术领域
本发明涉及计算机操作系统技术领域,尤其涉及一种设备管理系统及方法。
背景技术
微内核操作系统是一种基于微内核架构的操作系统,微内核是由一群尽可能将数量最小化的软件程序组成,它们负责提供实现一个操作系统所需要的最基本的机制与功能,比如线程管理、内存地址空间管理以及进程间通信等。微内核操作系统分为内核空间和用户空间,微内核运行在内核空间,而设备驱动程序、文件系统、网络协议等系统服务则运行在操作系统的用户空间。
设备驱动程序是一种操控硬件设备的程序,是硬件与应用程序的桥梁,用于向上层应用程序提供统一的接口,应用程序在无需了解硬件设备具体参数的情况下,通过调用设备驱动程序导出的接口便可以操纵控制硬件设备。设备驱动程序是操作系统的重要组成部分,在宏内核操作系统中,设备驱动程序运行于操作系统的内核空间,使得设备驱动程序拥有硬件设备资源的完全控制权限,可以保证操作系统性能的最大化,然而,由于设备驱动程序与内核的紧密耦合,使得如果设备驱动程序存在缺陷,将导致整个操作系统崩溃。在微内核操作系统中,由于设备驱动程序运行于操作系统的用户空间,所以不会出现上述问题,有助于加强系统的稳定性和安全性,但设备驱动程序的功能将会受到限制,比如,设备驱动程序不能直接操纵硬件设备,无法进行直接内存存取,无法直接就使用中断等,此外,由于没有相应的硬件设备管理策略,不可信的设备驱动程序将很容易恶意操纵硬件设备。
发明内容
针对现有技术中存在的上述问题,现提供一种设备管理系统,通过在用户空间中,微内核与设备驱动程序之间设置一设备管理模块,从而实现了设备驱动程序对硬件设备访问的统一管理,引入硬件设备管理策略,解决了不可信设备驱动程序对硬件设备的恶意访问,同时保证设备驱动程序在用户空间的独立运行,实现设备驱动程序与微内核的强隔离,避免因驱动程序自身缺陷引起操作系统的整个崩溃。
上述技术方案具体包括:
一种设备管理系统,其中,所述设备管理系统运行于微内核操作系统的用户空间,并包括:
驱动模块,用于通过不同的驱动程序调用所述微内核操作系统连接的相应的硬件设备;
设备管理模块,连接所述驱动模块,用于管理所述硬件设备,并为各所述驱动程序分配所述硬件设备的操作权限,所述设备管理模块具体包括:
检测单元,用于在所述设备管理模块启动时,探测所述微内核操作系统连接的所有所述硬件设备,并根据探测结果建立并维护所述设备管理系统的设备树;
创建单元,连接所述检测单元,用于根据所述设备树,为每个所述硬件设备创建虚拟总线,所述虚拟总线连接对应的所述硬件设备;
分配单元,连接所述创建单元,用于为各所述驱动程序分配所述虚拟总线,所述驱动程序通过所述虚拟总线获取对应的所述硬件设备的设备资源;
所述设备资源用于支持所述驱动模块与所述硬件设备之间的通信;
处理单元,用于对所述驱动模块的调用请求进行解析和处理,并将处理结果返回给所述驱动模块中相应的所述驱动程序。
优选地,其中,所述设备管理模块通过一通用接口与多个所述驱动程序相连接。
优选地,其中,所述虚拟总线通过物理总线与对应的所述硬件设备相连接。
优选地,其中,同一所述硬件设备的所述设备资源在同一时间只能由一个所述驱动程序获取。
优选地,其中,所述虚拟总线采用分层结构组织所述硬件设备。
优选地,其中,所述设备管理系统以服务的形式运行于所述用户空间。
一种设备管理方法,其中,应用于如上所述的设备管理系统,包括以下步骤:
步骤S1,探测微内核操作系统连接的所有硬件设备,并创建对应的设备树;
步骤S2,根据所述设备树,为每个所述硬件设备创建虚拟总线,所述虚拟总线连接对应的所述硬件设备;
步骤S3,将所述虚拟总线分配给对应的驱动程序,所述驱动程序通过所述虚拟总线获取对应的所述硬件设备的资源。
优选地,其中,所述虚拟总线通过物理总线与对应的所述硬件设备相连接。
优选地,其中,同一所述硬件设备的资源在同一时间只能由一个所述驱动程序获取。
上述技术方案的有益效果在于:
供一种设备管理系统,通过在用户空间中,微内核与设备驱动程序之间设置一设备管理模块,从而实现了设备驱动程序对硬件设备访问的统一管理,引入硬件设备管理策略,解决了不可信设备驱动程序对硬件设备的恶意访问,同时保证设备驱动程序在用户空间的独立运行,实现设备驱动程序与微内核的强隔离,避免因驱动程序自身缺陷引起操作系统的整个崩溃。
附图说明
图1是本发明的较佳实施例中,一种设备管理系统的结构示意图;
图2是本发明的较佳实施例中,一种设备管理方法的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
下面结合附图和具体实施例对本发明作进一步说明,但不作为本发明的限定。
一种设备管理系统,其中,设备管理系统运行于微内核操作系统的用户空间,并包括:
驱动模块1,用于通过不同的驱动程序调用微内核操作系统连接的相应的硬件设备;
设备管理模块2,连接驱动模块1,用于管理硬件设备,并为各驱动程序分配硬件设备的操作权限,设备管理模块具体包括:
检测单元20,用于在设备管理模块2启动时,探测微内核操作系统连接的所有硬件设备,并根据探测结果建立并维护设备管理系统的设备树;
创建单元21,连接检测单元20,用于根据设备树,为每个硬件设备创建虚拟总线,虚拟总线连接对应的硬件设备;
分配单元22,连接创建单元21,用于为各驱动程序分配虚拟总线,驱动程序通过虚拟总线获取对应的硬件设备的设备资源;
设备资源用于支持驱动模块1与硬件设备之间的通信;
处理单元23,用于对驱动模块1的调用请求进行解析和处理,并将处理结果返回给驱动模块1中相应的驱动程序。
在本发明的一个具体实施例中,驱动模块1中运行着微内核操作系统安装的各种设备驱动程序,设备管理模块2负责管理微内核操作系统平台的所有硬件设备和设备资源,同时负责为所有的设备驱动程序分配硬件设备的操作权限。而驱动模块1中的设备驱动程序则通过设备管理模块2导出的通用接口进行查询与请求设备资源,从而可以访问和操作微内核控制系统上相应的硬件设备。
在设备管理模块2启动时,检测单元20负责探测微内核操作系统平台连接的所有真实物理设备。例如,在X86机型上,系统通过扫描PCI总线来探测当前平台上连接的硬件设备,同时初始化ACPI(高级配置和电源管理接口子系统;在不支持系统运行时进行硬件探测的平台系统,可以通过设备资源描述配置文件(用于描述平台各种设备信息和资源,与Linux系统设备树类似)来探测硬件设备可用的I/O资源。
在本发明的较佳实施例中,设备管理模块2通过一通用接口与多个所述驱动程序相连接。
在本发明的一个具体实施例中,为了满足驱动模块1中不同驱动程序对驱动接口的要求,需要设计一套适合所有设备驱动程序的通用接口,具体如下:
虚拟总线接口如下
1.查询驱动程序可用虚拟总线:
lookup_vbus()。
2.遍历与查询自己虚拟总线设备:
vbus_get_device()vbus_iterate_devices()。
设备资源接口如下
1.查询物理设备资源,例如MMIO/IO端口区域、IRQ、总线号等:
lookup_resource()。
2.MMIO/IO区域资源请求与释放,确保可靠配置资源,一旦资源分配,不能由其他驱动程序使用。
request_iomem()、release_iomem();
request_ioport()、release_ioport()。
3.MMIO/IO区域映射与取消映射,设备内存区域物理地址,需要映射MMIO/IO区域到虚拟地址空间:
request_iomem_region()release_iomem_region();
request_ioport_region()release_ioport_region()。
4.中断号请求与绑定,设备中断资源绑定线程,中断信息通过IPC发送到中断处理线程
irq_request()irq_bind_thread();
irq_releace()irq_unbind_thread()。
在本发明的较佳实施例中,虚拟总线通过物理总线与对应的硬件设备相连接。
在本发明的一个具体实施例中,虚拟总线区别于物理总线,物理总线是现实存在的硬件设备总线,设备管理模块2中的创建单元21通过用于描述虚拟总线挂载的真实物理硬件设备的虚拟总线配置文件来创建虚拟总线。
在本发明的较佳实施例中,同一硬件设备的设备资源在同一时间只能由一个驱动程序获取。
在本发明的一个具体实施例中,设备管理模块2中的分配单元22具有将不同的虚拟总线授予不同的驱动程序的分配权限,而一旦设备驱动程序通过通用接口拥有了分配给自己的虚拟总线,该驱动程序便可以通过迭代查找的方式来探测该条虚拟总线上所挂载的物理硬件设备,从而获取相应的设备资源,其中设备资源包括设备内存映射I/O端口区域和设备中断请求(IRQ)等,设备资源用于支持设备驱动程序和硬件设备之间的通信,同时为了不同的驱动程序彼此之间互不干扰,同一个硬件设备的设备资源在同一时间段内只能由一个驱动程序获取。
在本发明的较佳实施例中,虚拟总线采用分层结构组织硬件设备。
在本发明的一个具体实施例中,虚拟总线采用分层(树)结构组织硬件设备,虚拟总线下存在物理总线,物理总线连接各种物理硬件设备。
在本发明的较佳实施例中,设备管理系统以服务的形式运行于用户空间。
一种设备管理方法,其特征在于,应用于如上所述的设备管理系统,包括以下步骤:
步骤S1,探测微内核操作系统连接的所有硬件设备,并创建对应的设备树;
步骤S2,根据所述设备树,为每个所述硬件设备创建虚拟总线,所述虚拟总线连接对应的所述硬件设备;
步骤S3,将所述虚拟总线分配给对应的驱动程序,所述驱动程序通过所述虚拟总线获取对应的所述硬件设备的资源。
在本发明的较佳实施例中,所述虚拟总线通过物理总线与对应的所述硬件设备相连接。
在本发明的较佳实施例中,同一所述硬件设备的资源在同一时间只能由一个所述驱动程序获取。
上述技术方案的有益效果在于:
供一种设备管理系统,通过在用户空间中,微内核与设备驱动程序之间设置一设备管理模块,从而实现了设备驱动程序对硬件设备访问的统一管理,引入硬件设备管理策略,解决了不可信设备驱动程序对硬件设备的恶意访问,同时保证设备驱动程序在用户空间的独立运行,实现设备驱动程序与微内核的强隔离,避免因驱动程序自身缺陷引起操作系统的整个崩溃。
以上所述仅为本发明较佳的实施例,并非因此限制本发明的实施方式及保护范围,对于本领域技术人员而言,应当能够意识到凡运用本发明说明书及图示内容所作出的等同替换和显而易见的变化所得到的方案,均应当包含在本发明的保护范围内。
Claims (9)
1.一种设备管理系统,其特征在于,所述设备管理系统运行于微内核操作系统的用户空间,并包括:
驱动模块,用于通过不同的驱动程序调用所述微内核操作系统连接的相应的硬件设备;
设备管理模块,连接所述驱动模块,用于管理所述硬件设备,并为各所述驱动程序分配所述硬件设备的操作权限,所述设备管理模块具体包括:
检测单元,用于在所述设备管理模块启动时,探测所述微内核操作系统连接的所有所述硬件设备,并根据探测结果建立并维护所述设备管理系统的设备树;
创建单元,连接所述检测单元,用于根据所述设备树,为每个所述硬件设备创建虚拟总线,所述虚拟总线连接对应的所述硬件设备;
分配单元,连接所述创建单元,用于为各所述驱动程序分配所述虚拟总线,所述驱动程序通过所述虚拟总线获取对应的所述硬件设备的设备资源;
所述设备资源用于支持所述驱动模块与所述硬件设备之间的通信;
处理单元,用于对所述驱动模块的调用请求进行解析和处理,并将处理结果返回给所述驱动模块中相应的所述驱动程序。
2.根据权利要求1所述的设备管理系统,其特征在于,所述设备管理模块通过一通用接口与多个所述驱动程序相连接。
3.根据权利要求1所述的设备管理系统,其特征在于,所述虚拟总线通过物理总线与对应的所述硬件设备相连接。
4.根据权利要求1所述的设备管理系统,其特征在于,同一所述硬件设备的所述设备资源在同一时间只能由一个所述驱动程序获取。
5.根据权利要求1所述的设备管理系统,其特征在于,所述虚拟总线采用分层结构组织所述硬件设备。
6.根据权利要求1所述的设备管理系统,其特征在于,所述设备管理系统以服务的形式运行于所述用户空间。
7.一种设备管理方法,其特征在于,应用于如权利要求1-6中任意一项所述的设备管理系统,包括以下步骤:
步骤S1,探测微内核操作系统连接的所有硬件设备,并创建对应的设备树;
步骤S2,根据所述设备树,为每个所述硬件设备创建虚拟总线,所述虚拟总线连接对应的所述硬件设备;
步骤S3,将所述虚拟总线分配给对应的驱动程序,所述驱动程序通过所述虚拟总线获取对应的所述硬件设备的资源。
8.根据权利要求7所述的设备管理方法,其特征在于,所述虚拟总线通过物理总线与对应的所述硬件设备相连接。
9.根据权利要求7所述的设备管理方法,其特征在于,同一所述硬件设备的资源在同一时间只能由一个所述驱动程序获取。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910686592.XA CN110399174B (zh) | 2019-07-29 | 2019-07-29 | 一种设备管理系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910686592.XA CN110399174B (zh) | 2019-07-29 | 2019-07-29 | 一种设备管理系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110399174A CN110399174A (zh) | 2019-11-01 |
CN110399174B true CN110399174B (zh) | 2023-05-02 |
Family
ID=68325170
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910686592.XA Active CN110399174B (zh) | 2019-07-29 | 2019-07-29 | 一种设备管理系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110399174B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111885170B (zh) * | 2020-07-23 | 2022-03-11 | 平安科技(深圳)有限公司 | 物联网控制系统的处理方法、系统、云端服务器及介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101052949A (zh) * | 2004-08-18 | 2007-10-10 | 扎鲁纳股份有限公司 | 操作系统 |
CN101059761A (zh) * | 2006-04-20 | 2007-10-24 | 联想(北京)有限公司 | 一种虚拟机系统及其硬件设备访问方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10282210B2 (en) * | 2016-06-13 | 2019-05-07 | Huawei Technologies Co., Ltd. | System and method for virtual hardware control |
-
2019
- 2019-07-29 CN CN201910686592.XA patent/CN110399174B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101052949A (zh) * | 2004-08-18 | 2007-10-10 | 扎鲁纳股份有限公司 | 操作系统 |
CN101059761A (zh) * | 2006-04-20 | 2007-10-24 | 联想(北京)有限公司 | 一种虚拟机系统及其硬件设备访问方法 |
Non-Patent Citations (1)
Title |
---|
赵渊.基于虚拟设备驱动技术的变电站通信控制单元.电力自动化设备.2002,(09),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN110399174A (zh) | 2019-11-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8464260B2 (en) | Configuration and association of a supervisory virtual device function to a privileged entity | |
US20080065854A1 (en) | Method and apparatus for accessing physical memory belonging to virtual machines from a user level monitor | |
EP3086228B1 (en) | Resource processing method, operating system, and device | |
KR101782398B1 (ko) | 보안된 가상 머신간 공유된 메모리 통신을 위한 기술 | |
US8924959B2 (en) | Switching hardware devices in virtual machine systems using resource converting relationships | |
US8782024B2 (en) | Managing the sharing of logical resources among separate partitions of a logically partitioned computer system | |
US8856473B2 (en) | Computer system protection based on virtualization | |
US7552298B2 (en) | Method and system for deferred pinning of host memory for stateful network interfaces | |
US20070050767A1 (en) | Method, apparatus and system for a virtual diskless client architecture | |
US9342347B1 (en) | Hardware dedication for virtual machines and virtual environments | |
JP2007220086A (ja) | 入出力制御装置、入出力制御システム及び入出力制御方法 | |
WO2021052017A1 (zh) | 通信方法、装置、计算机可读存储介质和芯片 | |
CN110442425B (zh) | 一种虚拟化地址空间隔离系统及方法 | |
US20170277573A1 (en) | Multifunction option virtualization for single root i/o virtualization | |
US8286164B2 (en) | Secure recursive virtualization | |
EP3842973B1 (en) | Security schemes for multiple trusted-execution-environments (tees) and multiple rich-execution-environments (rees) | |
JP2005353070A (ja) | 動的なホスト区画ページ割り当てのための方法および装置 | |
CN103984591A (zh) | 计算机虚拟化系统的PCI设备INTx中断投递方法 | |
JP2008021252A (ja) | 計算機システム及びアドレス割当方法 | |
CN110399174B (zh) | 一种设备管理系统及方法 | |
Li et al. | The Quest-V separation kernel for mixed criticality systems | |
US10162787B1 (en) | Multicore safe PCIe solution | |
KR101571992B1 (ko) | 계산기, 액세스 관리 방법 및 컴퓨터 판독 가능한 기억 매체 | |
JP4346850B2 (ja) | Osイメージごとに論理分割された論理分割データ処理システム | |
JP4853671B2 (ja) | アクセス権限判定システム、アクセス権限判定方法及びアクセス権限判定プログラム |
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 |